Files
spiele-redaktion/docker-compose.yml
Flo Hartmann f51732bff1 Plugin benachrichtigung: E-Mail, Telegram, In-App per Adapter-Muster
- Adapter-Pattern mit drei Kanaelen: E-Mail (SMTP per Env, TLS starttls/ssl,
  Dev-Fallback: Protokoll), Telegram (Bot-API, Token per Env, Chat-ID pro
  Benutzer), In-App (persistente Nachrichten mit Unread-Counter und
  'Alle als gelesen markieren')
- Pro Benutzer Kanal-Praeferenzen (Einstellungsseite, mehrere Kanaele
  gleichzeitig) plus eigene Kontakt-Tabelle (E-Mail-Adresse, Chat-ID);
  Kern und users-Tabelle unveraendert
- Oeffentliche Plugin-API: await send_notification(user, titel, text,
  kategorie) - andere Plugins holen das Plugin ueber app.state.registry
- Eigene Migration (0001_tabellen), eigene Routen/Templates, deutsche UI
- Tests: Adapter-Auswahl nach Praeferenz, In-App-Persistenz, Dev-Log-
  Adapter, SMTP-Versand (gemockt), Telegram-API-Aufruf, Einstellungsseite
- README: Plugin-Doku + neue Env-Variablen; docker-compose: Platzhalter
2026-08-21 19:00:06 +00:00

32 lines
1.2 KiB
YAML

services:
app:
build: .
container_name: spiele-redaktion
restart: unless-stopped
environment:
- SPIELE_DATABASE_URL=sqlite:///./data/spiele-redaktion.db
- SPIELE_SESSION_SECRET=${SPIELE_SESSION_SECRET:-change-me-in-production}
# Vor dem ersten Start setzen, sonst wird der Admin mit "admin" angelegt:
- SPIELE_INITIAL_ADMIN_PASSWORD=${SPIELE_INITIAL_ADMIN_PASSWORD:-admin}
# Benachrichtigungen (optional): ohne SMTP-Host/Bot-Token wird nur protokolliert
#- SPIELE_SMTP_HOST=smtp.example.org
#- SPIELE_SMTP_PORT=587
#- SPIELE_SMTP_BENUTZER=bot@example.org
#- SPIELE_SMTP_PASSWORT=geheim
#- SPIELE_SMTP_ABSENDER=redaktion@example.org
#- SPIELE_TELEGRAM_BOT_TOKEN=123456:ABC-DEF
volumes:
- ./data:/app/data
networks:
- traefik_default
labels:
- "traefik.enable=true"
- "traefik.http.routers.spiele-redaktion.rule=Host(`swen.henry.insight-it.de`)"
- "traefik.http.routers.spiele-redaktion.entrypoints=websecure"
- "traefik.http.routers.spiele-redaktion.tls.certresolver=le"
- "traefik.http.services.spiele-redaktion.loadbalancer.server.port=8000"
networks:
traefik_default:
external: true