返回目录
开源项目文档办公类新手

Docs:面向实时协作的开源协同文本编辑器(suitenumerique/docs)

Docs 是由法国 DINUM 与德国 ZenDiS 联合发起的开源协同编辑器,定位为 Notion / Google Docs 的自托管替代方案,强调实时协作、结构化文档与子文档、知识组织与数据自主可控,面向公共机构、企业与开放社区,采用 MIT 许可证。

0 次阅读2026/09/15 发布
Docs:面向实时协作的开源协同文本编辑器(suitenumerique/docs) 来源图片

社区作者 · zZz

它解决什么问题

项目定位

Docs(配图 1)是一个开源协同编辑器,帮助团队实时地共同撰写、组织与分享知识。官方将其描述为 Notion、Google Docs 一类工具的开源替代品,重点关注:

  • 实时协作
  • 干净、结构化的文档
  • 知识组织
  • 数据所有权与自托管

主要面向公共组织、公司和开放社区。

功能概览

**写作**

  • 富文本与 Markdown 编辑
  • 斜杠命令与块(block)系统
  • 排版格式化
  • 离线编辑
  • 可选的 AI 写作助手(改写、摘要、翻译、修正错别字)

**协作**(配图 2 为实时协作演示)

  • 实时光标与在线状态(presence)
  • 评论与分享
  • 细粒度访问控制

**知识管理**

  • 子页面与层级结构
  • 内容可搜索

**演示(Presentations)**

  • 基于分隔符( --- )的简单结构
  • 全屏选项
  • PDF 导出
  • 键盘导航
  • 可从某个块开始演示
  • 演示链接(配图 3 为幻灯片模式演示)

**导出/导入**

  • 导入:.docx、.md
  • 导出:.docx、.odt、.pdf

AI 功能

Docs 的 AI 功能是可选的,且与模型、网关无关(model agnostic、gateway agnostic):既可以自建,也可以直接使用自己的 AI 服务商。配置只需一个 API key 和一个 URL。

  • **V1:选中即替换(配图 4)**。简单的工作流:你的选区既是上下文也是给模型的指令,AI 的反馈替换你的选区,并针对 Docs 的格式做了优化。
  • **V2:AI 工具栏、AI 光标(beta,配图 5)**。基于 BlockNote AI 集成,包含:选区处出现可输入提示词、接受、拒绝、迭代 AI 反馈的 AI 工具栏;一个像另一位协作者那样与文档交互的 AI 光标;以及在选区之上叠加使用文档上下文。

互操作性

Docs 提供资源服务器 API 和服务器到服务器(server to server)API,可实现丰富的集成。一个具体例子是 Meet 的会议转录(配图 6):如果你运行了 Meet 实例,只需简单配置(DJANGO_SERVER_TO_SERVER_API_TOKENS),就可以把会议转录推送到 Docs,并授权给请求该内容的用户。

许可与 GPL 组件提示

本项目以 MIT 许可证发布(见 LICENSE)。官方说明:Docs 是公共驱动的倡议,选择该许可证是为了邀请私营部门使用、销售并为项目做出贡献。

**警告**:部分高级功能(例如“导出为 PDF”)依赖 BlockNote 的 XL 包,这些包以 GPL 授权,与 MIT 不兼容。可以使用以下方式在缺少这些包的条件下构建 Docs:

代码
PUBLISH_AS_MIT=true

这会构建一个不含非 MIT 功能的 Docs 镜像。更多细节见环境变量说明。

技术栈

Docs 构建于 Django Rest Framework、Next.js、ProseMirror、BlockNote.js、HocusPocus 和 Yjs 之上。项目方是 BlockNote.js 与 Yjs 的赞助者。

生态与合作(配图 7)

Docs 是法国政府(DINUM)与德国政府(ZenDiS)共同领导的联合倡议成果,目前正在引入荷兰(荷兰 🇳🇱 正在 onboarding),并持续寻找新的公共合作伙伴。

参与贡献

