From b41fd980ce1acc2b2c7ac341645f4bbdb7b7ff35 Mon Sep 17 00:00:00 2001 From: "XPS\\Micro" Date: Sun, 1 Feb 2026 10:24:51 +0100 Subject: [PATCH] fix: add SMTP and missing environment variables to docker-compose.yml - Fix USER_TEMPLATE_IMAGES quoting in .env.example (prevent bash metacharacter issues) - Add all SMTP configuration variables to docker-compose environment - Add EMAIL service variables (FRONTEND_URL, MAGIC_LINK_EXPIRY, RATE_LIMIT) - Add JWT and resource limit variables - Improve environment variable organization with comments SMTP variables were defined in .env but not passed to container, causing email service configuration issues. Co-Authored-By: Claude Haiku 4.5 --- .env.example | 3 ++- docker-compose.yml | 31 +++++++++++++++++++++++++------ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/.env.example b/.env.example index 97a22aa..e177d5c 100644 --- a/.env.example +++ b/.env.example @@ -57,7 +57,8 @@ USER_TEMPLATE_IMAGE=user-template-01:latest # - Für Metadaten (Display-Namen, Beschreibungen) siehe templates.json # - Container-Typen werden automatisch aus Image-Namen extrahiert # Beispiel: user-template-01:latest → Typ: template-01 -USER_TEMPLATE_IMAGES=user-template-01:latest;user-template-02:latest;user-template-next:latest +# - ANFÜHRUNGSZEICHEN WICHTIG: Variable muss quoted sein! +USER_TEMPLATE_IMAGES="user-template-01:latest;user-template-02:latest;user-template-next:latest" # ============================================================ # RESSOURCEN - Container-Limits diff --git a/docker-compose.yml b/docker-compose.yml index 3b26f61..515846a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,19 +22,38 @@ services: - ./logs:/app/logs environment: - # Aus .env-Datei + # Aus .env-Datei - Sicherheit - SECRET_KEY=${SECRET_KEY} - JWT_SECRET_KEY=${JWT_SECRET_KEY:-${SECRET_KEY}} + # Domain & Routing - BASE_DOMAIN=${BASE_DOMAIN} - - TRAEFIK_NETWORK=${TRAEFIK_NETWORK} - - USER_TEMPLATE_IMAGE=${USER_TEMPLATE_IMAGE:-user-service-template:latest} - SPAWNER_SUBDOMAIN=${SPAWNER_SUBDOMAIN:-coder} - CORS_ORIGINS=https://${SPAWNER_SUBDOMAIN:-coder}.${BASE_DOMAIN},http://localhost:3000 - # Traefik-Konfiguration + # Docker & Traefik + - TRAEFIK_NETWORK=${TRAEFIK_NETWORK} + - DOCKER_HOST=${DOCKER_HOST:-unix:///var/run/docker.sock} + # Templates (Dynamisches System) + - USER_TEMPLATE_IMAGE=${USER_TEMPLATE_IMAGE:-user-template-01:latest} + - USER_TEMPLATE_IMAGES=${USER_TEMPLATE_IMAGES:-"user-template-01:latest;user-template-02:latest;user-template-next:latest"} + # Traefik-Zertifikate - TRAEFIK_CERTRESOLVER=${TRAEFIK_CERTRESOLVER:-lets-encrypt} - TRAEFIK_ENTRYPOINT=${TRAEFIK_ENTRYPOINT:-websecure} - # Docker-Verbindung - - DOCKER_HOST=${DOCKER_HOST:-unix:///var/run/docker.sock} + # SMTP & Email + - SMTP_HOST=${SMTP_HOST} + - SMTP_PORT=${SMTP_PORT} + - SMTP_USER=${SMTP_USER} + - SMTP_PASSWORD=${SMTP_PASSWORD} + - SMTP_FROM=${SMTP_FROM} + - SMTP_USE_TLS=${SMTP_USE_TLS:-true} + - FRONTEND_URL=${FRONTEND_URL} + # Magic Links + - MAGIC_LINK_TOKEN_EXPIRY=${MAGIC_LINK_TOKEN_EXPIRY:-900} + - MAGIC_LINK_RATE_LIMIT=${MAGIC_LINK_RATE_LIMIT:-3} + # JWT + - JWT_ACCESS_TOKEN_EXPIRES=${JWT_ACCESS_TOKEN_EXPIRES:-3600} + # Ressourcen-Limits + - DEFAULT_MEMORY_LIMIT=${DEFAULT_MEMORY_LIMIT:-512m} + - DEFAULT_CPU_QUOTA=${DEFAULT_CPU_QUOTA:-50000} networks: - web