Appearance
云端部署
本页汇总主流云平台的 OpenClaw Gateway 部署方案。所有方案均基于 Docker 镜像,数据持久化到挂载卷。
平台对比
| 平台 | 难度 | 费用估算 | 特点 |
|---|---|---|---|
| Railway | ⭐ 最简单 | $5+/月 | 一键模板,Web 向导,无需终端 |
| Render | ⭐⭐ 简单 | $7+/月(Starter) | Blueprint 声明式配置,免费套餐可试用 |
| Fly.io | ⭐⭐⭐ 中等 | $10-15/月 | 全球多区域,支持私有部署 |
Railway.app
最简单的「零终端」部署方式:Railway 托管 Gateway,通过 /setup 网页向导完成所有配置。
快速清单
- 点击 Deploy on Railway 一键模板部署
- 添加挂载到
/data的 Volume - 设置必需变量(至少需要
SETUP_PASSWORD) - 在端口
8080上启用 HTTP Proxy - 打开
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 | 推荐,视为管理员密钥 |
设置流程
- 访问
https://<your-railway-domain>/setup,输入SETUP_PASSWORD - 选择模型/认证提供商,粘贴 API Key
- 可选:配置 Telegram/Discord/Slack Token
- 点击 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/exportRender
基于 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+ | 生产环境、多渠道 |
部署完成后
- 访问
https://<your-service>.onrender.com/setup - 输入
SETUP_PASSWORD,完成设置向导 - 控制面板:
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 主机上恢复。