version: '3.8' services: web: build: . ports: - "8000:8000" environment: - DEBUG=false - ALLOWED_HOSTS=ai.quantumtaskai.com,*.quantumtaskai.com - CSRF_TRUSTED_ORIGINS=https://ai.quantumtaskai.com - DATABASE_URL=${NEON_DATABASE_URL} - SECRET_KEY=${SECRET_KEY} - EMAIL_HOST_USER=${EMAIL_HOST_USER} - EMAIL_HOST_PASSWORD=${EMAIL_HOST_PASSWORD} - STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY} - OPENAI_API_KEY=${OPENAI_API_KEY} - GROQ_API_KEY=${GROQ_API_KEY} - SERPAPI_API_KEY=${SERPAPI_API_KEY} - OPENWEATHER_API_KEY=${OPENWEATHER_API_KEY} volumes: - static_volume:/app/staticfiles - media_volume:/app/media restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health/"] interval: 30s timeout: 10s retries: 3 start_period: 40s nginx: image: nginx:alpine ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - static_volume:/var/www/static:ro - media_volume:/var/www/media:ro - /etc/letsencrypt:/etc/letsencrypt:ro depends_on: - web restart: unless-stopped volumes: static_volume: media_volume: