Integrierte Datenbank

Integrierte Datenbank

Diese Variante liefert eine PostgreSQL-Datenbank als Docker-Container mit. Die Daten werden in einem Docker-Volume persistiert.

Starten

Stelle sicher, dass die .env-Datei korrekt konfiguriert ist (siehe Konfiguration). Eine DB_URL wird nicht benötigt – sie wird automatisch auf die integrierte Datenbank gesetzt.

docker compose -f compose.yaml -f compose.db.yaml up -d

Dienste

DienstBeschreibungPort
appVSFV-Anwendung3000
app-migrateDatenbankmigrationen (einmalig)-
html2pdfPDF-Generierungsdienst (intern)-
dbPostgreSQL-Datenbank (intern)-

Die Datenbank ist nur über das interne database-Netzwerk erreichbar und nicht von außen zugänglich.

Aktualisieren

docker compose -f compose.yaml -f compose.db.yaml pull
docker compose -f compose.yaml -f compose.db.yaml up -d

Stoppen

# Container stoppen (Daten bleiben im Volume erhalten)
docker compose -f compose.yaml -f compose.db.yaml down

# Container UND Datenbank-Volume löschen (Achtung: Datenverlust!)
docker compose -f compose.yaml -f compose.db.yaml down -v

Datensicherung

Die Datenbankdaten liegen im Docker-Volume db-data. Für ein Backup kann pg_dump verwendet werden:

docker compose -f compose.yaml -f compose.db.yaml exec db \
  pg_dump -U vsf vsf > backup.sql

Wiederherstellen:

docker compose -f compose.yaml -f compose.db.yaml exec -T db \
  psql -U vsf vsf < backup.sql