乐于分享
好东西不私藏

在线协作文档!1.8万Star的Etherpad,无需账号的实时协作神器

在线协作文档!1.8万Star的Etherpad,无需账号的实时协作神器

实时协作文档是远程团队的刚需。Google Docs和Notion虽然功能强大,但它们都是SaaS服务——需要账号、网络依赖、数据不在自己手上。有没有一个可以自托管、免登录、又能实时协作的工具?

今天介绍的 Etherpad,是开源的实时协作在线文档工具,2009年就已存在,是Google Docs的开源鼻祖之一。它最大的特点是无需账号——打开链接就能开始协作,临时性协作的完美解决方案!已获得 1.8万Star

项目简介

Etherpad 是一个自托管的实时协作文本编辑器,最早于2009年发布,是最早一批”Google Docs替代品”开源项目之一。经过十几年的迭代,它已成为功能完善、稳定可靠的开源协作工具。

Etherpad的核心特点:无账号协作——创建者生成一个分享链接,任何人打开链接就能编辑,无需注册、无需登录、无需安装任何软件。文档实时同步,支持多人同时编辑,变更自动保存。

核心优势

  • 🚫 免登录协作 – 打开链接就能编辑,无需注册任何账号
  • ⚡ 实时同步 – 多人在同一文档中编辑,毫秒级同步
  • 📝 富文本支持 – 粗体、斜体、标题、列表、代码块
  • 📊 修订历史 – 查看任意时间点的文档内容
  • 🐳 一键部署 – Docker一行命令搭建完成
  • 🔌 插件生态 – 支持统计图表、任务列表、Markdown导出等插件
  • 🌐 API完整 – 丰富的REST API,可对接现有系统

项目地址:https://github.com/ether/etherpad-lite官方网站:https://etherpad.org在线体验:https://beta.etherpad.org

核心特性

编辑功能

功能
说明
快捷键
粗体
加粗文字
Ctrl/Cmd + B
斜体
斜体文字
Ctrl/Cmd + I
下划线
下划线文字
Ctrl/Cmd + U
标题
H1-H3标题
Ctrl/Cmd + 1/2/3
列表
有序/无序列表
Ctrl/Cmd + Shift/数字
代码块
等宽代码显示
Ctrl/Cmd + Shift + C
撤销/重做
撤销操作
Ctrl/Cmd + Z/Y
评论
添加评论批注
Ctrl/Cmd + Alt + C

核心功能

1. 无账号实时协作

1协作流程:21. A创建文档 → 生成链接 https://etherpad.example/p/abc12332. A分享链接给B、C、D43. B、C、D打开链接,无需登录直接编辑54. 所有人实时看到彼此的光标和编辑65. A设置只读密码保护(可选)76. 文档变更自动保存到数据库

2. 多彩光标和身份标识

Etherpad为每个协作者分配一个随机颜色,编辑时光标显示颜色和用户名(可自定义),方便识别谁在改什么:

1用户Alice(🟢绿色光标)正在编辑...2用户Bob(🔵蓝色光标)正在编辑...3用户Charlie(🟡黄色光标)正在编辑...4  ↓5   每个人可以看到其他人的实时光标位置

3. 修订历史(Time Slider)

Etherpad保存每次编辑的历史,通过时间轴可以回溯到任意时间点查看文档内容:

1# 时间轴功能2# - 拖动时间轴滑块,可查看任意历史时刻3# - 点击"Playback"播放历史,模拟时间倒流4# - 导出任意历史版本为TXT/HTML

4. API驱动

 1# 创建新文档 2curl -X POST https://etherpad.example/api/1/createPad \ 3  -d "apikey=YOUR_API_KEY&padID=my-meeting-notes" 4 5# 获取文档内容 6curl https://etherpad.example/api/1/getText \ 7  -d "apikey=YOUR_API_KEY&padID=my-meeting-notes" 8 9# 获取HTML格式10curl https://etherpad.example/api/1/getHTML \11  -d "apikey=YOUR_API_KEY&padID=my-meeting-notes"1213# 保存修订历史14curl https://etherpad.example/api/1/saveRevision \15  -d "apikey=YOUR_API_KEY&padID=my-meeting-notes&revisionID=10"1617# 列出所有文档18curl https://etherpad.example/api/1/listAllPads

插件扩展

插件
功能
ep_adminpads
管理界面,管理所有文档
ep_comments
添加评论和批注
ep_markdown
Markdown导入导出
ep_export_HTML
导出为HTML文件
ep_encrypt
文档内容加密
ep_math
LaTeX数学公式
ep_stats
文档编辑统计
ep_todo
任务清单功能

