Spaces:
Running
Running
| # render.yaml — Render deployment config | |
| # Docs: https://render.com/docs/blueprint-spec | |
| # | |
| # Free tier limits (as of 2026): | |
| # - 512 MB RAM | |
| # - Shared CPU | |
| # - Spins down after 15 min inactivity (cold start ~30s) | |
| # - 100 GB outbound bandwidth / month | |
| # | |
| # Our backend fits because: | |
| # - all-MiniLM-L6-v2 is only ~90MB on disk, ~200MB RAM when loaded | |
| # - Qdrant is hosted externally (Qdrant Cloud) — no local disk needed | |
| # - No GPU required for inference | |
| services: | |
| - type: web | |
| name: cartographer | |
| runtime: python | |
| region: oregon | |
| plan: free | |
| buildCommand: pip install -r requirements.txt | |
| startCommand: uvicorn backend.main:app --host 0.0.0.0 --port $PORT | |
| healthCheckPath: /health | |
| envVars: | |
| - key: QDRANT_URL | |
| sync: false # set manually in Render dashboard | |
| - key: QDRANT_API_KEY | |
| sync: false | |
| - key: QDRANT_COLLECTION | |
| value: github_repos_voyage | |
| - key: GROQ_API_KEY | |
| sync: false | |
| - key: ANTHROPIC_API_KEY | |
| sync: false | |
| - key: VOYAGE_API_KEY | |
| sync: false | |
| - key: GITHUB_TOKEN | |
| sync: false | |
| - key: EMBEDDING_MODEL | |
| value: voyage-code-3 | |
| - key: EMBEDDING_DIM | |
| value: "1024" | |
| - key: TOP_K | |
| value: "6" | |
| # HuggingFace cache dir — Render gives 1GB ephemeral disk | |
| - key: HF_HOME | |
| value: /opt/render/project/src/.cache/huggingface | |
| - key: SENTENCE_TRANSFORMERS_HOME | |
| value: /opt/render/project/src/.cache/sentence_transformers | |
| # Python output buffering — always set this for deployed servers | |
| # Without it, print() calls buffer and logs appear delayed or not at all | |
| - key: PYTHONUNBUFFERED | |
| value: "1" | |