Skip to content

云端部署

本页汇总主流云平台的 OpenClaw Gateway 部署方案。所有方案均基于 Docker 镜像,数据持久化到挂载卷。


平台对比

平台难度费用估算特点
Railway⭐ 最简单$5+/月一键模板,Web 向导,无需终端
Render⭐⭐ 简单$7+/月(Starter)Blueprint 声明式配置,免费套餐可试用
Fly.io⭐⭐⭐ 中等$10-15/月全球多区域,支持私有部署

Railway.app

最简单的「零终端」部署方式:Railway 托管 Gateway,通过 /setup 网页向导完成所有配置。

快速清单

  1. 点击 Deploy on Railway 一键模板部署
  2. 添加挂载到 /dataVolume
  3. 设置必需变量(至少需要 SETUP_PASSWORD
  4. 在端口 8080 上启用 HTTP Proxy
  5. 打开 https://<your-railway-domain>/setup 完成向导

必需的 Railway 变量

变量说明
SETUP_PASSWORD必需,Web 向导登录密码
PORT=8080必需,与 HTTP Proxy 端口一致
OPENCLAW_STATE_DIR=/data/.openclaw推荐,持久化状态
OPENCLAW_WORKSPACE_DIR=/data/workspace推荐,持久化工作区
OPENCLAW_GATEWAY_TOKEN推荐,视为管理员密钥

设置流程

  1. 访问 https://<your-railway-domain>/setup,输入 SETUP_PASSWORD
  2. 选择模型/认证提供商,粘贴 API Key
  3. 可选:配置 Telegram/Discord/Slack Token
  4. 点击 Run setup

然后访问:

  • https://<your-railway-domain>/setup — 设置向导
  • https://<your-railway-domain>/openclaw — 控制面板 UI

获取 Bot Token

Telegram:在 Telegram 中给 @BotFather 发消息 → /newbot → 复制 Token

Discord:前往 Discord 开发者平台 → New Application → Bot → Add Bot → 启用 MESSAGE CONTENT INTENT → 复制 Bot Token

备份与迁移

https://<your-railway-domain>/setup/export

Render

基于 render.yaml Blueprint 的声明式部署,一键将整个技术栈(服务、磁盘、环境变量)版本化管理。

快速部署

点击 Render 部署链接,或使用以下 Blueprint 内容:

yaml
services:
  - type: web
    name: openclaw
    runtime: docker
    plan: starter
    healthCheckPath: /health
    envVars:
      - key: PORT
        value: "8080"
      - key: SETUP_PASSWORD
        sync: false          # 部署时提示输入
      - key: OPENCLAW_STATE_DIR
        value: /data/.openclaw
      - key: OPENCLAW_WORKSPACE_DIR
        value: /data/workspace
      - key: OPENCLAW_GATEWAY_TOKEN
        generateValue: true  # 自动生成安全 Token
    disk:
      name: openclaw-data
      mountPath: /data
      sizeGB: 1

套餐选择

套餐休眠机制磁盘推荐场景
Free闲置 15 分钟后休眠测试/演示(配置不持久化)
Starter永不休眠1GB+个人使用、小团队
Standard+永不休眠1GB+生产环境、多渠道

部署完成后

  1. 访问 https://<your-service>.onrender.com/setup
  2. 输入 SETUP_PASSWORD,完成设置向导
  3. 控制面板:https://<your-service>.onrender.com/openclaw

故障排除

问题原因解决方法
服务无法启动缺少 SETUP_PASSWORD 或端口不匹配检查部署日志,确认 PORT=8080
免费套餐冷启动慢15 分钟无活动后休眠升级 Starter 套餐
重新部署后数据丢失免费套餐无持久化磁盘升级到付费套餐,或定期 /setup/export 备份
健康检查失败启动超过 30 秒检查构建日志

Fly.io

全球多区域部署,支持公网和私有两种模式,适合需要低延迟或更强安全性的场景。

快速开始

bash
# 克隆仓库
git clone https://github.com/openclaw/openclaw.git
cd openclaw

# 创建 Fly 应用和持久化卷
fly apps create my-openclaw
fly volumes create openclaw_data --size 1 --region iad
# 常用区域:lhr(伦敦)、iad(弗吉尼亚)、sjc(圣何塞)

fly.toml 配置

toml
app = "my-openclaw"
primary_region = "iad"

[build]
  dockerfile = "Dockerfile"

[env]
  NODE_ENV = "production"
  OPENCLAW_STATE_DIR = "/data"
  NODE_OPTIONS = "--max-old-space-size=1536"

[processes]
  app = "node dist/index.js gateway --allow-unconfigured --port 3000 --bind lan"

[http_service]
  internal_port = 3000
  force_https = true
  auto_stop_machines = false
  min_machines_running = 1
  processes = ["app"]

[[vm]]
  size = "shared-cpu-2x"
  memory = "2048mb"   # 推荐 2GB,512MB 太小

[mounts]
  source = "openclaw_data"
  destination = "/data"

关键配置说明:

设置原因
--bind lan绑定 0.0.0.0,让 Fly 代理可以访问 Gateway
--allow-unconfigured无需配置文件即可启动
memory = "2048mb"推荐最低 2GB,512MB 会 OOM
OPENCLAW_STATE_DIR=/data状态持久化到卷

设置密钥

bash
# 必需:Gateway Token(非 loopback 绑定时必须)
fly secrets set OPENCLAW_GATEWAY_TOKEN=$(openssl rand -hex 32)

# 模型 API Key
fly secrets set ANTHROPIC_API_KEY=sk-ant-...
fly secrets set OPENAI_API_KEY=sk-...

# 渠道 Token
fly secrets set DISCORD_BOT_TOKEN=MTQ...

安全提示:优先使用环境变量存储 API Key,避免出现在 openclaw.json 中。

部署

bash
fly deploy

# 验证
fly status
fly logs

部署成功后应看到:

[gateway] listening on ws://0.0.0.0:3000 (PID xxx)

访问 Gateway

  • Control UI:fly open(或直接访问 https://my-openclaw.fly.dev/
  • 粘贴 OPENCLAW_GATEWAY_TOKEN 进行认证

故障排除

问题原因解决方法
"App is not listening on expected address"Gateway 绑定到 127.0.0.1在 fly.toml 进程命令中添加 --bind lan
健康检查失败端口不匹配确保 internal_port--port 一致
OOM / 容器重启内存不足改为 memory = "2048mb"
Gateway 锁问题("already running")容器重启但 PID 锁文件残留fly ssh console --command "rm -f /data/gateway.*.lock" 后重启
状态未持久化状态目录配置错误确认 OPENCLAW_STATE_DIR=/data 并重新部署

私有部署(加固)

默认 Fly 分配公网 IP,若需隐藏部署(对互联网扫描器不可见):

bash
# 释放公网 IP
fly ips release <public-ipv4> -a my-openclaw
fly ips release <public-ipv6> -a my-openclaw

# 分配私有 IPv6
fly ips allocate-v6 --private -a my-openclaw

# 通过本地代理访问
fly proxy 3000:3000 -a my-openclaw

备份与迁移

所有平台都支持通过 /setup/export 导出备份:

https://<your-domain>/setup/export

导出文件包含配置和工作区,可在任意 OpenClaw 主机上恢复。