# Klarbild — selbst-enthaltener Stack (App + Worker, Postgres, MinIO). # Deploy über Coolify (Docker Compose). Werte kommen aus Coolify-Env. services: app: build: context: . dockerfile: Dockerfile environment: SERVICE_FQDN_APP_4321: / PORT: "4321" DATABASE_URL: "postgres://klarbild:${DB_PASSWORD}@db:5432/klarbild" S3_ENDPOINT: "http://minio:9000" S3_REGION: "us-east-1" S3_BUCKET: "klarbild" S3_ACCESS_KEY: "${S3_ACCESS_KEY}" S3_SECRET_KEY: "${S3_SECRET_KEY}" S3_FORCE_PATH_STYLE: "true" SESSION_SECRET: "${SESSION_SECRET}" ENCRYPTION_KEY: "${ENCRYPTION_KEY}" OPENROUTER_API_KEY: "${OPENROUTER_API_KEY}" TELEGRAM_BOT_TOKEN: "${TELEGRAM_BOT_TOKEN}" SEED_TILL_PASSWORD: "${SEED_TILL_PASSWORD}" SEED_LEA_PASSWORD: "${SEED_LEA_PASSWORD}" PUBLIC_BASE_URL: "${PUBLIC_BASE_URL}" N8N_WEBHOOK_URL: "${N8N_WEBHOOK_URL}" depends_on: - db - minio healthcheck: test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:4321/api/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] interval: 30s timeout: 5s retries: 5 start_period: 60s db: image: postgres:16-alpine environment: POSTGRES_USER: klarbild POSTGRES_PASSWORD: "${DB_PASSWORD}" POSTGRES_DB: klarbild volumes: - db-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U klarbild"] interval: 10s timeout: 5s retries: 10 minio: image: minio/minio:latest command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: "${S3_ACCESS_KEY}" MINIO_ROOT_PASSWORD: "${S3_SECRET_KEY}" volumes: - minio-data:/data healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 15s timeout: 5s retries: 10 volumes: db-data: minio-data: