version: '3.8' services: frontend: build: ./frontend ports: - "3000:3000" environment: - VITE_API_URL=${VITE_API_URL:-http://localhost:8000} - VITE_WS_URL=${VITE_WS_URL:-ws://localhost:8000} depends_on: - backend volumes: - ./frontend:/app - /app/node_modules backend: build: ./backend ports: - "8000:8000" environment: - DATABASE_URL=${DATABASE_URL:-postgresql://trivia:trivia@db:5432/trivia} - REDIS_URL=${REDIS_URL:-redis://redis:6379} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - JWT_SECRET=${JWT_SECRET:-dev-secret-key} depends_on: - db - redis volumes: - ./backend:/app db: image: postgres:15 volumes: - postgres_data:/var/lib/postgresql/data environment: - POSTGRES_DB=trivia - POSTGRES_USER=trivia - POSTGRES_PASSWORD=trivia ports: - "5432:5432" redis: image: redis:7-alpine volumes: - redis_data:/data ports: - "6379:6379" cloudflared: image: cloudflare/cloudflared:latest command: tunnel run environment: - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN} depends_on: - frontend - backend profiles: - production volumes: postgres_data: redis_data: