这个项目能做什么

Etherpad是一款专注于作者归属和历史记录的实时协作文档编辑器。自2009年以来,一直由一个小型志愿者团队维护,采用Apache License v2许可证发布。 README中描述的核心功能: - 实时协作编辑:每个击键都归属于其作者,并以内联方式显示作者颜色。 - 完整的修订历史记录,配备时光轴可逐字符浏览文档历史。 - 内置完整数据导出功能,确保文档历史对运营者保持可访问。 - 自托管运行:项目声明不提供遥测功能,也无附加销售;AI功能通过插件提供且需用户选择指定模型方可启用。PRIVACY.md文件说明了Etherpad自身代码进行的两次可选网络调用。 - 扩展性声明:项目提供了一个可扩展性测试页面,表明支持每个文档数千名同时编辑者。 - 国际化:通过TranslateWiki翻译成105种语言。 - 可扩展性:插件框架拥有数百个插件,可通过管理Web界面或命令行安装。 - 可嵌入性:提供用于管理文档、用户和组的HTTP API,OpenAPI定义暴露于/api/openapi.json,另附jQuery插件可将文档嵌入网站。 README中涵盖的安装选项: - macOS/Linux/WSL(Shell)和Windows(PowerShell)的一键安装脚本,可克隆仓库、安装依赖并构建前端。需要Node.js >= 24和git。可设置环境变量以一步完成安装和启动。 - 使用官方Docker镜像(发布至Docker Hub和GitHub容器注册表)的Docker Compose示例,包含PostgreSQL服务、用于插件和var数据的持久卷,以及用于管理员密码、数据库连接和其他设置的环境变量。 - 手动步骤:安装pnpm,克隆仓库,运行pnpm i、pnpm run build:etherpad,然后pnpm run prod,访问localhost:9001。 配置与管理: - 设置位于settings.json中,支持备用设置文件、凭据覆盖、API密钥和会话密钥文件,以及使用${ENV_VAR}或${ENV_VAR:default_value}语法的变量替换。 - 设置也可通过/admin Web界面更改。 - README建议在生产环境中使用MySQL或PostgreSQL等专用数据库,指出dirtyDB驱动仅适用于测试或开发。 - 关于身份验证,建议存储哈希而非纯文本密码,并指向ep_hash_auth插件。 - OpenID Connect身份验证的建议插件包括ep_openid_connect、ep_guest、ep_user_displayname和ep_stable_authorid。 - 更丰富编辑功能的建议插件集包括ep_align、ep_comments_page、ep_embedded_hyperlinks2、ep_font_color、ep_headings2、ep_markdown和ep_webrtc。 - 可通过skinvariantsbuilder URL探索皮肤变体。 开发及项目状态: - 通过bin/debugRun.sh进行调试,通过bin/fastRun.sh快速启动(跳过依赖更新)。 - 支撑实时行为的Easysync库在仓库中以PDF文档形式提供。 - 贡献指南见CONTRIBUTING.md。 - README指出项目正在积极寻找具有Node.js、实时系统或机构协作工具经验的维护者。 - CI徽章涵盖代码质量(CodeQL)、后端测试、模拟负载、速率限制、Docker以及前端/管理测试。 已知用户包括维基媒体基金会、欧盟公共部门机构、大学和学校、公民科技与审议民主项目、新闻编辑室,以及众多自托管实例。还提供公开实例供试用该软件。 支持渠道包括GitHub Issues、Discord服务器,以及负责任漏洞披露的邮箱联系方式。