forked from Selig/openclaw-skill
6 custom skills (assign-task, dispatch-webhook, daily-briefing, task-capture, qmd-brain, tts-voice) with technical documentation. Compatible with Claude Code, OpenClaw, Codex CLI, and OpenCode.
114 lines
10 KiB
JSON
Executable File
114 lines
10 KiB
JSON
Executable File
{
|
|
"title": "Deploy on Render",
|
|
"content": "Source: https://docs.openclaw.ai/render\n\nDeploy OpenClaw on Render using Infrastructure as Code. The included `render.yaml` Blueprint defines your entire stack declaratively, service, disk, environment variables, so you can deploy with a single click and version your infrastructure alongside your code.\n\n* A [Render account](https://render.com) (free tier available)\n* An API key from your preferred [model provider](/providers)\n\n## Deploy with a Render Blueprint\n\n<a href=\"https://render.com/deploy?repo=https://github.com/openclaw/openclaw\">\n Deploy to Render\n</a>\n\nClicking this link will:\n\n1. Create a new Render service from the `render.yaml` Blueprint at the root of this repo.\n2. Prompt you to set `SETUP_PASSWORD`\n3. Build the Docker image and deploy\n\nOnce deployed, your service URL follows the pattern `https://<service-name>.onrender.com`.\n\n## Understanding the Blueprint\n\nRender Blueprints are YAML files that define your infrastructure. The `render.yaml` in this\nrepository configures everything needed to run OpenClaw:\n\nKey Blueprint features used:\n\n| Feature | Purpose |\n| --------------------- | ---------------------------------------------------------- |\n| `runtime: docker` | Builds from the repo's Dockerfile |\n| `healthCheckPath` | Render monitors `/health` and restarts unhealthy instances |\n| `sync: false` | Prompts for value during deploy (secrets) |\n| `generateValue: true` | Auto-generates a cryptographically secure value |\n| `disk` | Persistent storage that survives redeploys |\n\n| Plan | Spin-down | Disk | Best for |\n| --------- | ----------------- | ------------- | ----------------------------- |\n| Free | After 15 min idle | Not available | Testing, demos |\n| Starter | Never | 1GB+ | Personal use, small teams |\n| Standard+ | Never | 1GB+ | Production, multiple channels |\n\nThe Blueprint defaults to `starter`. To use free tier, change `plan: free` in your fork's\n`render.yaml` (but note: no persistent disk means config resets on each deploy).\n\n### Complete the setup wizard\n\n1. Navigate to `https://<your-service>.onrender.com/setup`\n2. Enter your `SETUP_PASSWORD`\n3. Select a model provider and paste your API key\n4. Optionally configure messaging channels (Telegram, Discord, Slack)\n5. Click **Run setup**\n\n### Access the Control UI\n\nThe web dashboard is available at `https://<your-service>.onrender.com/openclaw`.\n\n## Render Dashboard features\n\nView real-time logs in **Dashboard → your service → Logs**. Filter by:\n\n* Build logs (Docker image creation)\n* Deploy logs (service startup)\n* Runtime logs (application output)\n\nFor debugging, open a shell session via **Dashboard → your service → Shell**. The persistent disk is mounted at `/data`.\n\n### Environment variables\n\nModify variables in **Dashboard → your service → Environment**. Changes trigger an automatic redeploy.\n\nIf you use the original OpenClaw repository, Render will not auto-deploy your OpenClaw. To update it, run a manual Blueprint sync from the dashboard.\n\n1. Go to **Dashboard → your service → Settings → Custom Domains**\n2. Add your domain\n3. Configure DNS as instructed (CNAME to `*.onrender.com`)\n4. Render provisions a TLS certificate automatically\n\nRender supports horizontal and vertical scaling:\n\n* **Vertical**: Change the plan to get more CPU/RAM\n* **Horizontal**: Increase instance count (Standard plan and above)\n\nFor OpenClaw, vertical scaling is usually sufficient. Horizontal scaling requires sticky sessions or external state management.\n\n## Backups and migration\n\nExport your configuration and workspace at any time:\n\nThis downloads a portable backup you can restore on any OpenClaw host.\n\n### Service won't start\n\nCheck the deploy logs in the Render Dashboard. Common issues:\n\n* Missing `SETUP_PASSWORD` — the Blueprint prompts for this, but verify it's set\n* Port mismatch — ensure `PORT=8080` matches the Dockerfile's exposed port\n\n### Slow cold starts (free tier)\n\nFree tier services spin down after 15 minutes of inactivity. The first request after spin-down takes a few seconds while the container starts. Upgrade to Starter plan for always-on.\n\n### Data loss after redeploy\n\nThis happens on free tier (no persistent disk). Upgrade to a paid plan, or\nregularly export your config via `/setup/export`.\n\n### Health check failures\n\nRender expects a 200 response from `/health` within 30 seconds. If builds succeed but deploys fail, the service may be taking too long to start. Check:\n\n* Build logs for errors\n* Whether the container runs locally with `docker build && docker run`",
|
|
"code_samples": [
|
|
{
|
|
"code": "Key Blueprint features used:\n\n| Feature | Purpose |\n| --------------------- | ---------------------------------------------------------- |\n| `runtime: docker` | Builds from the repo's Dockerfile |\n| `healthCheckPath` | Render monitors `/health` and restarts unhealthy instances |\n| `sync: false` | Prompts for value during deploy (secrets) |\n| `generateValue: true` | Auto-generates a cryptographically secure value |\n| `disk` | Persistent storage that survives redeploys |\n\n## Choosing a plan\n\n| Plan | Spin-down | Disk | Best for |\n| --------- | ----------------- | ------------- | ----------------------------- |\n| Free | After 15 min idle | Not available | Testing, demos |\n| Starter | Never | 1GB+ | Personal use, small teams |\n| Standard+ | Never | 1GB+ | Production, multiple channels |\n\nThe Blueprint defaults to `starter`. To use free tier, change `plan: free` in your fork's\n`render.yaml` (but note: no persistent disk means config resets on each deploy).\n\n## After deployment\n\n### Complete the setup wizard\n\n1. Navigate to `https://<your-service>.onrender.com/setup`\n2. Enter your `SETUP_PASSWORD`\n3. Select a model provider and paste your API key\n4. Optionally configure messaging channels (Telegram, Discord, Slack)\n5. Click **Run setup**\n\n### Access the Control UI\n\nThe web dashboard is available at `https://<your-service>.onrender.com/openclaw`.\n\n## Render Dashboard features\n\n### Logs\n\nView real-time logs in **Dashboard → your service → Logs**. Filter by:\n\n* Build logs (Docker image creation)\n* Deploy logs (service startup)\n* Runtime logs (application output)\n\n### Shell access\n\nFor debugging, open a shell session via **Dashboard → your service → Shell**. The persistent disk is mounted at `/data`.\n\n### Environment variables\n\nModify variables in **Dashboard → your service → Environment**. Changes trigger an automatic redeploy.\n\n### Auto-deploy\n\nIf you use the original OpenClaw repository, Render will not auto-deploy your OpenClaw. To update it, run a manual Blueprint sync from the dashboard.\n\n## Custom domain\n\n1. Go to **Dashboard → your service → Settings → Custom Domains**\n2. Add your domain\n3. Configure DNS as instructed (CNAME to `*.onrender.com`)\n4. Render provisions a TLS certificate automatically\n\n## Scaling\n\nRender supports horizontal and vertical scaling:\n\n* **Vertical**: Change the plan to get more CPU/RAM\n* **Horizontal**: Increase instance count (Standard plan and above)\n\nFor OpenClaw, vertical scaling is usually sufficient. Horizontal scaling requires sticky sessions or external state management.\n\n## Backups and migration\n\nExport your configuration and workspace at any time:",
|
|
"language": "unknown"
|
|
}
|
|
],
|
|
"headings": [
|
|
{
|
|
"level": "h2",
|
|
"text": "Prerequisites",
|
|
"id": "prerequisites"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "Deploy with a Render Blueprint",
|
|
"id": "deploy-with-a-render-blueprint"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "Understanding the Blueprint",
|
|
"id": "understanding-the-blueprint"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "Choosing a plan",
|
|
"id": "choosing-a-plan"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "After deployment",
|
|
"id": "after-deployment"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Complete the setup wizard",
|
|
"id": "complete-the-setup-wizard"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Access the Control UI",
|
|
"id": "access-the-control-ui"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "Render Dashboard features",
|
|
"id": "render-dashboard-features"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Logs",
|
|
"id": "logs"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Shell access",
|
|
"id": "shell-access"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Environment variables",
|
|
"id": "environment-variables"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Auto-deploy",
|
|
"id": "auto-deploy"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "Custom domain",
|
|
"id": "custom-domain"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "Scaling",
|
|
"id": "scaling"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "Backups and migration",
|
|
"id": "backups-and-migration"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "Troubleshooting",
|
|
"id": "troubleshooting"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Service won't start",
|
|
"id": "service-won't-start"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Slow cold starts (free tier)",
|
|
"id": "slow-cold-starts-(free-tier)"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Data loss after redeploy",
|
|
"id": "data-loss-after-redeploy"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Health check failures",
|
|
"id": "health-check-failures"
|
|
}
|
|
],
|
|
"url": "llms-txt#deploy-on-render",
|
|
"links": []
|
|
} |