概述
官方支持的企业私有化部署运行在一台 Linux VM 上,使用 Docker Compose 启动控制平面、WebUI、PostgreSQL、Redis 与 Caddy(自动 TLS)。控制平面会为每名员工创建一个独立沙箱容器和一个持久卷。架构
- Caddy 负责 TLS,并把
/api、/proxy、/ws、/llm-relay、/tool-relay、/tunnel-relay、/vnc反代到控制平面,其余请求转到 WebUI。 - 控制平面通过宿主 Docker socket 创建沙箱,并向其转发 HTTP/WebSocket 流量。
- PostgreSQL 保存控制平面数据;每名员工的工作区与记忆保存在独立 Docker 卷中。
前置要求
- Ubuntu 22.04/24.04,8 vCPU / 16 GB RAM
- Docker 24+,Compose v2
- 域名 DNS 记录,80/443 端口可达
- OIDC 身份提供商(Okta、Entra ID、Keycloak 等)
- 签名企业 License JWT 与厂商公钥
- 可选:宿主机安装
runsc(gVisor)以获得更强隔离
快速开始
DOCKER_GID 是宿主 Docker socket 的组 id:
docker。如果已安装 runsc,在 .env 中设置 MYRM_CP_RUNTIME=docker_gvisor。
配置项
OIDC 回调地址:
首个管理员与组织
- 先通过 OIDC 登录一次。
-
创建组织,并把该用户设为 owner:
-
把输出的
owner_user_id写入.env的MYRM_CP_ADMIN_USER_IDS,重启控制平面:
使用现有反向代理
Caddy 是可选的:它运行在caddy Compose profile 下(.env 中的 COMPOSE_PROFILES=caddy)。如果同一台机器上已有 Nginx/ALB,删除该行,并按以下规则转发:
在现有入口终止 TLS,并保持 CP API 端口不直接暴露公网。
运维
cp-data + SHA256 + 保留期):
--yes;请先在全新 VM 上验证。
范围与限制
- 仅单机:不支持 HA、集群或多区域故障转移。
- 面向小团队;上线前按真实负载压测,再决定升配或按团队拆分。
- 仅 OIDC:不包含 SAML 与 SCIM。
- 不支持 BYOK/KMS 与气隙模式。
- 仅 Linux(沙箱运行时使用宿主 Docker daemon)。
- 支持系统:Ubuntu 22.04/24.04,Docker 使用官方源安装。
安全说明
- 挂载 Docker socket 等于把宿主容器控制权交给控制平面;请限制 SSH 与 Docker 访问,仅信任管理员。
- 沙箱会降权运行、丢弃多余 capability,并设置 CPU/内存/PID 上限;Docker 安全选项附加 seccomp/AppArmor。需要更强隔离时安装
runsc并使用docker_gvisor。 - 每名员工使用独立沙箱与卷。管理员可以查看审计事件与用量;保留期与访问权限请按公司策略配置。
.env不要提交到版本库;轮换 JWT/Master Key 必须按迁移流程执行。