services: # Frontend (nginx serving static files) frontend: build: context: . dockerfile: Dockerfile container_name: devden-frontend ports: - "3000:80" restart: unless-stopped depends_on: - backend # Backend (FastAPI) backend: build: context: ./backend dockerfile: Dockerfile.backend container_name: devden-backend ports: - "8000:8000" environment: - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - OPENAI_API_KEY=${OPENAI_API_KEY} - DEFAULT_PROVIDER=${DEFAULT_PROVIDER:-claude} - CLAUDE_MODEL=${CLAUDE_MODEL:-claude-3-5-sonnet-20241022} - OPENAI_MODEL=${OPENAI_MODEL:-gpt-4-turbo-preview} - FRONTEND_URL=https://devden.hiddenden.cafe - ENTRA_TENANT_ID=${ENTRA_TENANT_ID} - ENTRA_CLIENT_ID=${ENTRA_CLIENT_ID} - ENTRA_CLIENT_SECRET=${ENTRA_CLIENT_SECRET} - ENTRA_REDIRECT_URI=https://devden.hiddenden.cafe/auth/callback - JWT_SECRET=${JWT_SECRET:-change-this-in-production} - JWT_EXPIRY_HOURS=${JWT_EXPIRY_HOURS:-24} env_file: - .env restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3