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
This commit is contained in:
@@ -8,6 +8,13 @@ services:
|
||||
- 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:
|
||||
|
||||
Reference in New Issue
Block a user