通过 Infrastructure as Code 的方式在 Render 上部署 OpenClaw。仓库自带的 render.yaml Blueprint 以声明式定义了整个技术栈——服务、磁盘、环境变量——一键部署,基础设施配置和代码版本管理合二为一。

前置条件

用 Render Blueprint 部署

Deploy to Render

点击链接后会发生这些事:

  1. Render 根据仓库根目录的 render.yaml Blueprint 创建新服务。
  2. 提示你设置 SETUP_PASSWORD
  3. 构建 Docker 镜像并部署。

部署完成后,服务地址的格式是 https://<service-name>.onrender.com

理解 Blueprint

Render Blueprint 是用来定义基础设施的 YAML 文件。这个仓库中的 render.yaml 已经配好了运行 OpenClaw 所需的一切:

services:
  - type: web
    name: openclaw
    runtime: docker
    plan: starter
    healthCheckPath: /health
    envVars:
      - key: PORT
        value: "8080"
      - key: SETUP_PASSWORD
        sync: false # prompts during deploy
      - key: OPENCLAW_STATE_DIR
        value: /data/.openclaw
      - key: OPENCLAW_WORKSPACE_DIR
        value: /data/workspace
      - key: OPENCLAW_GATEWAY_TOKEN
        generateValue: true # auto-generates a secure token
    disk:
      name: openclaw-data
      mountPath: /data
      sizeGB: 1

Blueprint 用到的关键特性:

特性用途
runtime: docker从仓库的 Dockerfile 构建镜像
healthCheckPathRender 监控 /health,不健康时自动重启实例
sync: false部署时弹窗让你输入(用于密钥等敏感值)
generateValue: true自动生成加密安全的随机值
disk持久存储,重新部署后数据不会丢

选择套餐

套餐自动休眠磁盘适合场景
Free闲置 15 分钟后休眠不支持测试、演示
Starter不休眠1GB+个人使用、小团队
Standard+不休眠1GB+生产环境、多渠道接入

Blueprint 默认用 starter 套餐。想用免费层的话,在你 fork 的 render.yaml 里把 plan: free 改一下就行(不过要注意:免费层没有持久磁盘,每次部署配置都会重置)。

部署之后

完成配置向导

  1. 打开 https://<your-service>.onrender.com/setup
  2. 输入你的 SETUP_PASSWORD
  3. 选择模型提供商,粘贴 API key
  4. 按需配置消息渠道(Telegram、Discord、Slack)
  5. 点击 Run setup

访问控制面板

网页管理面板地址:https://<your-service>.onrender.com/openclaw

Render 控制台功能

日志

Dashboard → 你的服务 → Logs 中查看实时日志,可以按类型筛选:

  • Build 日志(Docker 镜像构建过程)
  • Deploy 日志(服务启动过程)
  • Runtime 日志(应用运行输出)

Shell 访问

调试时可以在 Dashboard → 你的服务 → Shell 中打开终端。持久磁盘挂载在 /data

环境变量

Dashboard → 你的服务 → Environment 中修改变量。改完会自动触发重新部署。

自动部署

如果你直接用的是 OpenClaw 官方仓库,Render 不会自动部署更新。要更新的话,需要在控制台手动执行 Blueprint 同步。

自定义域名

  1. 进入 Dashboard → 你的服务 → Settings → Custom Domains
  2. 添加你的域名
  3. 按指引配置 DNS(CNAME 指向 *.onrender.com
  4. Render 会自动签发 TLS 证书

扩容

Render 支持水平扩容和垂直扩容:

  • 垂直扩容:换更高级的套餐,获得更多 CPU/内存
  • 水平扩容:增加实例数量(Standard 及以上套餐)

对 OpenClaw 来说,垂直扩容通常就够了。水平扩容需要配置会话保持(sticky sessions)或外部状态管理。

备份与迁移

随时可以导出配置和工作区:

https://<your-service>.onrender.com/setup/export

下载的是一个便携备份包,可以在任意 OpenClaw 主机上恢复。

常见问题排查

服务启动失败

去 Render 控制台看部署日志。常见原因:

  • SETUP_PASSWORD 没设置——Blueprint 部署时会提示,但最好再确认一下
  • 端口不匹配——确保 PORT=8080 和 Dockerfile 暴露的端口一致

免费层冷启动慢

免费层服务闲置 15 分钟就会休眠。休眠后第一次请求需要等几秒钟让容器重新启动。升级到 Starter 套餐就能常驻运行。

重新部署后数据丢失

这是免费层的问题(没有持久磁盘)。升级到付费套餐,或者养成习惯定期通过 /setup/export 导出配置。

健康检查失败

Render 要求 /health 在 30 秒内返回 200 响应。如果构建成功但部署失败,可能是服务启动太慢。排查方向:

  • 看 Build 日志有没有报错
  • 试试在本地用 docker build && docker run 跑一下容器