为什么选择Fly.io
Fly.io是一个面向开发者的现代云平台,支持将应用部署到全球多个边缘节点。对于OpenClaw这样的AI Agent网关来说,Fly.io提供了几个显著优势:免费额度足以运行小规模实例、部署流程简洁高效、支持持久化存储卷、并且可以选择离你用户最近的数据中心。
本文将带你从零开始,完成OpenClaw在Fly.io上的完整部署流程。
前置准备
在开始之前,你需要准备以下内容:
- 一个Fly.io账号(访问 fly.io 注册)
- 本地安装flyctl命令行工具
- 一个已经配置好的OpenClaw项目(或者准备从头开始)
安装flyctl
在macOS或Linux上,运行以下命令安装flyctl:
curl -L https://fly.io/install.sh | sh
安装完成后,登录你的Fly.io账号:
fly auth login
创建Dockerfile
Fly.io原生支持Docker部署。首先,在你的项目目录中创建一个Dockerfile:
FROM node:22-slim
WORKDIR /app
RUN npm install -g openclaw@latest
RUN mkdir -p /root/.openclaw
EXPOSE 3000
CMD ["openclaw", "start"]
这个Dockerfile使用Node.js 22官方镜像作为基础,全局安装OpenClaw,并暴露默认的3000端口。注意我们使用的是node:22-slim而非其他运行时,因为OpenClaw要求Node.js 22+环境,且不建议使用Bun(在处理WhatsApp和Telegram连接时存在已知问题)。
初始化Fly.io应用
在项目目录中运行:
fly launch
flyctl会自动检测到Dockerfile并引导你完成初始化。在交互过程中,你需要选择:
- 应用名称:例如
my-openclaw-gateway - 部署区域:选择离你目标用户最近的区域,如
hkg(香港)或nrt(东京) - 资源配置:OpenClaw运行内存建议至少256MB,推荐512MB
初始化完成后,会在项目根目录生成一个fly.toml配置文件。
配置fly.toml
打开生成的fly.toml文件,确认以下关键配置:
app = "my-openclaw-gateway"
primary_region = "hkg"
[build]
[http_service]
internal_port = 3000
force_https = true
auto_stop_machines = false
auto_start_machines = true
min_machines_running = 1
[mounts]
source = "openclaw_data"
destination = "/root/.openclaw"
这里有几个重要的配置项需要注意。auto_stop_machines设置为false可以防止Fly.io在空闲时关闭你的实例——OpenClaw作为消息网关需要持续运行以接收来自WhatsApp、Telegram、Discord等聊天平台的消息。mounts部分将持久化存储卷挂载到OpenClaw的配置目录~/.openclaw,确保重启后配置和数据不会丢失。
创建持久化存储卷
在部署前,先创建存储卷:
fly volumes create openclaw_data --region hkg --size 1
这会在香港区域创建一个1GB的存储卷,用于存放OpenClaw的配置文件和数据。
设置环境变量
OpenClaw的敏感配置可以通过Fly.io的Secrets功能安全管理:
fly secrets set OPENCLAW_API_KEY="你的API密钥"
fly secrets set OPENCLAW_WEBHOOK_URL="https://my-openclaw-gateway.fly.dev/webhook"
执行部署
一切准备就绪后,执行部署命令:
fly deploy
flyctl会自动构建Docker镜像、推送到Fly.io的镜像仓库、并启动你的应用。整个过程通常需要2-5分钟。
部署完成后,检查应用状态:
fly status
查看运行日志确认OpenClaw正常启动:
fly logs
部署后配置
应用成功运行后,你需要完成OpenClaw的初始化配置。通过SSH连接到实例:
fly ssh console
在实例中运行OpenClaw的引导程序:
openclaw onboard --install-daemon
按照交互提示完成AI模型配置和聊天平台连接设置。完成后运行诊断命令确认一切正常:
openclaw doctor
你也可以通过以下命令访问OpenClaw的管理面板:
openclaw dashboard
管理面板默认运行在3000端口,通过https://my-openclaw-gateway.fly.dev即可访问。
自定义域名
如果你想使用自己的域名,可以通过以下命令添加:
fly certs create openclaw.yourdomain.com
然后在你的DNS服务商处添加相应的CNAME记录,指向Fly.io分配的地址。
扩容与监控
当你的用户量增长时,可以轻松扩容:
fly scale count 2
fly scale vm shared-cpu-2x
Fly.io内置的监控面板可以帮助你跟踪CPU、内存使用率和网络流量。
常见问题排查
如果部署后遇到问题,首先检查日志:
fly logs --app my-openclaw-gateway
确保存储卷正确挂载、端口配置正确、Node.js版本为22+。如果应用反复崩溃,可以尝试增加内存配额或检查OpenClaw配置文件~/.openclaw/openclaw.json是否正确。
总结
通过Fly.io部署OpenClaw是一种轻量且经济的方案,特别适合个人开发者和小团队。全球多区域部署能力加上简洁的CLI工具,让你可以在几分钟内将OpenClaw AI Agent网关部署上线,连接你喜欢的聊天平台与AI模型。