自托管
部署架构
理解 Anydo 自托管环境中的 Hub、Core、Auth、前端和 Runner。
服务边界
| 组件 | 主要职责 | 典型存储 |
|---|---|---|
| Auth Center | 登录、JWT、OAuth、账号安全 | MongoDB / Redis |
| Core | Spaces、Docs、Bases、计费、云资源、连接应用协调 | PostgreSQL / Redis / 对象存储 |
| Hub | 会话、消息、机器、权限、RPC、SSE | SQLite |
| Gateway | 统一公网路由、鉴权和流量入口 | Redis |
| Dashboard | Web/PWA/Desktop/Mobile 前端 | 静态资源 |
| CLI/Runner | 在目标机器运行 Agent 和执行 RPC | ~/.anydo/ + 项目目录 |
会话数据流
Agent event
→ CLI Socket.IO client
→ Hub /cli namespace
→ SQLite + session cache
→ SSE /api/events
→ Dashboard用户从前端执行操作时,方向相反:Dashboard 调用 Hub REST,Hub 通过 RPC Gateway 把请求发给目标 Runner。
网络建议
- 公网只暴露 HTTPS 入口
- Auth/Core/Hub 之间优先使用私网或本机回环地址
- 远程 Runner 只主动连接 Hub,不向公网开放控制端口
- Core Service Key 只在服务端和受信任 Runner 使用
- 对象存储和数据库不应直接暴露给客户端
高可用边界
Hub 当前以 SQLite 和内存会话缓存为核心。单个 Hub 实例应使用稳定本地磁盘,并通过进程管理器自动恢复。需要多区域时,优先按 Hub/Space 边界拆分,而不是让多个实例同时写同一 SQLite 文件。