| # Render Blueprint — youtube_hate_detector | |
| # Deploy: New + Blueprint → connect repo → Apply. | |
| # Secrets (sync: false) must be filled in the Render dashboard after the first apply. | |
| # Free tier: 512 MB RAM — the Meta-Feature Stacking (Production) model does NOT fit. | |
| # Keep MODEL_NAME at "LR + TF-IDF (Baseline)" for free deploys. | |
| services: | |
| - type: web | |
| name: signalmod-api | |
| env: docker | |
| plan: free | |
| region: frankfurt | |
| dockerfilePath: ./Dockerfile | |
| healthCheckPath: /health | |
| envVars: | |
| - key: MODEL_NAME | |
| value: "LR + TF-IDF (Baseline)" | |
| - key: ENV | |
| value: production | |
| - key: YOUTUBE_API_KEY | |
| sync: false | |
| - key: SUPABASE_URL | |
| sync: false | |
| - key: SUPABASE_KEY | |
| sync: false | |
| - type: static | |
| name: signalmod-ui | |
| env: static | |
| buildCommand: cd frontend && npm install && npm run build | |
| staticPublishPath: ./frontend/dist | |
| envVars: | |
| - key: VITE_API_BASE_URL | |
| value: https://signalmod-api.onrender.com | |
| routes: | |
| - type: rewrite | |
| source: /* | |
| destination: /index.html | |