Technical Issues Encountered: Password Recovery and Project Member Invitation

Dear Taiga Community,

I am writing to seek assistance regarding a couple of issues I’ve encountered while using Taiga. I have successfully installed Taiga and configured authentication, including enabling public registration.

However, I am facing the following problems:

Password Recovery:
When initiating the “Forgot my password” process and entering my username or email address, I encounter an error that leads to the following screen:

Project Member Invitation:
While attempting to invite a new member to a project, I am presented with an unexpected screen:

I would appreciate any guidance or assistance in resolving these issues. Your expertise and support are highly valued. If additional information or logs are needed to diagnose the problems, please let me know, and I will provide them promptly.

Hi @mobsternation

Both operation involves asynchronous tasks to send emails. As it could be a configuration problem, can you share with us your .env file settings?

Another important part are the 500 errors, as it show the real problem and the Taiga’s involved services. Could you please execute docker compose logs -f and reproduce one of the previous operations that cause the problem?.
Post here the server error logs.

Thanks in advance

Hi @daniel.herrero

You are asking me for information about the docker-compose.penpot.env file, I have not modified it, that must be why the issue, could you please tell me how to modify it based on the information from my email provider?

I configured the email parameters, in the docker-compose.penpot.yml file.

I attach my email provider information, and also the .env file.

# Should be set to the public domain when penpot is going to be
# served.
PENPOT_FLAGS=enable-registration enable-login enable-demo-users disable-email-verification disable-smtp enable-log-emails
PENPOT_PUBLIC_URI=http://localhost:9001

# Standard database connection parametes (only postgresql is
# supported):
PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot
PENPOT_DATABASE_USERNAME=penpot
PENPOT_DATABASE_PASSWORD=penpot

# Redis is used for the websockets notifications.
PENPOT_REDIS_URI=redis://penpot-redis/0

# By default files upload by user are stored in local filesystem. But
# it can be configured to store in AWS S3 or completelly in de the
# database. Storing in the database makes the backups more easy but
# will make access to media less performant.
PENPOT_ASSETS_STORAGE_BACKEND=assets-fs
PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets

# Telemetry. When enabled, a periodical process will send annonymous
# data about this instance. Telemetry data will enable us to learn on
# how the application is used based on real scenarios. If you want to
# help us, please leave it enabled.
PENPOT_TELEMETRY_ENABLED=true
PENPOT_TELEMETRY_REFERER=taiga

# Email sending configuration. By default emails are printed in
# console, but for production usage is recommeded to setup a real SMTP
# provider. Emails are used for confirm user registration.
PENPOT_SMTP_DEFAULT_FROM=no-reply@example.com
PENPOT_SMTP_DEFAULT_REPLY_TO=no-reply@example.com
# PENPOT_SMTP_HOST=
# PENPOT_SMTP_PORT=
# PENPOT_SMTP_USERNAME=
# PENPOT_SMTP_PASSWORD=
# PENPOT_SMTP_TLS=true
# PENPOT_SMTP_SSL=false

## Authentication providers

# Google
# PENPOT_GOOGLE_CLIENT_ID=
# PENPOT_GOOGLE_CLIENT_SECRET=

# Github
# PENPOT_GITHUB_CLIENT_ID=
# PENPOT_GITHUB_CLIENT_SECRET=

# Gitlab
# PENPOT_GITLAB_BASE_URI=https://gitlab.com
# PENPOT_GITLAB_CLIENT_ID=
# PENPOT_GITLAB_CLIENT_SECRET=

# OpenID Connect (since 1.5.0)
# PENPOT_OIDC_BASE_URI=
# PENPOT_OIDC_CLIENT_ID=
# PENPOT_OIDC_CLIENT_SECRET=

# LDAP
# PENPOT_LDAP_HOST=ldap
# PENPOT_LDAP_PORT=10389
# PENPOT_LDAP_SSL=false
# PENPOT_LDAP_STARTTLS=false
# PENPOT_LDAP_BASE_DN=ou=people,dc=planetexpress,dc=com
# PENPOT_LDAP_BIND_DN=cn=admin,dc=planetexpress,dc=com
# PENPOT_LDAP_BIND_PASSWORD=GoodNewsEveryone
# PENPOT_LDAP_ATTRS_USERNAME=uid
# PENPOT_LDAP_ATTRS_EMAIL=mail
# PENPOT_LDAP_ATTRS_FULLNAME=cn
# PENPOT_LDAP_ATTRS_PHOTO=jpegPhoto
# PENPOT_LOGIN_WITH_LDAP=true


These are the logs recorded once I want to invite a user to my project:

taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:16:39 +0000] "GET /api/v1/projects/by_slug?slug=prueba2 HTTP/1.1" 200 13686 "http://85.31.230.47:9000/project/prueba2/timeline" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:16:39 +0000] "GET /media/user/a/d/8/9/61140a717ce427a9769e3ca06fd1b3bb77de4e20a43ab017fbe70fac83dd/1650177997104.jpg.80x80_q85_crop.jpg?token=ZW9pBw%3AsuWeqYytwkFrN7hK0tV6U0hK05EM0LlBgLgTQQHIorxNXpcl9IjDXr9Lc81W2j8aRS2IQxwofQI1VraHs58JhQ HTTP/1.1" 200 2104 "http://85.31.230.47:9000/project/prueba2/timeline" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-protected_1        | 172.29.0.10 - - [05/Dec/2023:18:16:39 +0000] "GET /user/a/d/8/9/61140a717ce427a9769e3ca06fd1b3bb77de4e20a43ab017fbe70fac83dd/1650177997104.jpg.80x80_q85_crop.jpg?token=ZW9pBw%3AsuWeqYytwkFrN7hK0tV6U0hK05EM0LlBgLgTQQHIorxNXpcl9IjDXr9Lc81W2j8aRS2IQxwofQI1VraHs58JhQ HTTP/1.0" 200 0 "http://85.31.230.47:9000/project/prueba2/timeline" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:16:53 +0000] "GET /api/v1/users/me HTTP/1.1" 200 1221 "http://85.31.230.47:9000/project/prueba2/admin/project-profile/details" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:16:53 +0000] "GET /api/v1/projects?member=5&order_by=user_order&slight=true HTTP/1.1" 200 8468 "http://85.31.230.47:9000/project/prueba2/admin/project-profile/details" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-protected_1        | 172.29.0.10 - - [05/Dec/2023:18:16:53 +0000] "GET /user/a/d/8/9/61140a717ce427a9769e3ca06fd1b3bb77de4e20a43ab017fbe70fac83dd/1650177997104.jpg.80x80_q85_crop.jpg?token=ZW9pFQ%3AXkkdR2CyG6qlinCRsXWr_oqAThyBuDhcZn4yGJVu1bXGQw71KglCSnZPIsn8yEHeszEmmePL4eUBz8hw_rAg0Q HTTP/1.0" 200 0 "http://85.31.230.47:9000/project/prueba2/admin/project-profile/details" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:16:53 +0000] "GET /media/user/a/d/8/9/61140a717ce427a9769e3ca06fd1b3bb77de4e20a43ab017fbe70fac83dd/1650177997104.jpg.80x80_q85_crop.jpg?token=ZW9pFQ%3AXkkdR2CyG6qlinCRsXWr_oqAThyBuDhcZn4yGJVu1bXGQw71KglCSnZPIsn8yEHeszEmmePL4eUBz8hw_rAg0Q HTTP/1.1" 200 2104 "http://85.31.230.47:9000/project/prueba2/admin/project-profile/details" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:16:59 +0000] "GET /api/v1/timeline/project/3?only_relevant=true&page=1 HTTP/1.1" 200 1059 "http://85.31.230.47:9000/project/prueba2/timeline" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-protected_1        | 172.29.0.10 - - [05/Dec/2023:18:16:59 +0000] "GET /user/a/d/8/9/61140a717ce427a9769e3ca06fd1b3bb77de4e20a43ab017fbe70fac83dd/1650177997104.jpg.80x80_q85_crop.jpg?token=ZW9pGw%3AYQhAarWYuxvqBpkWGm8JJyNJapacewttk-RhBvc06MzoAXJlWgGWgVXtEj0I6-7yHNU-wwI5tsnSKh6IPW1WdQ HTTP/1.0" 200 0 "http://85.31.230.47:9000/project/prueba2/timeline" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:16:59 +0000] "GET /media/user/a/d/8/9/61140a717ce427a9769e3ca06fd1b3bb77de4e20a43ab017fbe70fac83dd/1650177997104.jpg.80x80_q85_crop.jpg?token=ZW9pGw%3AYQhAarWYuxvqBpkWGm8JJyNJapacewttk-RhBvc06MzoAXJlWgGWgVXtEj0I6-7yHNU-wwI5tsnSKh6IPW1WdQ HTTP/1.1" 200 2104 "http://85.31.230.47:9000/project/prueba2/timeline" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:17:03 +0000] "GET /api/v1/users/me HTTP/1.1" 200 1221 "http://85.31.230.47:9000/project/prueba2/admin/project-profile/details" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:17:04 +0000] "GET /media/user/a/d/8/9/61140a717ce427a9769e3ca06fd1b3bb77de4e20a43ab017fbe70fac83dd/1650177997104.jpg.80x80_q85_crop.jpg?token=ZW9pHw%3AoT4-01MzQfBTp_1OmvExvqKi6Geg14NPso4sT1xdcoNq1fqryQZlgCgr5TceQSVNNKwsGB8VXhPuQFmpUDS0tQ HTTP/1.1" 200 2104 "http://85.31.230.47:9000/project/prueba2/admin/project-profile/details" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-protected_1        | 172.29.0.10 - - [05/Dec/2023:18:17:04 +0000] "GET /user/a/d/8/9/61140a717ce427a9769e3ca06fd1b3bb77de4e20a43ab017fbe70fac83dd/1650177997104.jpg.80x80_q85_crop.jpg?token=ZW9pHw%3AoT4-01MzQfBTp_1OmvExvqKi6Geg14NPso4sT1xdcoNq1fqryQZlgCgr5TceQSVNNKwsGB8VXhPuQFmpUDS0tQ HTTP/1.0" 200 0 "http://85.31.230.47:9000/project/prueba2/admin/project-profile/details" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:17:04 +0000] "GET /api/v1/projects?member=5&order_by=user_order&slight=true HTTP/1.1" 200 8468 "http://85.31.230.47:9000/project/prueba2/admin/project-profile/details" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:17:05 +0000] "GET /api/v1/users/me HTTP/1.1" 200 1221 "http://85.31.230.47:9000/project/prueba2/admin/memberships" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:17:05 +0000] "GET /api/v1/memberships?page=1&project=3 HTTP/1.1" 200 772 "http://85.31.230.47:9000/project/prueba2/admin/memberships" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-protected_1        | 172.29.0.10 - - [05/Dec/2023:18:17:05 +0000] "GET /user/a/d/8/9/61140a717ce427a9769e3ca06fd1b3bb77de4e20a43ab017fbe70fac83dd/1650177997104.jpg.80x80_q85_crop.jpg?token=ZW9pIQ%3AFolTNFJWsGxkXrk1hPzgxLkue6VP9Hdsx3hJED5fTYuLOBU2It_CH1ubfMl6u8KhSgUdbDKPZI4ASj7GoV1PsQ HTTP/1.0" 200 0 "http://85.31.230.47:9000/project/prueba2/admin/memberships" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:17:05 +0000] "GET /media/user/a/d/8/9/61140a717ce427a9769e3ca06fd1b3bb77de4e20a43ab017fbe70fac83dd/1650177997104.jpg.80x80_q85_crop.jpg?token=ZW9pIQ%3AFolTNFJWsGxkXrk1hPzgxLkue6VP9Hdsx3hJED5fTYuLOBU2It_CH1ubfMl6u8KhSgUdbDKPZI4ASj7GoV1PsQ HTTP/1.1" 200 2104 "http://85.31.230.47:9000/project/prueba2/admin/memberships" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:17:05 +0000] "GET /api/v1/projects?member=5&order_by=user_order&slight=true HTTP/1.1" 200 8468 "http://85.31.230.47:9000/project/prueba2/admin/memberships" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:17:14 +0000] "GET /api/v1/users/5/contacts?exclude_project=3 HTTP/1.1" 200 2 "http://85.31.230.47:9000/project/prueba2/admin/memberships" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:17:27 +0000] "POST /api/v1/memberships/bulk_create HTTP/1.1" 500 141 "http://85.31.230.47:9000/project/prueba2/admin/memberships" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-async_1            | [2023-12-05 18:17:35,558: INFO/Beat] Scheduler: Sending due task send-bulk-emails (taiga.projects.notifications.tasks.send_bulk_email)
taiga-async_1            | [2023-12-05 18:17:35,561: INFO/MainProcess] Task taiga.projects.notifications.tasks.send_bulk_email[38ec31ed-0817-400b-ac35-a9a5e69e0788] received

