Files
Florian WildeandClaude Opus 5 845942f36c Phase 0: Fundament der Feuerwehr-Verwaltungsplattform
Legt den kompletten Unterbau an, auf dem die Fachmodule aufsetzen.

Betrieb:
- docker-compose.yml mit Traefik, App, Worker, PostgreSQL 17 + PostGIS,
  Redis, MinIO und Gotenberg; Entwicklungs-Override ohne Traefik, dafuer
  mit Mailpit und Adminer
- Mehrstufiges Dockerfile: eigener Benutzer, tini als PID 1, Healthcheck
- .env.example mit einem Kommentar zu jeder Variable

Mandantentrennung:
- Row Level Security auf allen mandantenpflichtigen Tabellen
- Zwei getrennte Datenbankverbindungen: florian_app mit aktiver RLS fuer
  die Anwendung, Eigentuemer-Zugang nur fuer Migration, Seed und Anmeldung
- fuerOrganisation() als einziger Weg zu Fachdaten

Nachvollziehbarkeit:
- AuditLog append-only per Trigger; UPDATE ist dauerhaft gesperrt, DELETE
  nur im gekennzeichneten Aufbewahrungslauf
- Geheimnisse werden vor dem Schreiben entfernt

Anmeldung:
- OIDC gegen ein extern betriebenes authentik, Rollen aus Gruppen nur als
  Vorbelegung beim ersten Login
- Lokaler E-Mail/Passwort-Login als Rueckfallweg
- Terminal per PIN und RFID mit zwei Schranken (Geraet, dann Person)

Weiteres:
- lib/authz.ts mit 9 Rollen und 38 Einzelrechten
- lib/storage.ts (MinIO), lib/audit.ts, lib/warteschlange.ts (BullMQ)
- Integrationen fuer Mail, Telegram und LLM hinter abschaltbaren Interfaces
- tRPC v11, Basis-Layout mit Seitenleiste und dunkler Darstellung
- Seed mit einer Beispielwehr: 16 Personen, 3 Fahrzeuge, 40 Geraete
- 32 Vitest-Tests (davon 8 gegen eine echte Datenbank), 10 Playwright-Tests
- README, Anleitung mit Screenshots, Roadmap, Aufwandsschaetzung, Devlog,
  Versionierungsregeln und Changelog

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 00:13:53 +02:00

1.3 KiB

Lies CLAUDE.md. Erstelle Phase 0 des Projekts: das Fundament.

Liefere:

  1. Monorepo-Struktur (Next.js App, prisma/, docker/, scripts/)
  2. docker-compose.yml mit: traefik, app, worker, postgres (postgis/postgis:17), redis, minio, gotenberg. Dazu docker-compose.override.yml für Entwicklung und eine vollständige .env.example mit Kommentaren zu jeder Variable.
  3. Dockerfile für die App (Multi-Stage, non-root User, Healthcheck).
  4. Prisma-Schema mit den Basismodellen: Organisation, Person, Rolle, Berechtigung, AusweisToken, AuditLog, Datei. Inklusive RLS-Policies als SQL-Migration.
  5. Auth: OIDC gegen authentik (Auth.js) plus lokaler E-Mail/Passwort-Fallback für den Erststart, plus Terminal-Login per PIN/RFID-Token für den Kiosk.
  6. lib/authz.ts mit Rollen: SUPERADMIN, KOMMANDANT, GERAETEWART, ATEMSCHUTZGERAETEWART, KASSIER, SCHRIFTFUEHRER, AUSBILDER, MITGLIED, KIOSK.
  7. lib/storage.ts (MinIO), lib/audit.ts, lib/db.ts (mit Mandanten-Kontext).
  8. Basis-Layout mit shadcn/ui, deutschem UI-Text, Dark Mode, Seitenleiste.
  9. Seed-Skript: eine Beispielwehr, 15 Personen, 3 Fahrzeuge, 40 Geräte.
  10. Vitest- und Playwright-Setup mit je einem Beispieltest.
  11. README mit Schnellstart in unter 10 Zeilen.

Erkläre am Ende kurz, wie ich den Stack hochfahre und mich anmelde. Frage nach, bevor du Annahmen über meine authentik-Konfiguration triffst.