Harden authentication, tenant isolation and security boundaries

This commit is contained in:
t.indorf
2026-10-09 22:49:55 +02:00
parent ec3f4f933d
commit 656ada80bd
71 changed files with 3107 additions and 1200 deletions
+16 -2
View File
@@ -11,6 +11,11 @@ POSTGRES_DB="kita_planer"
POSTGRES_USER="kita_planer"
POSTGRES_PASSWORD="[GENERATE_ME]"
# Unterschiedliche DB-Rollen für Runtime und Migration. URL-Passwörter müssen URL-kodiert sein.
APP_DATABASE_PASSWORD="[GENERATE_ME]"
APP_DATABASE_URL="postgresql://kita_runtime:[URL_ENCODED_APP_PASSWORD]@postgres:5432/kita_planer?schema=public"
MIGRATION_DATABASE_URL="postgresql://kita_planer:[URL_ENCODED_OWNER_PASSWORD]@postgres:5432/kita_planer?schema=public"
# pgAdmin im Coolify-Compose-Stack
PGADMIN_DEFAULT_EMAIL="[admin@deine-domain.de]"
PGADMIN_DEFAULT_PASSWORD="[GENERATE_ME]"
@@ -40,5 +45,14 @@ ADMIN_EMAIL="[kontakt@deine-domain.de]"
# Muss auf dem Server dauerhaft erhalten bleiben und darf nicht im Repo liegen.
UPLOAD_DIR="/var/lib/kita-planer/uploads/announcements"
# Optional: Nur bewusst fuer initiales Demo-Seeding in Produktion setzen.
# ALLOW_DATABASE_SEED="true"
# Standard: 256 MiB je Kita, 10 GiB insgesamt. Compose verwendet diese Werte.
UPLOAD_TENANT_QUOTA_BYTES="268435456"
UPLOAD_GLOBAL_QUOTA_BYTES="10737418240"
# Compose setzt UPLOAD_DIR fest auf /app/uploads/announcements.
# Die Anwendung ergänzt /announcements: bestehende Dateien liegen dort unter
# /app/uploads/announcements/announcements. Diesen Pfad beim Backfill beibehalten.
# Demo-Seeding ist in Produktion deaktiviert.
# Nur hinter einem Proxy setzen, der diesen Header überschreibt:
# TRUSTED_CLIENT_IP_HEADER="x-real-ip"