快速安装

方式一:Docker(最简单,推荐)

 1# 一行命令启动 2docker run -d \ 3  --name etherpad \ 4  --restart unless-stopped \ 5  -p 9001:9001 \ 6  -v etherpad_data:/opt/etherpad-lite/data \ 7  etherpad:1.9.0 8 9# 访问10# http://localhost:900111# 默认API Key: 在 logs/APIKEY.txt 中查看

方式二:Docker Compose(推荐生产环境)

 1# docker-compose.yml 2version: '3' 3services: 4  etherpad: 5    image: etherpad:1.9.0 6    container_name: etherpad 7    restart: unless-stopped 8    ports: 9      - "9001:9001"10    volumes:11      - ./etherpad_data:/opt/etherpad-lite/data12      - ./settings.json:/opt/etherpad-lite/settings.json13    environment:14      - ETHERPAD_TITLE=Etherpad15      - ETHERPAD_PORT=900116      - ETHERPAD_ADMIN_PASSWORD=your_admin_password17      - ETHERPAD_PAD_WHO_COLOR=#00ff0018    depends_on:19      - postgres2021  postgres:22    image: postgres:15-alpine23    container_name: etherpad_db24    restart: unless-stopped25    environment:26      - POSTGRES_USER=etherpad27      - POSTGRES_PASSWORD=etherpad_password28      - POSTGRES_DB=etherpad29    volumes:30      - postgres_data:/var/lib/postgresql/data3132volumes:33  etherpad_data:34  postgres_data:
1# 启动2docker-compose up -d34# 查看API Key5docker exec etherpad cat /opt/etherpad-lite/APIKEY.txt

方式三:传统安装(Node.js环境)

 1# 1. 安装依赖 2# Ubuntu/Debian 3sudo apt update 4sudo apt install -y git nodejs npm libicu-dev 5 6# 2. 克隆并安装 7git clone https://github.com/ether/etherpad-lite.git 8cd etherpad-lite 9git checkout 1.9.01011# 3. 安装(自动下载依赖)12cd src13npm install --no-optional1415# 4. 复制并配置设置文件16cp settings.json.template settings.json17nano settings.json1819# 5. 启动20cd ..21bin/run.sh

配置文件说明

 1// settings.json 关键配置 2{ 3// 标题 4"title""Etherpad", 5 6// 绑定地址 7"ip""0.0.0.0", 8"port"9001, 910// 数据库(推荐PostgreSQL)11"dbType""postgres",12"dbSettings": {13"host""localhost",14"port"5432,15"database""etherpad",16"user""etherpad",17"password""your_password"18  },1920// 用户认证(可选,禁用则无需登录)21"requireAuthentication"false,  // 设为true启用登录22"requireAuthorization"false,2324// 自动保存间隔(毫秒)25"automaticRevisionsSaveInterval"10000,2627// 最大修订版本数28"maxRevisionsPerAuthor"1000,2930// 管理员设置31"users": {32"admin": {33"password""admin_password",34"is_admin"true35    }36  }37}

使用体验

基础协作流程

 1使用步骤: 2 31. 访问 Etherpad 页面 4   http://your-domain.com 5 62. 创建新文档 7   - 点击 "New Pad" 创建空白文档 8   - 或者直接访问 URL: http://your-domain.com/p/my-doc-name 9103. 分享链接11   - 浏览器地址栏的URL就是分享链接12   - 直接复制发给协作者13144. 协作者加入15   - 打开链接,无需任何登录16   - 立即开始编辑17185. 可选:设置密码保护19   - 左下角 "Timeslider" → "Pad Settings"20   - 设置读取密码或编辑密码21226. 完成后导出23   - 左上角 "Export" → 选择格式(HTML/TXT/Markdown)

界面预览

 1┌──────────────────────────────────────────────────────────────┐ 2│ 📄 untitled                [Timeslider] [Import] [Export▾] │ 3├──────────────────────────────────────────────────────────────┤ 4│ 🟢 Alice  🟡 Bob   🔵 Charlie    [所有协作者标签]            │ 5├──────────────────────────────────────────────────────────────┤ 6│                                                              │ 7│  **会议纪要 - 2024年产品规划**                              │ 8│  时间:2024-01-1514:00                                     │ 9│  参与:Alice、Bob、Charlie                                   │10│                                                              │11│  ## 议题一:Q1产品方向                                       │12│                                                              │13│  Alice: 建议重点做移动端适配...🟢                          │14│  Bob: 同意,但要先解决性能问题...🔵                         │15│  Charlie: 性能优化可以并行推进...🟡                         │16│                                                              │17│  ## 议题二:技术选型                                         │18│                                                              │19│  - React vs Vue: 暂定React                                   │20│  - 数据库: PostgreSQL                                        │21│  - 缓存: Redis                                              │22│                                                              │23├──────────────────────────────────────────────────────────────┤24│ [B] [I] [U] [H1▾] [列表] [代码] [链接] [评论]  | Autosave ✓ │25└──────────────────────────────────────────────────────────────┘

