# Medien: aktuell nicht vorgesehen. Bei Bedarf NAS-Mount + docker-compose.override.yml (siehe docs/DEPLOYMENT.md). services: postgres: image: postgres:16-alpine container_name: kairo-db-prod environment: POSTGRES_DB: "${DB_NAME:-kairo}" POSTGRES_USER: "${DB_USER:-kairo_user}" POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - kairo-db-data:/var/lib/postgresql/data ports: - "127.0.0.1:5436:5432" restart: unless-stopped networks: - kairo-network backend: build: context: ./backend dockerfile: Dockerfile container_name: kairo-api environment: DB_HOST: postgres DB_PORT: 5432 DB_NAME: kairo DB_USER: kairo_user DB_PASSWORD: ${DB_PASSWORD} OPENROUTER_API_KEY: ${OPENROUTER_API_KEY} OPENROUTER_MODEL: ${OPENROUTER_MODEL} KAIRO_AI_DEBUG: "${KAIRO_AI_DEBUG:-}" SMTP_HOST: ${SMTP_HOST} SMTP_PORT: ${SMTP_PORT} SMTP_USER: ${SMTP_USER} SMTP_PASS: ${SMTP_PASS} SMTP_FROM: ${SMTP_FROM} SMTP_SSL: ${SMTP_SSL:-} SMTP_STARTTLS: ${SMTP_STARTTLS:-} AUTO_ADMIN_FIRST_USER: "${AUTO_ADMIN_FIRST_USER:-true}" ADMIN_BOOTSTRAP_EMAILS: "${ADMIN_BOOTSTRAP_EMAILS:-}" APP_URL: "${APP_URL:-https://kairo.jinkendo.de}" ALLOWED_ORIGINS: "${ALLOWED_ORIGINS:-https://kairo.jinkendo.de}" ENVIRONMENT: "${ENVIRONMENT:-production}" CLUB_FEATURE_ENFORCE: "${CLUB_FEATURE_ENFORCE:-1}" ports: - "8004:8000" depends_on: - postgres restart: unless-stopped networks: - kairo-network frontend: build: context: ./frontend dockerfile: Dockerfile args: VITE_API_URL: "" container_name: kairo-ui ports: - "3004:80" depends_on: - backend restart: unless-stopped networks: - kairo-network volumes: kairo-db-data: networks: kairo-network: driver: bridge