services: backend: build: context: ./backend dockerfile: Dockerfile container_name: ai-backend ports: - "12015:12015" environment: - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} - JWT_SECRET=${JWT_SECRET} - APP_URL=${APP_URL:-http://localhost} - APP_NAME=${APP_NAME:-AI Allucanget} - CORS_ORIGINS=${CORS_ORIGINS:-http://localhost:12016} volumes: - ./data:/app/data networks: - app-network healthcheck: test: [ "CMD", "curl", "-f", "http://localhost:12015/health" ] interval: 30s timeout: 10s retries: 3 start_period: 5s frontend: build: context: ./frontend dockerfile: Dockerfile container_name: ai-frontend ports: - "12016:12016" environment: - FLASK_SECRET_KEY=${FLASK_SECRET_KEY} - BACKEND_URL=${BACKEND_URL:-http://backend:12015} depends_on: backend: condition: service_healthy networks: - app-network nginx: image: nginx:alpine container_name: ai-nginx ports: - "80:80" - "443:443" volumes: - ./nginx/docker-compose.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - backend - frontend networks: - app-network networks: app-network: driver: bridge