These are the logs when I click on forget password:

taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:19:38 +0000] "GET /api/v1/projects?discover_mode=true&order_by=-total_activity_last_year HTTP/1.1" 200 2516 "http://85.31.230.47:9000/discover" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:19:39 +0000] "GET /v-1695217671916/fonts/Ubuntu-Medium.ttf HTTP/1.1" 304 0 "http://85.31.230.47:9000/v-1695217671916/styles/theme-taiga.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:19:44 +0000] "GET /api/v1/projects?discover_mode=true&order_by=-total_activity_last_year HTTP/1.1" 200 2516 "http://85.31.230.47:9000/discover" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:19:44 +0000] "GET /api/v1/projects?discover_mode=true&order_by=-total_fans_last_year HTTP/1.1" 200 2516 "http://85.31.230.47:9000/discover" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:19:44 +0000] "GET /api/v1/projects?discover_mode=true&is_featured=true HTTP/1.1" 200 2 "http://85.31.230.47:9000/discover" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:19:45 +0000] "GET /discover HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:19:45 +0000] "GET /events HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:19:45 +0000] "GET /api/v1/projects?discover_mode=true&order_by=-total_activity_last_year HTTP/1.1" 200 2516 "http://85.31.230.47:9000/discover" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:19:45 +0000] "GET /api/v1/projects?discover_mode=true&order_by=-total_fans_last_year HTTP/1.1" 200 2516 "http://85.31.230.47:9000/discover" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:19:46 +0000] "GET /api/v1/projects?discover_mode=true&is_featured=true HTTP/1.1" 200 2 "http://85.31.230.47:9000/discover" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:20:14 +0000] "POST /api/v1/users/password_recovery HTTP/1.1" 500 141 "http://85.31.230.47:9000/forgot-password" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-gateway_1          | 190.128.26.210 - - [05/Dec/2023:18:20:38 +0000] "POST /api/v1/users/password_recovery HTTP/1.1" 500 141 "http://85.31.230.47:9000/forgot-password" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" "-"
taiga-async_1            | [2023-12-05 18:21:35,559: INFO/Beat] Scheduler: Sending due task send-bulk-emails (taiga.projects.notifications.tasks.send_bulk_email)
taiga-async_1            | [2023-12-05 18:21:35,561: INFO/MainProcess] Task taiga.projects.notifications.tasks.send_bulk_email[9fb10927-324f-4c4f-9d0c-a094d0b87ea7] received

