Infrastructure¶
基础设施是整个 Agent 生态的底座。从 2026-03-10 开始,Dad 在 Azure 全球多节点上搭建了完整的开发/生产环境,形成了"应用监听本地端口 + Caddy 统一入口 + PM2/Docker 托管 + 自动化监控"的运维体系。
核心架构¶
部署模式¶
所有 Web 服务采用统一模式:
- 应用层:监听 localhost 高位端口(18800-28880 段)
- 反向代理:Caddy 自动 TLS,统一域名入口(*.dora.restry.cn)
- 进程管理:PM2 守护 Node 服务,Docker/docker-compose 管理有状态服务
- DNS:泛解析 *.dora.restry.cn → 主服务器,*.mvp.restry.cn → MVP 部署平台
服务器拓扑¶
| 节点 | 位置 | 角色 | 关键服务 |
|---|---|---|---|
| Owl | Azure | 主生产节点 | OpenClaw Gateway、Clawline、Portal、Caddy |
| Wolf-SG | Azure 新加坡 | 测试/备用 | OpenClaw Gateway |
| Eagle-SG | Azure 新加坡 | 测试/备用 | OpenClaw Gateway(后扩容) |
| claw-bot | 本地内网 (192.168.31.141) | 内网平台 | FRP 暴露、Caddy、Outline、Gitea |
| Azure China VM | Azure 中国 | Mattermost China | Mattermost (Docker)、MVP Deployer |
端口规划¶
18800-18890:测试服务区间18821:Vite dev server18850:Mock server28880:Agentic BI18822:SSH 统一端口(远程 VM)
关键决策时间线¶
03-10:部署模式确立¶
- Dad 决策:所有服务统一用 Caddy 域名代理,不再裸端口暴露
- 首个案例:Agentic BI 从端口 18816 迁移到
ademo.dora.restry.cn - Agent Portal 也同日通过 Caddy 上线
- Next.js 16 在资源受限 VM 上构建卡死 → Dad 决策:不再用 Next.js,改纯前端 + 轻量 Node 后端
03-12 ~ 03-13:测试机集群建设¶
- 新加坡 VM(wolf-sg、eagle-sg)统一部署 OpenClaw Gateway
- 踩坑:agentDir 继承导致工作区混乱 → Dad 决策:"各自独立工作区"
- 踩坑:多 Agent 路由缺
bindings配置 → 对比本地配置修正
03-16 ~ 03-17:容器化转型¶
- ClawCraft 测试/生产环境走 Docker 化
- GitHub Actions CI/CD 建立
- 多 Agent 拆分、健康检查机制上线
03-18 ~ 03-19:多容器生产环境¶
- 五容器并行:Gateway、Portal、Relay、Channel、前端
- Logto 认证服务集成
- 重大故障:Supabase / Portal / Gateway 基础设施连环故障排查
- CI / Docker / Relay / 生产部署链路打通
03-20:安全加固¶
- Azure NSG 全面审计与加固
- Dev/Prod 环境信息修正与文档化
- 服务器清单与技能访问控制建立
03-21 ~ 03-23:多节点联调¶
- 新加坡统一子网迁移与 claw-runtime 重建
- Owl/Wolf/Eagle 三节点联调
- Eagle 资源故障:Run Command 救援 + 扩容
- Clawline 实时消息链路 E2E 打通
03-28 ~ 03-31:成本与内网平台¶
- 全局云机器批量开/关机与成本控制标签
- 本地内网 claw-bot 平台搭建:FRP 暴露 + Caddy + Outline + Gitea
- Mattermost 运维沉淀为 OpenClaw 技能
04-01 ~ 04-02:MVP 部署与故障¶
- 轻量 MVP 部署平台(MVP Deployer v2)上线
- claw-bot 宕机:OpenClaw 卡顿根因定位(Token/账号侧问题,非本地网络)
- Mattermost China VM 死机:内存耗尽 → 强制重启 + 加 Swap + 容器内存限制
- 数据库密码修改事故处理
04-03 ~ 04-04:新服务部署¶
- Azure OpenAI Realtime Voice Demo 部署(WebSocket proxy 架构)
- GrowLog AI 服务修复
- MVP Deployer 部署薯条平台,修复权限/依赖/路由
- 技能目录去重清理
运维经验沉淀¶
环境变量¶
.bashrc写入不够:非交互进程、子 Agent、后台任务不继承- 应在 systemd / supervisor / 启动脚本中显式 export
故障诊断模式¶
- "端口通、握手不通、SSH banner 超时" → VM 资源耗尽信号
- Azure 排障不要只盯 NSG;控制面命令也超时 → 宿主机问题
- 对关键容器配
mem_limit,防整机雪崩
部署策略¶
- 自动化优先、人工兜底:MVP Deployer API 有 bug 时,PM2 + Caddy 手工兜底
- 云上为准:多环境时只保留云端,减少配置歧义
- 服务器为事实源:凭据/配置直接从运行环境提取,不依赖本地缓存
进程管理¶
- Codex 在复杂前端项目超时率高 → AI 生成适合脚手架,不适合完全托管
- PM2 进程需定期检查是否为空进程
- jiti 缓存需手动清理(Channel 插件热加载场景)
子页面¶
| 子页面 | 覆盖内容 |
|---|---|
| 03-10-Cron任务与自动化 | 定时任务能力、Cron 调度架构 |
| 03-13-远程服务器管理与OpenClaw部署 | 新加坡 VM 部署、多 Agent 路由 |
| 03-13-Azure-NSG安全加固 | NSG 审计、安全规则修正 |
| 03-25-健康监控与日报系统 | 健康检查、日报自动化 |
项目状态¶
- ✅ 多节点生产环境稳定运行
- ✅ Caddy + PM2/Docker 统一运维模式
- ✅ 监控与自动化基础就绪
- 🔄 Portal 内建监控能力持续迭代中
- 📋 成本控制标签体系待完善