services: # 1. FastAPI Backend Web Service - type: web name: mercury-backend env: python buildCommand: pip install -r backend/requirements.txt startCommand: uvicorn backend.app.main:app --host 0.0.0.0 --port $PORT envVars: - key: DATABASE_URL fromDatabase: name: mercury-db property: connectionString - key: USE_KAFKA value: "False" # Use the in-memory fallback since Kafka is not on Render Free Tier - key: SIMULATOR_SPEED value: "1.0" - key: PRICING_INTERVAL_SECS value: "15" - key: FORECAST_INTERVAL_SECS value: "45" # 2. React Frontend Static Site - type: static name: mercury-frontend buildCommand: cd frontend && npm install --legacy-peer-deps && npm run build publishPath: frontend/dist headers: - path: /* name: Cache-Control value: max-age=31536000 routes: - type: rewrite src: /api/* dest: https://mercury-backend.onrender.com/api/* # Proxy API requests to backend - type: rewrite src: /* dest: /index.html # Fallback route for React SPA routing envVars: - key: VITE_API_URL value: https://mercury-backend.onrender.com databases: # 3. PostgreSQL Database - name: mercury-db databaseName: mercury user: postgres plan: free