CloudCLI 公网 Web 工作台
更新:2026-09-02
已部署链路
手机或电脑浏览器
-> https://ai.yohan.fun
-> MM BaoTa Nginx
-> 100.64.0.2:3001(101 CloudCLI UI)
-> 101 本机 Linux Codex 与其他已配置 Provider
MM、101 与其他节点位于同一 Tailnet,因此本入口不经过 RR。ai.yohan.fun 的 DNS 指向 MM 公网地址,MM 站点直接回源 100.64.0.2:3001。101 上的 CloudCLI 由 cloudcli.service 管理,监听 0.0.0.0:3001;公网访问只能通过 MM 的 TLS 站点,不能直接使用 Tailnet 地址或内部端口。
协议与安全边界
- CloudCLI 版本为
1.37.2,GET /health返回正常状态。 - CloudCLI 的
/wsWebSocket 和/api/agentSSE 流式接口需要保留 HTTP/1.1、Upgrade、长连接和 600 秒超时;MM 站点已配置这些参数。 - 未登录的
/api/providers、/api/user和 WebSocket 握手均由 CloudCLI 返回未授权;MM 不代替 CloudCLI 认证。 - Console 只增加跳转入口,目标为
https://ai.yohan.fun/,不嵌入或复制 CloudCLI 的会话、Provider、文件、项目或数据库状态。 - 手机无需安装节点,使用浏览器访问即可;语音输入由手机浏览器/系统键盘转换为文字后提交给 CloudCLI。
运维与验收
每次变更按以下顺序验收:
- 在 MM 上确认
http://100.64.0.2:3001/与/health可达。 - 在公网确认
https://ai.yohan.fun/、证书 SAN、静态资源和/health。 - 确认未登录 API 与 WebSocket 被 CloudCLI 拒绝,再使用浏览器登录后测试 Codex、其他 Provider、流式回复和长请求。
- 确认 101 的
cloudcli.service、/root/project工作区和/root/.codex系统配置保持独立;不得把 Provider 密钥写入 AgentMeshOS 仓库或 Console。
2026-09-02 现场证据:MM 主机 mm(Tailnet 100.64.0.6)访问 101 返回 HTTP 200;公网证书主题和 SAN 为 ai.yohan.fun;公网 /health 返回 HTTP 200;未登录 API 返回 HTTP 401;WebSocket /ws 无令牌返回 HTTP 401。当前 AgentMeshOS 仓库的 AGENTMESHOS_RUNNER_LABEL=agentmeshos-ci 已由 GitHub 探针验证运行在 101 自托管 Runner pcdell-101-agentmeshos。