SELF-HOSTING · SECURITY BOUNDARIES

把工作台放在自己的环境里

MIAO 是一个单 Go 进程:内嵌 PocketBase、UI 和迁移,由一个服务端 API 统一处理身份、权限、Agent 和后台任务。本文只描述源码与运维手册已经说明的能力。

代码已实现需要真实环境验收尚未提供:多节点 HA、云 SLA、SOC 合规

真实架构

MIAO 自托管架构浏览器通过 HTTPS 反向代理访问单个 Go 进程;进程内包含 API、Agent、后台任务、UI、迁移和 PocketBase。服务端分别连接 AI Gateway 与 Typesafe Jev,数据目录和备份留在部署者环境。浏览器用户 / 公开只读单 Go 进程(PM2)API + 权限Agent + 后台任务嵌入 UI / 迁移PocketBase / SQLiteAI Gateway密钥只在服务端Typesafe Jev官方 endpoint数据目录 / 备份部署者负责保管

PM2 只管理进程;公网 HTTPS、域名和端口边界由反向代理负责。PocketBase 原始管理接口、文件令牌和备份 API 不直接暴露到公网。

最短安装路径

  1. 在支持的 Linux 或 macOS x64/ARM64 环境准备 PM2、curl 和 openssl,从 GitHub Releases 获取版本包。
  2. 运行安装脚本,确认数据目录、监听地址、加密密钥和首个平台管理员邮箱;首次登录后在后台配置注册、邮件、AI、Jev 和备份策略。
  3. 让反向代理提供 HTTPS,再分别验证回环健康接口、公开入口和一次认证后的业务流程。健康检查 200 不代表模型、邮件或生产域名已经验收。

请求如何经过权限边界

Workspace / App

浏览器请求进入 MIAO API,服务端重新检查用户、工作区成员关系、应用权限和字段授权。知道 URL 不会获得数据权限。

代码已实现

Agent / 后台任务

Agent 和后台任务使用服务端授权上下文、预算和运行回执;不保存浏览器登录令牌长期执行。真实模型账号与长时间运行仍需现场验收。

需要真实环境验收

公开只读发布

公开页面只返回明确授权的记录字段和图片;它不等于公开工作区,也不会绕过应用发布范围。

代码已实现

运维入口

生产域名、真实邮件、AI Gateway、Jev、备份恢复和反向代理都需要目标环境验收。页面不承诺多节点 HA、云 SLA、认证或付费推理配额。