This guide defines the deterministic Render Blueprint path using GHCR runtime images.
render.yamlfrom this repository- GHCR images:
ghcr.io/<owner>/kin-api:<tag>ghcr.io/<owner>/kin-web:<tag>ghcr.io/<owner>/kin-inference:<tag>
- Required Render env vars/secrets:
- API:
JWT_SECRET,OLLAMA_HOST,OLLAMA_PORT=11434 - Web:
NEXT_PUBLIC_API_URL(must point to Render API URL)
- API:
- Optional bot env vars:
TELEGRAM_BOT_TOKENOWNER_TELEGRAM_ID
Never commit literal secret values. Use Render environment secret controls.
- In Render, choose New + → Blueprint.
- Select repository and confirm
render.yamlimport. - Confirm all three services resolve as image-based runtime services.
- Set required secrets/env vars in each service settings pane.
- Deploy blueprint.
- API URL:
https://kin-api.onrender.com(or service-specific equivalent) - Web URL:
https://kin-web.onrender.com(or service-specific equivalent) - Private service (inference) is internal.
curl -i https://<render-api-url>/healthPass condition: /health returns HTTP 200.
Add proof entry to docs/deploy/cloud-proof-matrix.md with timestamp and evidence link.
- Deploy error:
- Confirm Render service image URL matches
ghcr.io/<owner>/kin-<service>:<tag>. - If latest is stale, redeploy using an immutable
sha-<7hex>tag.
- Confirm Render service image URL matches
- Health timeout:
- Poll
/healthevery 20-30s. - Treat timeout as failed proof until first
200.
- Poll
- Malformed URL/domain:
- If URL is missing or malformed, copy canonical service URL from Render dashboard and mark proof row failed until corrected.
Human approval is required for these external actions in Render:
- Confirming Blueprint import/deploy
- Setting or rotating secrets
- Triggering production redeploys or rollbacks
- Assigning custom domains and DNS