核心用法
本技能指导用户在 Fly.io 平台部署 Moltbot(Clawdbot)——一款 AI 智能体网关服务。部署流程分为五个阶段:克隆仓库并生成网关 Token、配置 Fly.io 应用(fly.toml)与持久化卷、设置环境密钥、执行首次部署、创建配置文件并完成设备配对。
关键配置包括:CLAWDBOT_STATE_DIR=/data 确保状态持久化;--bind lan 允许 Fly 代理访问网关;http_service 使用新版 Fly 格式;2GB 内存避免 OOM。部署后需通过 SSH 创建 /data/moltbot.json 配置文件,其中 gateway.auth.token 必须与 CLAWDBOT_GATEWAY_TOKEN 环境变量完全一致。
访问时需使用带 Token 的 URL (?token=xxx),浏览器会显示 "pairing required",此时需通过 SSH 执行 Node.js 脚本将待处理设备从 pending.json 移动到 paired.json 完成授权。
显著优点
- 云端托管:Fly.io 全球节点提供高可用基础设施,无需维护物理服务器
- 持久化存储:1GB 卷保存配置、设备配对状态和对话历史,更新或重启不丢失
- Token 认证:32 字节十六进制令牌提供基础访问控制,URL 参数传递简化客户端配置
- 内存优化:NODE_OPTIONS 限制堆内存,shared-cpu-2x + 2GB 配置平衡成本与性能
- 快速回滚:
fly apps destroy+ 重建可在数分钟内从干净状态恢复
潜在缺点与局限性
- 手动配对流程:设备授权需 SSH 登录后执行 Node.js 脚本,无法通过 Web UI 自动完成,每次新浏览器/设备都需重复
- 配置易错:Token 必须同时存在于环境变量和 JSON 配置文件, mismatch 会导致 1008 认证失败;JSON 语法错误直接阻止网关启动
- DNS 延迟:首次部署后 2-5 分钟 DNS propagation,用户易误判为部署失败
- 调试困难:日志分散在 Fly 平台,网关初始化需 30-60 秒,"not listening" 错误信息模糊
- 安全边界:Token 暴露在 URL 参数中可能被浏览器历史、Referer 日志记录;缺乏内置 HTTPS 强制之外的加密传输选项
适合人群
- 已拥有 Fly.io 账户、熟悉 CLI 和 Docker 部署流程的开发者
- 需要 7×24 在线 AI 网关但不愿自建服务器的个人或小型团队
- 愿意通过 SSH/命令行完成设备授权的进阶用户(非纯 GUI 用户)
常规风险
| 风险类型 | 描述 | 缓解措施 |
|---------|------|---------|
| Token 泄露 | URL 参数中的 Token 被浏览器插件、代理服务器日志捕获 | 使用专用浏览器配置,部署后定期轮换 Token,避免在公共电脑访问 |
| 配置漂移 | SSH 手动编辑 JSON 引入语法错误或 Token 不一致 | 使用 heredoc 脚本原子写入,部署前本地验证 JSON |
| 状态丢失 | 未正确挂载卷或 CLAWDBOT_STATE_DIR 设置错误 | 部署后验证 `fly volumes list` 显示已挂载,SSH 检查 `/data` 目录内容 |
| 供应链风险 | 从 GitHub 拉取 clawdbot/clawdbot 仓库,Docker 镜像构建过程不透明 | 锁定特定 commit hash,启用 Fly 的远程构建缓存审计 |
| 成本失控 | auto_start_machines + min_machines_running=1 保持单实例运行,但流量突增可能产生意外费用 | 设置 Fly 账单告警,监控 `fly status` 实例数量 |