会议记录实时协作示例

 1# 场景:5人远程会议,用Etherpad记录 2 31. 会议主持人在 Etherpad 创建文档 4   URL: https://pad.example/p/meeting-20240115 5 62. 会议链接通过 Zoom/飞书 聊天发送 7"各位同事,会议记录链接:https://pad.example/p/meeting-20240115" 8 93. 所有人打开链接,直接开始编辑10   - 每个人可以设置自己的颜色和昵称11   - 实时看到彼此的输入12134. 会议结束后,主持人导出为 Markdown14   - 作为会议纪要保存到 Notion/飞书15165. 设置只读密码,防止后续误修改

API自动化

 1# Python脚本:自动创建会议记录模板 2import requests 3 4ETHERPAD_URL = "https://pad.example" 5API_KEY = "your_api_key" 6 7defcreate_meeting_pad(title, participants): 8# 创建新文档 9    pad_id = f"meeting-{title}"10    r = requests.post(f"{ETHERPAD_URL}/api/1/createPad", data={11"apikey": API_KEY,12"padID": pad_id13    })1415# 写入会议模板16    content = f"""**{title} 会议记录**1718参与人: {', '.join(participants)}19时间: 待填写2021## 议程221.232.243.2526## 讨论27-2829## 决议30-3132## 待办事项33- [ ]34"""35    requests.post(f"{ETHERPAD_URL}/api/1/setText", data={36"apikey": API_KEY,37"padID": pad_id,38"text": content39    })4041returnf"{ETHERPAD_URL}/p/{pad_id}"4243# 使用44url = create_meeting_pad("Q1产品规划", ["张三""李四""王五"])45print(f"会议记录已创建: {url}")

常见问题

Q1: Etherpad和Notion/飞书文档相比有什么优势?

Etherpad最大的优势是零门槛协作——无需注册、打开链接就用,特别适合临时性的、不需要永久保存的协作场景(如会议记录、头脑风暴、临时评审)。但如果需要结构化管理、数据库功能,Notion/飞书更合适。

Q2: 如何确保文档数据安全?

 1// settings.json 中启用安全设置 2{ 3// 强制HTTPS 4"ssl"true, 5 6// 禁用危险API 7"enableAdminAssetCaching"false, 8"enableNodeSessionCleaning"true, 910// 设置会话超时11"sessionNoPassword"false,12"sessionTime"86400,1314// 内容过滤(防止XSS)15"sanitizeXSS"true16}

Q3: 性能如何?支持多少人同时编辑?

单个Pad支持约20-30人同时编辑而不明显卡顿。超过30人建议将内容分到多个Pad中。Etherpad使用Operational Transformation算法处理并发冲突,确保内容一致性。

Q4: 如何定期备份文档?

1# 备份所有文档(导出为HTML)2curl https://pad.example/api/1/listAllPads \3  -d "apikey=YOUR_KEY" | jq -r '.data.pads[]' | whileread pad_id; do4    curl "https://pad.example/api/1/getHTML?apikey=YOUR_KEY&padID=$pad_id" \5      | jq -r '.data.html' > "${pad_id}.html"6done78# 或者使用插件 ep_export_HTML 批量导出

总结

Etherpad 是实时协作工具领域的常青树,十五年如一日地稳定运行。它用极简的理念——无需账号、打开就用——解决了临时性协作的最大痛点。不需要邀请对方注册,不需要担心账号权限,生成链接发过去,对方就能开始编辑。

  • 📝 核心优势:免登录协作、实时同步、修订历史、插件扩展、API完整
  • 🛠️ 适合场景:会议记录、头脑风暴、临时评审、团队文档协作、教育课堂

如果你的团队经常需要临时协作——会议纪要需要多人同时填写,文档需要快速分享给外部人员协作编辑——Etherpad是比Google Docs更轻量、更自由的选择!

项目地址:https://github.com/ether/etherpad-lite官方网站:https://etherpad.org