项目由社区驱动,欢迎 PR。提供贡献指南、翻译入口与 Matrix 聊天渠道;公开路线图可查看即将推出的功能、优先级与长期方向。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

在线试用(无需安装)

  • 打开一个在线演示文档
  • 浏览公共实例

自托管

Docs 支持 Kubernetes、Docker Compose,以及社区提供的 Nix、YunoHost 等方式。起步请参考官方 Installation guide。

注意:部分高级功能(例如“导出为 PDF”)依赖 BlockNote 的 XL 包,这些包以 GPL 授权、与 MIT 不兼容。可通过以下方式在缺少这些包的条件下构建:

代码
PUBLISH_AS_MIT=true

这会构建一个不含非 MIT 功能的 Docs 镜像。更多细节见环境变量文档。

本地开发(面向贡献者)

注意:此方式仅用于开发与测试。它使用 Minio 作为 S3 兼容的存储后端,也可以使用任何 S3 兼容服务。

1. 准备环境(Prerequisites)

可复制命令
Docker
可复制命令
Docker Compose
  • GNU Make

验证安装:

代码
docker -v
docker compose version

如果遇到权限错误,可能需要使用 sudo,或将你的用户加入 docker 组。

2. 初始化项目(Bootstrap)

最简单的方式是使用 GNU Make:

代码
make bootstrap FLUSH_ARGS='--no-input'

该命令会构建 app-dev 与 frontend-dev 容器、安装依赖、执行数据库迁移并编译翻译。建议在拉取新代码后再次运行该命令。

3. 启动服务

代码
make run

然后打开:https://localhost:3000

默认凭据(仅开发环境):

  • username: impress
  • password: impress

4. 前端开发模式

做前端开发时,在 Docker 之外运行通常更方便:

代码
make frontend-development-install
make run-frontend-development

5. 仅后端

启动除前端容器之外的所有服务:

代码
make run-backend

6. 测试与 Lint

代码
make frontend-test
make frontend-lint

后端测试可以在不使用 docker 的情况下运行,便于在 PyCharm 或 VSCode 中配置执行。脱离 docker 测试时,需要覆盖一些在 docker 内外取值不同的 URL 与端口变量:env.d/development/common 包含全部变量,其中一部分必须被 env.d/development/common.test 中的值覆盖。

7. 演示内容

创建一个基础演示站点:

代码
make demo

8. 查看全部 Make 目标

代码
make help

9. Django admin

创建超级用户:

代码
make superuser

Admin UI 地址:http://localhost:8071/admin

常见问题

  • **权限错误**:可能需要 sudo,或把用户加入 docker 组。

**拉取新代码后行为异常**:建议重新执行

可复制命令
make bootstrap FLUSH_ARGS='--no-input'

  • **默认密码不能用**:impress / impress 仅限开发环境使用。
  • **导出 PDF 等高级功能不可用**:可能是以 PUBLISH_AS_MIT=true 构建,去除了依赖 GPL 包的 XL 功能。
  • **AI 功能未启用**:AI 功能是可选的,需要配置 API key 与 URL,可自建也可使用自有服务商。

来源教程配图

Docs
配图 1 · Docs查看原图
Live collaboration demo
配图 2 · Live collaboration demo查看原图
demo of slide mode in Docs
配图 3 · demo of slide mode in Docs查看原图
Demo of Docs AI v1
配图 4 · Demo of Docs AI v1查看原图
Demo of Docs AI v2
配图 5 · Demo of Docs AI v2查看原图
transcript in Docs screenshot
配图 6 · transcript in Docs screenshot查看原图
Europe Opensource
配图 7 · Europe Opensource查看原图

适用场景

公共机构与政府部门的内部文档协作与知识沉淀
企业团队替代 Notion / Google Docs 的自托管协同写作平台
开放社区共同撰写与维护结构化文档
子页面知识库
会议转录内容的接收与共享(配合 Meet 的 server-to-server API)
需要数据主权与私有部署的团队文档与演示材料管理
借助可选 AI 助手进行改写
摘要
翻译与错别字修正