version: '3.8' services: postgres: image: postgres:16-alpine container_name: shinkan-db-prod environment: POSTGRES_DB: shinkan POSTGRES_USER: shinkan_user POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - shinkan-db-data:/var/lib/postgresql/data ports: - "5434:5432" restart: unless-stopped networks: - shinkan-network backend: build: context: ./backend dockerfile: Dockerfile container_name: shinkan-api environment: DB_HOST: postgres DB_PORT: 5432 DB_NAME: shinkan DB_USER: shinkan_user DB_PASSWORD: ${DB_PASSWORD} OPENROUTER_API_KEY: ${OPENROUTER_API_KEY} OPENROUTER_MODEL: ${OPENROUTER_MODEL} SMTP_HOST: ${SMTP_HOST} SMTP_PORT: ${SMTP_PORT} SMTP_USER: ${SMTP_USER} SMTP_PASS: ${SMTP_PASS} SMTP_FROM: ${SMTP_FROM} APP_URL: https://shinkan.jinkendo.de ALLOWED_ORIGINS: https://shinkan.jinkendo.de ENVIRONMENT: production volumes: - shinkan-media:/app/media ports: - "8003:8000" depends_on: - postgres restart: unless-stopped networks: - shinkan-network frontend: build: context: ./frontend dockerfile: Dockerfile args: VITE_API_URL: "" container_name: shinkan-ui ports: - "3003:80" depends_on: - backend restart: unless-stopped networks: - shinkan-network volumes: shinkan-db-data: shinkan-media: networks: shinkan-network: driver: bridge