Spaces:
Running
Running
Download render.yaml from Benaah/MicProtocol: direct link, hf CLI and curl.
- Browser
- Download file 3.73 kB
-
https://huggingface.co/spaces/Benaah/MicProtocol/resolve/main/render.yaml
- Command line
-
hf download hf://spaces/Benaah/MicProtocol/render.yaml
-
curl -L -o render.yaml https://huggingface.co/spaces/Benaah/MicProtocol/resolve/main/render.yaml
3.73 kB
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # MicProtocol β Render Blueprint (Backend Only) | |
| # Frontend (web + admin) deploys on Vercel separately. | |
| # Uses Neon Postgres (external) + Render Redis (add-on). | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| services: | |
| # βββ API (NestJS + tRPC backend) βββββββββββββββββββββββββ | |
| - type: web | |
| name: micprotocol-api | |
| env: node | |
| region: frankfurt | |
| plan: free | |
| buildCommand: corepack enable && pnpm install --frozen-lockfile && pnpm --filter @micprotocol/api prisma:generate && pnpm --filter @micprotocol/api build | |
| startCommand: node --max-old-space-size=512 apps/api/dist/main | |
| healthCheckPath: /health | |
| envVars: | |
| - key: NODE_ENV | |
| value: production | |
| - key: API_PORT | |
| value: "4000" | |
| - key: DATABASE_URL | |
| sync: false | |
| - key: REDIS_URL | |
| fromService: | |
| type: redis | |
| name: micprotocol-redis | |
| property: connectionString | |
| - key: WEB_URL | |
| sync: false | |
| - key: COOKIE_SECRET | |
| generateValue: true | |
| - key: CLERK_SECRET_KEY | |
| sync: false | |
| - key: NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY | |
| sync: false | |
| - key: RESEND_API_KEY | |
| sync: false | |
| - key: STRIPE_SECRET_KEY | |
| sync: false | |
| - key: STRIPE_WEBHOOK_SECRET | |
| sync: false | |
| - key: SENTRY_DSN | |
| sync: false | |
| - key: LIVEKIT_API_KEY | |
| sync: false | |
| - key: LIVEKIT_API_SECRET | |
| sync: false | |
| - key: LIVEKIT_HOST | |
| sync: false | |
| - key: LISTMONK_URL | |
| sync: false | |
| - key: LISTMONK_API_TOKEN | |
| sync: false | |
| - key: MIC_REALTIME_URL | |
| sync: false | |
| - key: MIC_REALTIME_INTERNAL_TOKEN | |
| sync: false | |
| - key: MIC_REALTIME_SHARED_SECRET | |
| sync: false | |
| # βββ Redis (BullMQ queues + session cache) βββββββββββββββ | |
| - type: redis | |
| name: micprotocol-redis | |
| plan: free | |
| maxmemoryPolicy: allkeys-lru | |
| # βββ Real-time Collaboration Engine (Erlang/OTP) ββββββββββ | |
| # Owns chat fanout, presence, live domain events. Clients connect over | |
| # wss:// (Render provides the public URL); the API publishes events via | |
| # /internal/dispatch over the internal network. | |
| # NOTE: MIC_REALTIME_INTERNAL_TOKEN + MIC_REALTIME_SHARED_SECRET are | |
| # required β the service fails closed at startup without them. | |
| - type: web | |
| name: micprotocol-realtime | |
| env: docker | |
| region: frankfurt | |
| # WARNING: Render free instances sleep after ~15 min of inactivity and | |
| # cap at 750 hours/month β a sleeping WS engine drops ALL live sockets. | |
| # Use plan: starter (or higher) for real production realtime. | |
| plan: free | |
| rootDir: services/mic-realtime | |
| dockerfilePath: Dockerfile | |
| healthCheckPath: /healthz | |
| envVars: | |
| - key: MIC_REALTIME_PORT | |
| value: "4001" | |
| - key: MIC_REALTIME_HOST | |
| value: "0.0.0.0" | |
| - key: MICPROTOCOL_API_URL | |
| sync: false | |
| - key: MIC_REALTIME_INTERNAL_TOKEN | |
| sync: false | |
| - key: MIC_REALTIME_SHARED_SECRET | |
| sync: false | |
| # Browser-facing WebSocket URL β e.g. wss://micprotocol-realtime.onrender.com | |
| # (or a custom domain). MUST be wss:// in production, otherwise clients | |
| # silently fall back to ws://localhost:4001 and never connect. | |
| - key: MIC_REALTIME_PUBLIC_URL | |
| sync: false | |