fix(security): F30 (Astra P1) — kein bekanntes Admin-Standardpasswort mehr

Vorher: seed_admin.py und docker-compose.yaml enthielten einen festen
Passwort-Fallback (Admin123!) — ein frisches Volume erzeugte ein
nutzbares Konto mit bekanntem Zugang. Auch die laufende Produktion
nutzte diesen Default (im Container verifiziert).

Fix:
- seed_admin.py: Bei NEUER Admin-Anlage ohne gesetztes ADMIN_PASSWORD
  bricht der Start in Produktion AB (vor Benutzeranlage); in Dev wird
  ein einmaliges Zufallspasswort generiert und ausgegeben. Bestehende
  Admin-Accounts werden uebersprungen (kein Passwortgebrauch) — der
  naechste Deploy laeuft also auch ohne gesetzte Variable weiter.
- docker-compose.yaml: ${ADMIN_PASSWORD:-Admin123!} -> required
  (${ADMIN_PASSWORD:?...}) — kein Default mehr.
- .env.example/.env.docker.example: Default durch CHANGE_ME-Hinweis
  ersetzt.

Abnahme (Astra): Ein frisches Volume ohne gesetztes Geheimnis erzeugt
kein nutzbares Konto mit festem Standardpasswort — erfuellt.
This commit is contained in:
Agent Zero
2026-09-18 08:02:05 +02:00
parent ad3575c64d
commit 632554bf28
4 changed files with 36 additions and 11 deletions
+1 -1
View File
@@ -92,7 +92,7 @@ services:
SMTP_TLS: ${SMTP_TLS:-true}
BCRYPT_ROUNDS: ${BCRYPT_ROUNDS:-12}
ADMIN_EMAIL: ${ADMIN_EMAIL:-admin@media-on.de}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-Admin123!}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:?ADMIN_PASSWORD must be set — no default credentials (Astra F30)}
MAIL_ENCRYPTION_KEY: ${MAIL_ENCRYPTION_KEY:?MAIL_ENCRYPTION_KEY is required}
volumes:
- storage:/data/storage