Hi @mobsternation,

If you’ve followed the default installation, as suggested in the Taiga 30mins setup guide, it deploys both Taiga and Penpot apps when started with the ./launch-all.sh command.

Each product have different configuration and docker-compose.yml files:

  • Taiga’s configuration file is the .env file, which is used by the docker-compose.yml file
  • Penpot’s configuration file is the docker-compose.penpot.env, and it’s used by the docker-compose.penpot.yml file.

So, as you’re dealing with a problem from Taiga, you shouldn’t touch or configure anything related to Penpot. Editing either docker-compose.penpot.env or docker-compose.penpot.yml woun’t have an effect in Taiga.

Note: To start just Taiga (without also launching Penpot) simply execute docker compose up -d in the root directory.


With that cleared, could you pase here your Taiga’s configuration file, the .env file ?
Have you change anything apart from the STMP settings?

According to your logs taiga-async-1 correctly executed the asynchronous task responsible of sending the invitation emails for the users to join the project.

You can probably change the EMAIL_BACKEND var in the .envfile to use the console. This way we discard problems with the SMTP server and verify the email is really “sent” (it’ll be printed in the taiga-back logs).

# Taiga's SMTP settings - Variables to send Taiga's emails to the users
EMAIL_BACKEND=console  # use an SMTP server or display the emails in the console (either "smtp" or "console")
EMAIL_HOST=smtp.host.example.com  # SMTP server address
EMAIL_PORT=587   # default SMTP port
EMAIL_HOST_USER=user  # user to connect the SMTP server
EMAIL_HOST_PASSWORD=password  # SMTP user's password
EMAIL_DEFAULT_FROM=changeme@example.com  # default email address for the automated emails
# EMAIL_USE_TLS/EMAIL_USE_SSL are mutually exclusive (only set one of those to True)
EMAIL_USE_TLS=True  # use TLS (secure) connection with the SMTP server
EMAIL_USE_SSL=False  # use implicit TLS (secure) connection with the SMTP server

You should see the html email rendered in the logs (docker compose logs -f ) and you can search for the invitation link there:

Paste your invitation link (“http://localhost:9000/invitation/05ef2c52-94d0-11ee-8112-0242ac140009”) in a private browser and finish the user registration from there.