feat: add Mailpit SMTP relay and migrate all services

- Add Mailpit service to NET stack with web UI at mailpit.pivoine.art
- Configure Mailpit to relay all emails through IONOS SMTP
- Migrate all 11+ services to use Mailpit instead of direct IONOS SMTP:
  * SEXY: Directus API
  * UTIL: Joplin, Mattermost, Vaultwarden, Tandoor, Linkwarden
  * DEV: Gitea, n8n, Asciinema
  * AI: Open WebUI
  * NET: Netdata (via msmtp)
- Centralize SMTP credentials in mailpit-relay.yaml
- Simplify service configs (no auth/TLS for internal SMTP)
- Enable email monitoring via Mailpit web UI with Basic Auth

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-15 18:34:38 +01:00
parent 5bc790b79b
commit 51267cc674
8 changed files with 90 additions and 58 deletions

View File

@@ -32,11 +32,9 @@ services:
GITEA__server__SSH_PORT: 2222
GITEA__server__SSH_LISTEN_PORT: 2222
GITEA__mailer__ENABLED: true
GITEA__mailer__PROTOCOL: smtps
GITEA__mailer__SMTP_ADDR: ${EMAIL_SMTP_HOST}
GITEA__mailer__SMTP_PORT: ${EMAIL_SMTP_PORT}
GITEA__mailer__USER: ${EMAIL_SMTP_USER}
GITEA__mailer__PASSWD: ${EMAIL_SMTP_PASSWORD}
GITEA__mailer__PROTOCOL: smtp
GITEA__mailer__SMTP_ADDR: net_mailpit
GITEA__mailer__SMTP_PORT: 1025
GITEA__mailer__FROM: ${EMAIL_FROM}
GITEA__service__DISABLE_REGISTRATION: false
GITEA__service__REQUIRE_SIGNIN_VIEW: false
@@ -200,12 +198,10 @@ services:
N8N_PROTOCOL: https
WEBHOOK_URL: https://${DEV_N8N_TRAEFIK_HOST}/
N8N_EMAIL_MODE: smtp
N8N_SMTP_HOST: ${EMAIL_SMTP_HOST}
N8N_SMTP_PORT: ${EMAIL_SMTP_PORT}
N8N_SMTP_USER: ${EMAIL_SMTP_USER}
N8N_SMTP_PASS: ${EMAIL_SMTP_PASSWORD}
N8N_SMTP_HOST: net_mailpit
N8N_SMTP_PORT: 1025
N8N_SMTP_SENDER: ${EMAIL_FROM}
N8N_SMTP_SSL: "true"
N8N_SMTP_SSL: "false"
MATTERMOST_WEBHOOK_URL: ${MATTERMOST_WEBHOOK_URL:-}
depends_on:
- postgres
@@ -243,9 +239,8 @@ services:
URL_HOST: ${DEV_ASCIINEMA_TRAEFIK_HOST}
URL_SCHEME: https
DATABASE_URL: postgresql://${DB_USER}:${DB_PASSWORD}@${CORE_DB_HOST}/${DEV_ASCIINEMA_DB_NAME}?pool_size=10
SMTP_HOST: ${EMAIL_SMTP_HOST}
SMTP_USERNAME: ${EMAIL_SMTP_USER}
SMTP_PASSWORD: ${EMAIL_SMTP_PASSWORD}
SMTP_HOST: net_mailpit
SMTP_PORT: 1025
SMTP_FROM_ADDRESS: ${EMAIL_FROM}
SIGN_UP_DISABLED: ${DEV_ASCIINEMA_SIGN_UP_DISABLED:-false}
DEFAULT_AVATAR: gravatar