# ============================================================================= # 01_stack-backend.yml – Phase 3 # Datenbank-Stack: postgresql17 + Redis # ============================================================================= # # FIXES in dieser Version: # - SQL-Init-Script NICHT mehr als Volume gemountet (war Phantom-Pfad) # → Init läuft manuell per stdin, siehe MIGRATION.md Phase 3a # - Redis auf gepinnter Version (nicht mehr :latest) # - Kein ports:-Block → 5432 und 6379 nicht mehr vom Host erreichbar # # VORAUSSETZUNG vor dem Start: # 1. secrets/postgres_password.txt anlegen (sonst startet Stack nicht!) # 2. Phase 3a in MIGRATION.md ausführen (DB/User prüfen oder anlegen) # 3. Backend-Health prüfen bevor Frontend gestartet wird # # ============================================================================= networks: backend_net: external: true services: # --------------------------------------------------------------------------- # POSTGRESQL 17 # Kein ports:-Block → Port 5432 nicht mehr vom LAN erreichbar. # Kein SQL-Mount → Init läuft manuell per stdin (siehe MIGRATION.md). # DNS-Name "postgresql17" ist nur aus backend_net auflösbar. # --------------------------------------------------------------------------- postgresql17: image: postgres:17 # gepinnt auf Major-Version container_name: postgresql17 restart: unless-stopped security_opt: - no-new-privileges:true volumes: - /mnt/user/appdata/postgresql17:/var/lib/postgresql/data networks: backend_net: ipv4_address: 172.21.0.10 environment: POSTGRES_PASSWORD_FILE: /run/secrets/postgres_password POSTGRES_USER: postgres secrets: - postgres_password healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 30s timeout: 10s retries: 5 start_period: 20s labels: net.unraid.docker.managed: "dockerman" net.unraid.docker.icon: "https://github.com/juusujanar/unraid-templates/raw/master/img/PostgreSQL-logo.png" # --------------------------------------------------------------------------- # REDIS 7 # Kein ports:-Block → Port 6379 nicht mehr vom LAN erreichbar. # Version gepinnt auf 7-alpine (war :latest). # Passwort aus .env — dieselbe Variable wie in paperless-ngx! # --------------------------------------------------------------------------- Redis: image: redis:7-alpine # gepinnt — nicht mehr :latest container_name: Redis restart: unless-stopped security_opt: - no-new-privileges:true command: > redis-server --requirepass "${REDIS_PASSWORD}" --maxmemory 256mb --maxmemory-policy allkeys-lru --save "" networks: backend_net: ipv4_address: 172.21.0.11 healthcheck: test: ["CMD", "redis-cli", "--no-auth-warning", "-a", "${REDIS_PASSWORD}", "ping"] interval: 30s timeout: 5s retries: 3 labels: net.unraid.docker.managed: "dockerman" net.unraid.docker.icon: "https://raw.githubusercontent.com/juusujanar/unraid-templates/master/img/Redis-logo.png" secrets: postgres_password: file: ./secrets/postgres_password.txt