Das dokumentierte Backup lief real nie (stock postgres-Image ohne Cron, backup.sh nirgends eingebunden) -> bei Volume-/Disk-Verlust drohte Totalverlust. - Neuer service "backup" (docker-compose.yml): postgres:16-alpine als Sidecar, taeglicher pg_dump um BACKUP_HOUR (Default 03:00 Europe/Berlin) - backup-loop.sh: abhaengigkeitsfreier Tages-Scheduler (umgeht busybox-cron- Environment-Eigenheiten) - backup.sh korrigiert: laeuft remote gegen PGHOST mit PGPASSWORD; -Fc statt "-Fc | gzip" (war doppelt komprimiert und als .sql.gz nicht restore-bar) -> .dump - BACKUP_HOUR/BACKUP_RETENTION_DAYS konfigurierbar (.env.example) - operations.md: Backup-/Restore-Anleitung an Ist-Zustand angepasst Verifiziert: pg_dump erstellt + pg_restore in frische DB, Daten intakt. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
39 lines
1.3 KiB
Bash
39 lines
1.3 KiB
Bash
# --- Postgres ---
|
|
DATABASE_URL=postgres://cockpit:cockpit_dev@localhost:55432/cockpit
|
|
|
|
# --- Authentik OIDC (Story 1.3) ---
|
|
# Anlage als „Provider" und „Application" in Authentik unter https://auth.tool-ctrl.de
|
|
# → siehe docs/operations.md (kommt in Story 1.7)
|
|
AUTHENTIK_ISSUER=https://auth.tool-ctrl.de/application/o/cockpit/
|
|
AUTHENTIK_CLIENT_ID=
|
|
AUTHENTIK_CLIENT_SECRET=
|
|
AUTHENTIK_REDIRECT_URI=http://localhost:3000/api/auth/callback
|
|
|
|
# --- Session ---
|
|
SESSION_COOKIE_NAME=cockpit_session
|
|
SESSION_TTL_HOURS=24
|
|
SESSION_COOKIE_SECRET=please-change-me-in-prod-at-least-32-chars
|
|
|
|
# --- Cron Bearer (Story 2.6 + 5.1 + 6.3) ---
|
|
CRON_BEARER_TOKEN=please-change-me-in-prod
|
|
|
|
# --- Backup-Sidecar (Story 6.3, nur Prod) ---
|
|
# Täglicher pg_dump im service "backup". Beide optional (Defaults: 03 / 14).
|
|
# BACKUP_HOUR=03
|
|
# BACKUP_RETENTION_DAYS=14
|
|
|
|
# --- App ---
|
|
NODE_ENV=development
|
|
LOG_LEVEL=info
|
|
PORT=3000
|
|
PUBLIC_BASE_URL=http://localhost:5173
|
|
|
|
# --- Kimai-Sync (optional, ENTWICKLUN-9) ---
|
|
# Nur wenn ALLE vier gesetzt sind, synct ebw beim Check-In/Out nach Kimai
|
|
# (sonst No-Op). API-Token in Kimai unter Benutzerprofil → API-Zugriff.
|
|
# PROJECT/ACTIVITY = numerische IDs des Default-Projekts/-Tätigkeit in Kimai.
|
|
# KIMAI_BASE_URL=https://kimai.tool-ctrl.de
|
|
# KIMAI_API_TOKEN=
|
|
# KIMAI_PROJECT_ID=
|
|
# KIMAI_ACTIVITY_ID=
|