From a6e5812021c8ca76205d95c51496c3ab8513a710 Mon Sep 17 00:00:00 2001 From: Alejandra <90076947+alejsdev@users.noreply.github.com> Date: Mon, 8 Dec 2025 18:58:08 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20Add=20Mailcatcher=20setup=20inst?= =?UTF-8?q?ructions=20for=20local=20email=20testing=20(#2038)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + development.md | 50 +++++++++++++++++++++++++++++++------------------- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 62f1b3f..a9049b4 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ - 🔒 Secure password hashing by default. - 🔑 JWT (JSON Web Token) authentication. - 📫 Email based password recovery. +- 📬 [Mailcatcher](https://mailcatcher.me) for local email testing during development. - ✅ Tests with [Pytest](https://pytest.org). - 📞 [Traefik](https://traefik.io) as a reverse proxy / load balancer. - 🚢 Deployment instructions using Docker Compose, including how to set up a frontend Traefik proxy to handle automatic HTTPS certificates. diff --git a/development.md b/development.md index d7d41d7..bc71071 100644 --- a/development.md +++ b/development.md @@ -10,15 +10,15 @@ docker compose watch * Now you can open your browser and interact with these URLs: -Frontend, built with Docker, with routes handled based on the path: http://localhost:5173 +Frontend, built with Docker, with routes handled based on the path: -Backend, JSON based web API based on OpenAPI: http://localhost:8000 +Backend, JSON based web API based on OpenAPI: -Automatic interactive documentation with Swagger UI (from the OpenAPI backend): http://localhost:8000/docs +Automatic interactive documentation with Swagger UI (from the OpenAPI backend): -Adminer, database web administration: http://localhost:8080 +Adminer, database web administration: -Traefik UI, to see how the routes are being handled by the proxy: http://localhost:8090 +Traefik UI, to see how the routes are being handled by the proxy: **Note**: The first time you start your stack, it might take a minute for it to be ready. While the backend waits for the database to be ready and configures everything. You can check the logs to monitor it. @@ -34,6 +34,18 @@ To check the logs of a specific service, add the name of the service, e.g.: docker compose logs backend ``` +## Mailcatcher + +Mailcatcher is a simple SMTP server that catches all emails sent by the backend during local development. Instead of sending real emails, they are captured and displayed in a web interface. + +This is useful for: + +* Testing email functionality during development +* Verifying email content and formatting +* Debugging email-related functionality without sending real emails + +The backend is automatically configured to use Mailcatcher when running with Docker Compose locally (SMTP on port 1025). All captured emails can be viewed at . + ## Local Development The Docker Compose files are configured so that each of the services is available in a different port in `localhost`. @@ -174,34 +186,34 @@ The production or staging URLs would use these same paths, but with your own dom Development URLs, for local development. -Frontend: http://localhost:5173 +Frontend: -Backend: http://localhost:8000 +Backend: -Automatic Interactive Docs (Swagger UI): http://localhost:8000/docs +Automatic Interactive Docs (Swagger UI): -Automatic Alternative Docs (ReDoc): http://localhost:8000/redoc +Automatic Alternative Docs (ReDoc): -Adminer: http://localhost:8080 +Adminer: -Traefik UI: http://localhost:8090 +Traefik UI: -MailCatcher: http://localhost:1080 +MailCatcher: ### Development URLs with `localhost.tiangolo.com` Configured Development URLs, for local development. -Frontend: http://dashboard.localhost.tiangolo.com +Frontend: -Backend: http://api.localhost.tiangolo.com +Backend: -Automatic Interactive Docs (Swagger UI): http://api.localhost.tiangolo.com/docs +Automatic Interactive Docs (Swagger UI): -Automatic Alternative Docs (ReDoc): http://api.localhost.tiangolo.com/redoc +Automatic Alternative Docs (ReDoc): -Adminer: http://localhost.tiangolo.com:8080 +Adminer: -Traefik UI: http://localhost.tiangolo.com:8090 +Traefik UI: -MailCatcher: http://localhost.tiangolo.com:1080 \ No newline at end of file +MailCatcher: