Deploy to Render
Deploy PraisonAI to Render in one command
Deploy your agents to Render with a starter render.yaml and a single deploy command.
Quick Start
- Scaffold the project
The starter drops
render.yamlandagents.yamlinto the current directory.bash praisonai deploy create --template render - Set your API key
Render marks
OPENAI_API_KEYassync: false, so set it in the dashboard.text Render dashboard → Environment → OPENAI_API_KEY - Deploy
Trigger a Render deploy.
bash praisonai deploy render
How It Works
The command shells out to the Render CLI to create a deploy.
CloudConfig support (not yet wired)
praisonai deploy render runs render deploys create <service> --confirm alone — it does not apply any CloudConfig fields yet. Set them in the Render dashboard until CLI wiring lands (PraisonAI PR #4876).
| CloudConfig field | Applied? | Workaround |
|---|---|---|
env_vars | Not applied (names logged only) | Add as environment variables in the Render dashboard |
image | Not applied | Set image.url in render.yaml |
cpu | Not applied | Choose an instance type in the Render dashboard |
memory | Not applied | Choose an instance type in the Render dashboard |
region | Not applied | Choose the region in the Render dashboard |
min_instances / max_instances | Not applied | Configure scaling in the Render dashboard |
Every set field is surfaced via logger.warning(...) and echoed in DeployResult.metadata["unapplied"]. Secret names appear; secret values never reach a log line.
Command Options
| Argument | Default | Description |
|---|---|---|
FILE (positional) | agents.yaml | Agent file to deploy. |
Starter render.yaml
The render starter deploys the prebuilt image.
| Setting | Value |
|---|---|
runtime | image |
image.url | ghcr.io/mervinpraison/praisonai:latest |
healthCheckPath | /health |
OPENAI_API_KEY | sync: false (set in dashboard) |
PRAISONAI_API_AUTH | enabled |
Doctor
Check Render readiness before deploying.
praisonai deploy doctor --provider renderBest Practices
Pin the image tag for production
The starter uses latest. Pin a released ghcr.io/mervinpraison/praisonai tag in render.yaml.
Keep OPENAI_API_KEY out of Git
The starter sets sync: false for OPENAI_API_KEY, so it must be entered in the Render dashboard rather than committed.
Destroy from the dashboard
praisonai deploy destroy is not automated for Render — delete the service in the Render dashboard.