Docker 协作部署
多人协作需要 Docker 版本;明确前端、协作服务和持久化之间的关系。
本页内容
多人协作需要部署 Docker 版本。 npm 编辑器组件提供接入能力;文档站是静态说明站。把文档站部署到 Cloudflare,不会获得协作后端。
部署前先分清三个部分
| 部分 | 运行在哪里 | 负责什么 |
|---|---|---|
| 文档网站 | Cloudflare Pages 等静态托管 | 介绍功能、提供教程与 API 文档 |
| 你的业务应用 | 浏览器及宿主业务后端 | 登录、编辑器页面、文档入口、模型和文件服务 |
| Docker 协作服务 | 你的服务器或容器环境 | 实时同步、命令确认、协作权限和持久化,具体依交付版本 |
浏览器通过 HTTPS 打开业务应用,再通过 WSS 连接已部署的协作服务。文档站不参与这条数据链路。
部署步骤
- 准备对应版本的 Docker 交付包。 使用实际发布的镜像、Compose 文件和配置说明,确认它支持你要接入的编辑器及协议版本。
- 配置访问与身份。 准备服务域名、HTTPS/WSS、鉴权方式、文档权限和用户身份。开发示例里的
dev-token不能直接用作生产配置。 - 配置持久化。 按交付包说明挂载数据目录或连接数据库,单独配置附件存储;容器重启后应能恢复文档。
- 连接前端。 为同一文档提供一致的业务文档 ID,为每个客户端提供唯一实例 ID,并接入相应的 provider 或协作客户端。
- 用两名用户验证。 测试同一文档的实时编辑、断线重连、权限限制、撤销,以及重启服务后的数据恢复。
镜像地址、版本、端口和环境变量以对应的 Docker 交付包为准。本页提供部署与接入流程,暂未收录可直接执行的统一 Compose 配置;拿到部署包后按实际参数执行,再使用下方资料完成前端接线与验收。
四类编辑器的接入区别
| 编辑器 | 前端接点 | 接入时重点确认 |
|---|---|---|
| Word | collaborationProvider |
provider 的身份、权限、操作同步和远端光标;见字体与扩展服务 |
| Excel | collaboration + submitCommand |
Yjs 数据同步之外,还要有服务端权威命令的 ack/reject;见协作接入参考 |
| PPT | 当前源码中的协作客户端 | 需要匹配实际 Docker 交付版本,不能套用 Excel 的配置结构;AI 与协作组合暂不支持 |
| 富文本 | Yjs 文档、provider、用户信息 | 协作初始化只执行一次,避免每个用户重复写入初始内容;见协作接入参考 |
这些接点不互相兼容。普通 Yjs 广播能同步数据,并不等于实现了 Excel 的服务端语义命令或所有编辑器的权限检查。
上线前逐项验证
- 两名不同用户打开同一文档,看到相同内容;不同文档之间互不串数据。
- 一个用户修改后,另一端收到同步;服务端拒绝的命令能提示或回滚。
- 临时断网后重连,未确认修改和已确认内容有明确状态。
- 只读用户无法绕过服务端权限写入,文件和附件权限也受检查。
- 重启容器后仍能加载已保存内容;备份能够恢复。
- AI 开启时,验证当前编辑器是否支持该协作组合;不能用整篇替换绕过原子提交。
常见误区
“两端能看到文字变化,算接好了?” 还不够。需要确认服务端身份、命令拒绝、持久化和重连行为。
“我已经把网站挂到了 Cloudflare,可以在里面启动 Docker 吗?” 本项目生成的是静态页面,不运行容器或协作服务。Docker 部署是另一项服务部署。
“本地保存能代替协作保存吗?” localStorage 只属于当前浏览器,不是团队共享存储。协作时应遵循对应服务的数据和保存协议。
内容依据组件公开文档 · 2026-10-25常见问题