services: backend: build: context: ./backend container_name: bayesscen-backend restart: unless-stopped environment: ANTHROPIC_API_KEY: "${ANTHROPIC_API_KEY:?missing ANTHROPIC_API_KEY in .env}" ANTHROPIC_MODEL: "${ANTHROPIC_MODEL:-claude-sonnet-4-5}" ANTHROPIC_DEEP_MODEL: "${ANTHROPIC_DEEP_MODEL:-claude-opus-4-7}" CORS_ORIGINS: "${CORS_ORIGINS:-http://localhost:8080}" DATABASE_URL: "sqlite:////app/data/bayesscen.db" DATA_CACHE_DIR: "/app/data/cache" volumes: - backend-data:/app/data healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health', timeout=3)"] interval: 30s timeout: 5s retries: 3 start_period: 10s frontend: build: context: ./frontend args: # Empty = same-origin; nginx will proxy /api to backend VITE_API_BASE_URL: "" container_name: bayesscen-frontend restart: unless-stopped depends_on: backend: condition: service_healthy ports: - "${HTTP_PORT:-8080}:80" volumes: backend-data: