Files
betreuungs-cockpit/.env.example
T
Florian Wilde cc72f5efd7 chore: Projektgeruest mit Next.js, TypeScript und Tailwind
Grundgeruest der Anwendung: Next.js 15 (App Router), TypeScript im
strict-Modus, Tailwind mit shadcn/ui-Farbtokens.

Bewusste Festlegungen:
- Nur Systemschriften, keine externen Fonts, kein CDN.
- Grundschrift eine Stufe groesser, Fokusring immer sichtbar,
  Touchziele mindestens 44px.
- Ampelfarben fuer Fristen als eigene Design-Tokens.
- Betraege werden als Cent-Ganzzahl gefuehrt, damit die Rechnungslegung
  keine Rundungsfehler erbt.
- .env.example dokumentiert alle Geheimnisse; npm run schluessel erzeugt sie.

Etappe: 1
Phase: Fundament
2026-08-22 01:31:17 +02:00

64 lines
2.7 KiB
Bash

# =============================================================================
# Betreuungs-Cockpit - Beispielkonfiguration
# Kopiere diese Datei nach .env und fuelle die Werte aus.
# Alle Geheimnisse erzeugst du mit: npm run schluessel
# =============================================================================
# --- Datenbank --------------------------------------------------------------
# Lokal (Docker Compose): Host ist der Servicename "db".
POSTGRES_USER=cockpit
POSTGRES_PASSWORD=bitte-aendern
POSTGRES_DB=betreuungs_cockpit
DATABASE_URL="postgresql://cockpit:bitte-aendern@localhost:5432/betreuungs_cockpit?schema=public"
# --- Auth.js ----------------------------------------------------------------
# 32 zufaellige Bytes, base64. Erzeugen: npm run schluessel
AUTH_SECRET=
# Oeffentliche Basis-URL der Anwendung (ohne abschliessenden Slash).
AUTH_URL=http://localhost:3000
# Hinter einem Reverse Proxy (Caddy) auf true setzen.
AUTH_TRUST_HOST=true
# --- Anwendungsseitige Feldverschluesselung ---------------------------------
# AES-256-GCM. 32 Bytes, base64. OHNE DIESEN SCHLUESSEL SIND DIE VERSCHLUESSELTEN
# FELDER UNWIEDERBRINGLICH VERLOREN - unbedingt getrennt vom Backup sichern!
# Schluesselrotation: neuen Schluessel als ENC_KEY_V2 ergaenzen und
# ENC_KEY_AKTIV=2 setzen. Alte Schluessel bleiben zum Entschluesseln stehen.
ENC_KEY_V1=
ENC_KEY_AKTIV=1
# Separater Schluessel fuer Blind-Indizes (HMAC-SHA256).
# Erlaubt die Suche nach z.B. einer IBAN, ohne sie im Klartext zu speichern.
INDEX_KEY=
# --- Sicherheit -------------------------------------------------------------
# Leerlauf bis zur automatischen Abmeldung (Sekunden). 30 Minuten.
SESSION_MAX_AGE=1800
# Wie lange eine erneute Anmeldung fuer sensible Aktionen gilt (Sekunden).
REAUTH_MAX_AGE=300
# Login-Sperre: max. Fehlversuche pro Zeitfenster (Sekunden).
LOGIN_MAX_VERSUCHE=5
LOGIN_FENSTER_SEKUNDEN=900
LOGIN_SPERRE_SEKUNDEN=900
# --- Objektspeicher (S3-kompatibel, EU!) ------------------------------------
# Wird ab Etappe 3 verwendet. Beispiel: Hetzner Object Storage, Falkenstein.
# ACHTUNG: Mit dem Anbieter muss ein AV-Vertrag nach Art. 28 DSGVO bestehen.
S3_ENDPOINT=https://fsn1.your-objectstorage.com
S3_REGION=eu-central
S3_BUCKET=betreuungs-cockpit
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
# --- E-Mail-Erinnerungen (optional, ab Etappe 2) ----------------------------
SMTP_HOST=
SMTP_PORT=587
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM="Betreuungs-Cockpit <cockpit@example.de>"
# --- Erstanmeldung ----------------------------------------------------------
# Wird nur vom Seed benutzt, um den ersten Betreuer-Zugang anzulegen.
SEED_ADMIN_EMAIL=fw@wildeflorian.de
SEED_ADMIN_PASSWORT=bitte-beim-ersten-login-aendern