# PostgreSQL für die lokale Entwicklung — siehe AUSBAUSTUFEN.md 4.10. # # Nur für die Entwicklung gedacht: feste, schwache Zugangsdaten, Port offen # auf localhost. Für den Betrieb ungeeignet. # # docker compose -f docker-compose.dev.yml up -d # starten # docker compose -f docker-compose.dev.yml down # stoppen (Daten bleiben) # docker compose -f docker-compose.dev.yml down -v # stoppen und Daten löschen # # Munin damit starten: # DB_DRIVER=postgres \ # DATABASE_URL='postgres://munin:munin@localhost:5432/munin?sslmode=disable' \ # go run . # # Tests gegen PostgreSQL (eigene Datenbank munin_test). Store, Export und # Import laufen dann gegen PostgreSQL, alles andere wie immer gegen SQLite: # MUNIN_TEST_PG='postgres://munin:munin@localhost:5432/munin_test?sslmode=disable' \ # go test ./... services: postgres: image: postgres:18 # Munin braucht je Workspace bis zu 3 Verbindungen (siehe # internal/store/backend_postgres.go). 200 reichen für rund 60 Workspaces. command: postgres -c max_connections=200 environment: POSTGRES_USER: munin POSTGRES_PASSWORD: munin POSTGRES_DB: munin # Sortierung "C": Text wird Byte für Byte sortiert, genau wie in SQLite. # Ohne das stünde z.B. "a-c" vor "ab". Wirkt nur beim allerersten Start # (leeres Volume). POSTGRES_INITDB_ARGS: "--locale=C --encoding=UTF8" ports: - "127.0.0.1:5432:5432" volumes: - munin-pgdata:/var/lib/postgresql # Legt beim allerersten Start die Datenbank munin_test für die Tests an. - ./scripts/postgres-dev-init.sql:/docker-entrypoint-initdb.d/munin-init.sql:ro healthcheck: test: ["CMD-SHELL", "pg_isready -U munin -d munin"] interval: 2s timeout: 3s retries: 15 volumes: munin-pgdata: