Etherpad 介绍与选型指南

Etherpad 实时协作文档编辑器的定位、架构与功能全解,附与 HedgeDoc/HackMD/Firepad/OnlyOffice 的量化选型对比,全部结论标注官方来源与查询日期。

EtherpadEtherpad协作编辑Node.js2026/10/22

Etherpad 介绍与选型指南

目标:本文解决「Etherpad 是什么、能做什么、与同类实时协作文档方案相比如何选型」的问题。本文为联网溯源篇:全部信息取自官方站点、官方 GitHub 仓库与官方文档,逐条标注来源与查询日期(统一为 2026-10-22),不含本地实测结论;部署实操见《Etherpad 3.3.9 Docker Compose 部署指南》。

一、环境信息

本文为纯联网溯源文档,写作过程未做本地部署实验,文中引用的每条信息均来自下列官方来源(查询日期 2026-10-22):

来源地址用途
官方站点https://etherpad.org产品定位、特性、下载入口
官方仓库https://github.com/ether/etherpad源码、README、Releases、LICENSE
官方文档站https://docs.etherpad.org架构、配置、API、FAQ
Releases Atomhttps://github.com/ether/etherpad/releases.atom版本节奏(本次实查最近 5 个版本日期)
shields.io 徽章 JSONhttps://img.shields.io/github/stars/<owner>/<repo>.jsonGitHub 星数量化取证(未直连 api.github.com)
官方 Docker Hubhttps://hub.docker.com/r/etherpad/etherpad官方镜像与部署形态

💡 说明:Etherpad 仓库原名 ether/etherpad-lite,现更名为 ether/etherpad,访问旧地址会 301 重定向到新地址。本文统一使用新仓库名。

二、软件概述

Etherpad 是一个开源的、基于浏览器的实时协作文档编辑器(Real-time collaborative document editor):多人同时编辑同一篇富文本文档,每个人屏幕上实时呈现所有人的输入,官方口号为「really work together in real time」(来源:etherpad.org 首页,查询日期 2026-10-22)。它以「文档(pad)」为核心单元——每个 pad 对应一个 URL,打开即写,天然面向多人。

关键事实速览(来源逐条标注):

  • 定位:自托管优先的实时协同富文本编辑器,可嵌入第三方站点(来源:etherpad.org「Frequently Asked Questions」)。
  • 许可证:Apache License 2.0(来源:仓库 LICENSE 文件,https://github.com/ether/etherpad/blob/HEAD/LICENSE,查询日期 2026-10-22)。
  • 技术栈:服务端 Node.js(运行时要求 Node.js ≥ 18,来源:官方文档 https://docs.etherpad.org/installation.html,查询日期 2026-10-22);前端为自带 ACE 编辑器。
  • 最新稳定版:3.3.9,发布于 2026-10-18(来源:https://github.com/ether/etherpad/releases/tag/v3.3.9,查询日期 2026-10-22)。该版为安全+特性发布:修复插件卸载路径穿越漏洞(GHSA-g9xm-3pqr-wcph)、新增 pad 自动回收(padRetention 设置,可自动删除 N 天无人编辑的 pad,替代已停止维护的 ep_delete_after_delay 插件)、新增 suppressPadDeletionTokenModal 设置、CSS 体积从约 1.7 MB 降到约 61 KB(字体不再内联进压缩 CSS)。
  • 维护方:Ether 基金会/社区组织(GitHub org: ether),翻译来自 translatewiki.net 社区(来源:v3.3.9 Release Notes)。

💡 技术拓展:实时协同编辑目前主流的冲突合并方案有两类——OT(Operational Transformation,操作变换) 与 CRDT(Conflict-free Replicated Data Type,无冲突复制数据类型)。OT 按「操作序列变换」处理并发编辑,服务端集中仲裁,代表实现有 Google Docs、Etherpad;CRDT 按数据结构自身收敛去中心合并,代表实现有 Yjs、Automerge。Etherpad 采用服务端集中式 OT(来源:官方文档对编辑器内核 ACE 的说明 https://docs.etherpad.org,查询日期 2026-10-22),适合有稳定服务端的自托管部署;CRDT 更适合无中心 P2P 或离线优先场景。本文主体即 Etherpad 的 OT 方案。

三、核心架构

按官方文档与仓库描述(来源:https://docs.etherpad.org 与 https://github.com/ether/etherpad/blob/HEAD/README.md,查询日期 2026-10-22),Etherpad 采用单进程 Node.js 服务 + 可插拔数据库的四层结构:

层组件说明(官方来源)
前端ACE 编辑器 + Timeslider浏览器内富文本编辑器;Timeslider 为时间滑块,可回放整篇 pad 的修订历史
服务端Node.js 单进程WebSocket(socket.io)承载编辑增量,HTTP 承载页面与 HTTP API
数据抽象ueberdb2官方数据库抽象层,把读写统一翻译到不同后端数据库
持久化多种数据库DirtyDB(仅测试用)、SQLite、MySQL、MariaDB、PostgreSQL、Redis、SurrealDB 等(来源:官方文档 https://docs.etherpad.org/database.html,查询日期 2026-10-22)
  • pad(文档):最小内容单元,URL 即 pad(如 http://<host>:9001/p/<padId>),修订记录与属性全部入库。
  • 插件体系:以 ep_* 命名的 npm 包为扩展形态,服务端钩子(hooks)+ 客户端钩子双端扩展;管理后台 /admin/plugins 可在线装卸(来源:官方文档 https://docs.etherpad.org/plugins.html,查询日期 2026-10-22)。
  • HTTP API:面向程序化管理的 REST 风格接口,以 API key(APIKey.txt)认证,覆盖 pad 增删读写、作者/会话/分组管理等(来源:官方文档 https://docs.etherpad.org/api.html,查询日期 2026-10-22)。
  • 授权与身份:核心自带只读链接、pad 删除令牌等基础控制;登录、分组、LDAP/OAuth 等由插件(如 ep_etherpad-lite 内置部分 + 第三方 ep_* 插件)补齐(来源:官方 FAQ 与插件索引 https://static.etherpad.org/index.html,查询日期 2026-10-22)。

四、功能特性

以下特性清单取自官方站点与仓库 README(来源:etherpad.org、github.com/ether/etherpad README,查询日期 2026-10-22):

  • 实时协同:多人同屏编辑,输入零延迟互见;所见即所得富文本。
  • Timeslider 版本回放:按修订滑动回看整篇文档任意历史时刻。
  • 内置聊天:pad 右侧自带聊天栏,边写边聊。
  • 修订着色:每位作者的修改以不同颜色呈现。
  • 插件生态:官方插件索引收录上百个 ep_* 插件(公式、绘图、Markdown、TOC、权限增强等)。
  • HTTP API:全部管理操作可程序化,便于集成进自有系统。
  • 皮肤系统:默认 Colibris 皮肤,3.3.9 已完整支持暗色模式(来源:v3.3.9 Release Notes,Colibris dark mode 修复 #8271)。
  • 多语言:界面翻译由 translatewiki.net 社区维护,覆盖数十种语言。
  • pad 保留策略(3.3.9 新增):padRetention 定期清理 N 天无人编辑的 pad,默认关闭、支持 dryRun 预演(来源:v3.3.9 Release Notes,#8340)。

五、快速开始(官方最小可用示例)

官方推荐的最短上手路径是官方 Docker 镜像(来源:官方 README https://github.com/ether/etherpad/blob/HEAD/README.md 的 Docker 段落与 Docker Hub 页面 https://hub.docker.com/r/etherpad/etherpad,查询日期 2026-10-22):

docker run -d --name etherpad -p 9001:9001 etherpad/etherpad

按官方文档说明:启动后浏览器访问 http://<服务器IP>:9001,首页输入任意 pad 名称即创建并进入一个 pad。默认使用内置 DirtyDB 存储(仅适合试用,生产必须换正式数据库);数据库、管理员、API key 等配置通过环境变量或 settings.json 完成,完整可落地的 Compose 部署(含数据库、持久化、健康验证、升级)见《Etherpad 3.3.9 Docker Compose 部署指南》。

⚠️ 注意:官方镜像默认数据不落盘(容器内 /opt/etherpad-lite/var),仅用于体验;生产部署务必挂载数据目录或外接数据库,见部署指南。

六、适用场景与限制

适用场景(综合官方 FAQ 与 README 描述):

  • 教学/课堂协同笔记:全班同写一份笔记,Timeslider 可回放写作过程。
  • 会议记录、头脑风暴:多人零门槛并行输入,无需账号即可参与。
  • 结对写作与审稿:修订着色 + 版本历史天然支持追责与回滚。
  • 集成方系统内嵌编辑器:通过 HTTP API + iframe 嵌入,pad 生命周期全部程序化管理。
  • 开源社区/组织内公开协同入口。

限制(来源:官方 FAQ https://etherpad.org 与官方文档,查询日期 2026-10-22):

  • 富文本而非 Markdown:不以 Markdown 语法为主输入方式(可用插件转换,但定位不同)。
  • 核心不带完整用户体系:登录/分组/精细权限依赖插件或前置反向代理认证。
  • 单实例架构:官方主进程为单 Node.js 进程,无内置多主复制;规模化靠多 pad 分摊 + 纵向扩容。
  • 数据库必须自备生产级后端:默认 DirtyDB 仅测试用。

七、同类选型对比

对同为「实时协作编辑」方向的 5 个代表方案做量化对比。GitHub 星数统一经 shields.io 徽章 JSON 端点取证(https://img.shields.io/github/stars/<owner>/<repo>.json,查询日期 2026-10-22,未直连 api.github.com):

方案定位GitHub 星数(2026-10-22)许可证服务端语言协同算法存储后端维护状态
Etherpad(ether/etherpad)自托管实时协同富文本编辑器19kApache-2.0Node.js服务端集中式 OTueberdb2 多后端(PG/MySQL/SQLite/Redis 等)活跃:近 1 个月 5 个版本(3.3.5~3.3.9,2026-09-17 至 2026-10-18)
HedgeDoc(hedgedoc/hedgedoc,前 CodiMD)自托管实时协同 Markdown 笔记7.5kAGPL-3.0Node.jsOT(CodeMirror 协同层)PostgreSQL/MySQL/MariaDB/SQLite活跃(1.x 稳定线,2.x 开发线)
HackMD(hackmdio/hackmd)Markdown 协同 SaaS/自托管双形态10kAGPL-3.0(社区版)Node.jsOTPostgreSQL商业服务为主,社区版持续维护
Firepad(firebase/firepad)嵌入式 JS 协同编辑组件(供开发者集成进自有页面)3.9kMIT无独立服务端(依托 Firebase Realtime Database)OT(Firebase 变换)Firebase RTDB已归档:官方标注不再维护(2022 年起),依赖 Firebase 云服务
OnlyOffice Docs(ONLYOFFICE/DocumentServer)自托管在线 Office 套件(Word/Excel/PPT 文档级协同)7kAGPL-3.0(社区版).NET (C#) 核心自研协同协议(WebSocket)PostgreSQL + Redis + RabbitMQ 必依赖活跃,版本节奏快

关键差异与如何选:五者共通点是「多端实时互见」,分歧在文档模型——Etherpad/HedgeDoc/HackMD 面向「轻文档」(一篇笔记一个 URL),OnlyOffice 面向「Office 文件格式兼容」,Firepad 是「无界面的嵌入式组件」。分歧第二在输入语法:Etherpad 富文本、HedgeDoc/HackMD Markdown。分歧第三在数据主权:Firepad 数据在 Firebase 云端,其余四者均可完全自托管。

版本节奏量化(来源:各仓库 Releases,查询日期 2026-10-22):Etherpad 在 2026-09-17 至 2026-10-18 的 31 天内连发 3.3.5、3.3.6、3.3.7、3.3.8、3.3.9 共 5 个版本,其中 3.3.9 为安全发布(GHSA-g9xm-3pqr-wcph),补丁响应速度在同类中属于第一梯队。

兼容矩阵要点(来源:官方文档 database.html / HedgeDoc 文档 / OnlyOffice 官方安装要求,查询日期 2026-10-22):

  • Etherpad:数据库可选项最多(SQLite/MySQL/MariaDB/PostgreSQL/Redis/SurrealDB 等 7 种),可零外部依赖跑起来。
  • HedgeDoc/HackMD:仅支持关系型数据库(PG/MySQL/SQLite),需外部 DB。
  • OnlyOffice Docs:强依赖 PostgreSQL + Redis + RabbitMQ 三件套,部署最重。
  • Firepad:无自建服务端,但被锁定在 Firebase 云。

选型建议(如果…则…):

  • 如果要富文本、多插件、API 可编程的协同文档服务器 → 选 Etherpad。
  • 如果团队以 Markdown 为笔记标准 → 选 HedgeDoc(CodiMD 的社区后继)。
  • 如果要 Office 格式(docx/xlsx/pptx)在线协同编辑 → 选 OnlyOffice Docs。
  • 如果要把协同编辑嵌入自有前端页面且能接受 Firebase → 可评估 Firepad,但它已归档,新项目建议改用自托管 Etherpad(iframe/API 集成)或 Yjs 系 CRDT 组件。
  • 如果要开箱即用的托管服务且接受云端 → HackMD SaaS。

站内延伸:确定选型后,部署与实操文档按篇展开——部署《Etherpad 3.3.9 Docker Compose 部署指南》、配置《Etherpad 3.3.9 配置参数详解》、命令行与 API《Etherpad 3.3.9 常用 CLI 命令与工具详解》。

八、参考链接

  1. Etherpad 官方站点:https://etherpad.org (查询日期 2026-10-22)
  2. 官方仓库(源码/README/Releases/LICENSE):https://github.com/ether/etherpad (查询日期 2026-10-22)
  3. 官方文档站:https://docs.etherpad.org (查询日期 2026-10-22)
  4. v3.3.9 Release Notes:https://github.com/ether/etherpad/releases/tag/v3.3.9 (查询日期 2026-10-22)
  5. 官方数据库支持说明:https://docs.etherpad.org/database.html (查询日期 2026-10-22)
  6. 官方 HTTP API 文档:https://docs.etherpad.org/api.html (查询日期 2026-10-22)
  7. 官方插件索引:https://static.etherpad.org/index.html (查询日期 2026-10-22)
  8. 官方 Docker 镜像:https://hub.docker.com/r/etherpad/etherpad (查询日期 2026-10-22)
  9. HedgeDoc 仓库:https://github.com/hedgedoc/hedgedoc (查询日期 2026-10-22)
  10. HackMD 仓库:https://github.com/hackmdio/hackmd (查询日期 2026-10-22)
  11. Firepad 仓库:https://github.com/firebase/firepad (查询日期 2026-10-22)
  12. OnlyOffice Docs 仓库:https://github.com/ONLYOFFICE/DocumentServer (查询日期 2026-10-22)