Files
schalli a5f99e52e3 feat(quick-260909-dgj): Migrationsverbindung von Laufzeitverbindung trennen (Task 2/4)
- apps/api/scripts/migrate-and-start.sh: TESSERA_MIGRATE_DATABASE_URL fuer
  den Migrationsschritt, DATABASE_URL bleibt unveraendert fuer den
  Laufzeitschritt; leer/nicht gesetzt = bisheriges Verhalten
- Dockerfile kopiert scripts/ und ruft das Skript als CMD auf; exec statt
  &&-Verkettung, damit Signale den Node-Prozess erreichen
- docker-compose.yml/.prod.yml reichen TESSERA_MIGRATE_DATABASE_URL durch
  (leerer Vorgabewert); docker-compose.dev.yml/.ci.yml unveraendert
- .env.example erklaert beide Variablen mit Platzhaltern, Umstellung bleibt
  auskommentiert
- 5 Tests in start-script.spec.ts (rot vor dem Skript, jetzt gruen)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FYZcd3SSmo14QTqWx2KKzU
2026-09-09 10:00:45 +02:00

20 lines
1.1 KiB
Bash

DB_PASSWORD=your_db_password_here
DATABASE_URL=postgresql://tessera:your_db_password_here@db:5432/tessera
NODE_ENV=development
# DATABASE_URL ist die Verbindung, mit der die laufende Anwendung arbeitet.
# TESSERA_MIGRATE_DATABASE_URL ist die separate Verbindung, mit der beim
# Containerstart NUR "prisma migrate deploy" laeuft. Bleibt sie leer, laeuft
# alles wie bisher — beide Schritte nutzen DATABASE_URL. Die getrennte
# Belegung ist erst sinnvoll, wenn docs/mandantentrennung-datenbankrolle.md
# vollstaendig abgearbeitet ist; vorher wuerde eine ungeprüfte Umstellung die
# Anwendung von ihren eigenen Daten aussperren.
# TESSERA_MIGRATE_DATABASE_URL=postgresql://tessera:your_db_password_here@db:5432/tessera
# Encrypts stored credentials (LDAP bind password, calendar and mailbox logins).
# Required - the stack refuses to start without it.
# Generate one with: openssl rand -hex 32
# If this value is lost, every stored credential becomes unrecoverable.
# Belongs with every database backup, stored separately from it - a backup alone cannot restore credentials.
TESSERA_ENCRYPTION_KEY=