# Lokale Entwicklungsumgebung für Syncova. # # Diese Datei ist ausdrücklich NICHT für den produktiven Betrieb gedacht: # sie exponiert PostgreSQL auf localhost und verzichtet auf TLS zwischen # Anwendung und Datenbank. # # Start: make dev-up # Stopp: make dev-down services: # postgres ist die Control-Plane-Datenbank. Sie enthält niemals Backup-Nutzdaten. postgres: image: postgres:17-alpine container_name: syncova-postgres restart: unless-stopped environment: # Die Zugangsdaten stammen aus der .env-Datei im Projektwurzelverzeichnis. # Diese wird über "make dev-env" mit einem Zufallspasswort erzeugt und # ist bewusst von der Versionsverwaltung ausgeschlossen. POSTGRES_DB: ${SYNCOVA_DB_NAME:?SYNCOVA_DB_NAME fehlt - bitte "make dev-env" ausführen} POSTGRES_USER: ${SYNCOVA_DB_USER:?SYNCOVA_DB_USER fehlt - bitte "make dev-env" ausführen} POSTGRES_PASSWORD: ${SYNCOVA_DB_PASSWORD:?SYNCOVA_DB_PASSWORD fehlt - bitte "make dev-env" ausführen} # Verhindert, dass ein anonymer Zugriff auf die Datenbank möglich ist. POSTGRES_HOST_AUTH_METHOD: scram-sha-256 POSTGRES_INITDB_ARGS: "--auth-host=scram-sha-256" ports: # Nur an das Loopback-Interface binden: die Datenbank darf nicht im Netz stehen. - "127.0.0.1:5432:5432" volumes: - syncova-postgres-data:/var/lib/postgresql/data healthcheck: # Der Healthcheck erlaubt es abhängigen Diensten, auf eine bereite Datenbank zu warten. test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 10 start_period: 10s volumes: # syncova-postgres-data hält die Datenbankdateien über Container-Neustarts hinweg. syncova-postgres-data: name: syncova-postgres-data