Nextcloud 自建 OnlyOffice 还是 Collabora?
对比 OnlyOffice Docs 与 Collabora Online:查看免费 CODE 和 Docs 的限制、DOCX 兼容性及内存要求,判断 2 GB 或 4 GB VPS 更适合哪一个。
OnlyOffice 与 Collabora:小型 VPS 的选择
OnlyOffice 与 Collabora 的区别,在于它们是连接到现有文件服务器的两种文档引擎;对大多数读者而言,这台文件服务器就是 Nextcloud。在 2 GB VPS 上,选择 Collabora,并使用 Nextcloud 捆绑的版本,因为这样无需额外容器,也无需新增 Web 地址。在 4 GB 或更大内存的 VPS 上,如果团队主要使用 .docx 和 .xlsx,则值得为 ONLYOFFICE Docs 分配更多内存,因为其编辑器可直接处理这些格式。
搜索这个问题时,几乎都会看到第三个产品名称。ONLYOFFICE DocSpace 是一个带有独立界面的独立产品,并不是 Nextcloud 对接的组件。由于教程提到“OnlyOffice”就安装 DocSpace,是人们误以为 Nextcloud 中的编辑按钮需要大型服务器的最常见原因。
容易混淆的 3 个产品
- ONLYOFFICE Docs 也称为 Document Server,是独立的文档编辑引擎。它不提供文件管理器。Nextcloud 连接器连接的就是它。Community Edition 免费,采用 GNU AGPL v3 许可。
- ONLYOFFICE DocSpace 是一个工作区,提供房间、成员管理、共享和自己的 Web 界面,并内置 Docs。它与 Nextcloud 的功能重叠,而不是扩展 Nextcloud。2026 年 10 月核查的官方最低配置是安装脚本需要 4 个 CPU 核心和 8 GB RAM,建议使用 12 GB。单容器 Docker 构建需要 6 个核心和 12 GB,ONLYOFFICE 将该构建标记为仅供测试,不用于生产环境。
- Collabora Online 是运行在服务器上的 LibreOffice。服务器负责排版和绘制文档,然后将图像发送到浏览器。免费构建版本是 CODE,即 Collabora Online Development Edition 的缩写。
Nextcloud 为 Collabora 提供两个应用。richdocuments 在应用商店中列为 Nextcloud Office,是连接 Collabora 服务器的连接器。richdocumentscode 将 CODE 集成到 Nextcloud 安装中,因此无需运行容器,也无需编写代理规则。Nextcloud 自己的手册说明,这个内置服务器适合个人使用或小型团队,并建议为获得更好的性能而单独安装 Collabora。
如果还没有确定文件服务器方案,Seafile 与 Nextcloud 的对比是首先需要做出的决定,因为 Office 服务器依附于所运行的文件服务器。如果 Nextcloud 已经运行,在 VPS 上部署带 TLS 和备份的 Nextcloud 实例就是本指南假定使用的环境。
每个组件需要多少 RAM?
The data behind this chart
[
{
"label": "Collabora CODE",
"min_ram_gb": 1
},
{
"label": "ONLYOFFICE Docs",
"min_ram_gb": 4
},
{
"label": "ONLYOFFICE DocSpace",
"min_ram_gb": 8
}
]这些是各厂商公布的数值,数据核对于 2026 年 10 月。每个数值都只针对单独运行的办公服务器,不包含其他服务。Collabora 的 CODE 容器快速入门文档要求 1 GB。ONLYOFFICE 在 Docker 下运行 Docs 时要求 4 GB,另外还需要 4 GB swap 和 40 GB 可用磁盘空间。使用厂商脚本安装 DocSpace 时,需要 8 GB 和 4 个 CPU 核心,并建议使用 12 GB。
现在将 Nextcloud 添加到同一台机器。PHP-FPM(FastCGI 进程管理器)工作进程、数据库和后台任务运行程序都需要内存,内核页缓存也需要内存,才能让文件列表保持较快的响应。在 2 GB VPS 上,没有足够空间运行独立的办公容器,因此服务器会使用 swap。使用 swap 的服务器表现会像故障服务器:编辑器加载指示器转动 30 秒后最终超时。这正是内置 CODE 应用存在的原因。该应用会将 Collabora 二进制文件打包在 Nextcloud 应用中,Nextcloud 再通过本地代理将编辑器流量转发给它。这样会牺牲一些速度,但可以省去一个完整的服务。
两种引擎的内存占用方式为何不同
Collabora 在服务器上执行渲染。每个打开的文档都会在容器内获得一个独立进程。有人编辑时,可以使用 docker exec collabora ps -ef 监控这些进程。内存占用会随同时打开的文档数量增加,因此空闲服务器的开销较低,而 10 名用户同时编辑时则不同。
ONLYOFFICE Docs 将布局处理交给浏览器。它的编辑器使用 JavaScript,服务器负责存储文件、协调协同编辑以及执行格式转换。自 2026 年 5 月发布的 9.4 版起,Community Edition 容器在单个整合式服务器进程前运行 nginx,容器内不再包含 PostgreSQL 或 RabbitMQ。ONLYOFFICE 仍将 4 GB 列为无人连接时的最低内存要求。
两条曲线的形状不同。Collabora 的初始占用较低,并会随每个打开的文档增加。ONLYOFFICE 的初始占用较高,但增长较慢,因为部分处理工作在用户的笔记本电脑上完成。
免费版本的限制
CODE 在默认模式下没有文档数或连接数限制。Collabora 工作人员于 2026 年 9 月在 Collabora 自己的论坛中确认了这一点。旧版指南中提到的 10 个文档和 20 个连接上限,仅适用于启用可选 Home Mode 的情况,而该模式默认未启用。
CODE 与付费版 Collabora Online 的区别在于稳定性和支持。Collabora 将 CODE 描述为持续开发中的滚动发布版本,不提供 SLA 或长期支持,适合家庭使用和小型团队,不适合生产环境。Collabora Online 是稳定版本,提供 Long Term Support、SLA 和经过签名的安全更新。关于资源规划,Collabora 的 FAQ 建议每个 CPU 线程支持 10 个用户,每个用户分配 50 MB RAM,系统另需 1 GB。
ONLYOFFICE Docs Community Edition 自版本 9.4 起不再限制连接数;该版本移除了原先同时打开 20 个文档的限制。其 Docker 要求页面改为提供资源规划档位:双核 2.8 GHz、4 GB RAM 的机器支持 100 到 200 个用户;四核机器支持 200 到 400 个用户。页面同时说明,实际数量取决于用户打开的文档大小和类型。应将这些数值视为供应商在特定条件下测得的容量上限。
哪个对 .docx 和 .xlsx 的处理更好?
ONLYOFFICE 可直接处理 Office Open XML(OOXML),因此 .docx 文件会以原始格式打开、编辑并写回。Collabora 底层使用 LibreOffice,其原生格式是 OpenDocument(ODF),因此每个 OOXML 文件打开时都要经过导入步骤,保存时还要经过导出步骤。两者都足以应对日常文档。差异会出现在使用 Microsoft Word 或 Excel 制作且包含复杂格式的文件中,通常表现为细微的布局变化,而不是数据丢失。
不要仅根据对比页面(包括本页面)得出结论。选择两个问题最严重的文件:一个包含修订,另一个包含数据透视表。分别在两个编辑器中打开、保存并下载,然后与原始文件进行对比。用20分钟完成这项测试,就能回答与你的文档相关的保真度问题,而这才是唯一有实际意义的问题。
如果只有一个人偶尔编辑文件,单机文件办公套件可以避免运行文档服务器。
许可证,以及付费版本的定位
ONLYOFFICE Docs Community Edition 根据 GNU AGPL v3 授权。自 9.4 版本起,该版本还附加了其他条款,要求提供归属信息和版权声明,并明确标注修改后的版本。该许可证不授予使用 ONLYOFFICE 商标的权利。Collabora Online 的源代码采用 Mozilla Public License 2.0 授权。两个项目都是开源项目,两家公司也都销售提供支持的构建版本。
免费构建版本所缺少的内容各不相同。Collabora 的免费构建版本在默认模式下没有上限,但缺少的是稳定性和支持:它是持续发布的开发版本,不提供 SLA。ONLYOFFICE 的免费构建版本没有上限,ONLYOFFICE 还销售 Enterprise 和 Developer 版本,提供支持及更多功能。对于家庭用户或小型团队,两个免费构建版本都足够使用。对于企业,应在规划部署前阅读许可证条款,因为 AGPL 义务和按用户计费是两个不同的问题,需要分别处理。
安装任一组件都只需一个容器
ONLYOFFICE Docs 绑定到回环地址,因为前置反向代理会终止 TLS(传输层安全):
sudo docker run -i -t -d -p 127.0.0.1:8081:80 --restart=always \
-e JWT_SECRET=replace_this_with_a_long_random_string \
onlyoffice/documentserver自行设置 JWT_SECRET。自 ONLYOFFICE Docs 7.2 起,JWT(JSON Web Token)签名默认启用;如果不提供密钥,容器会生成一个。重新创建容器时,自动生成的密钥可能会变化,随后连接器会停止工作,界面上也不会显示有用的错误信息。
首次启动可能需要几分钟。检查状态:
curl http://127.0.0.1:8081/healthcheck容器内的编辑器准备就绪后,该端点会返回 true。任何其他结果(包括 false)都表示应先读取容器中的 docker logs,再修改 Nextcloud 设置。
Collabora CODE:
docker run -t -d --name collabora --restart always \
-p 127.0.0.1:9980:9980 \
-e "aliasgroup1=https://cloud.example.com:443" \
-e "extra_params=--o:ssl.enable=false" \
collabora/codealiasgroup1 是此容器接受请求的 Nextcloud 地址列表,必须将端口包含在其中。设置 ssl.enable=false 后,coolwsd(Collabora 服务器进程)会在容器内使用明文 HTTP 通信,因为前置反向代理负责 TLS。检查状态:
curl http://127.0.0.1:9980/hosting/capabilities
curl http://127.0.0.1:9980/hosting/discovery第一个请求返回 JSON,第二个请求返回 XML。连接被拒绝表示容器仍在启动,或容器已经退出,因此请读取 docker logs collabora。
连接编辑器与 Nextcloud
对于 Collabora,安装 Nextcloud Office 应用,打开“管理设置”,然后进入“Office”,选择使用自有服务器的选项,并填写用户浏览器可以访问的地址,例如 https://office.example.com。Nextcloud 负责存储文件,Collabora 通过 WOPI(Web 应用开放平台接口)获取文件,因此必须确保以下 4 条独立的网络路径均可用:
- 浏览器可以访问 Nextcloud。
- 浏览器可以访问 Collabora 服务器。
- Nextcloud 可以访问 Collabora 服务器。
- Collabora 可以访问 Nextcloud。
手动测试最后两条路径。在 Nextcloud 服务器上执行 curl https://office.example.com/hosting/capabilities,应输出 JSON。在 Collabora 容器内执行 curl https://cloud.example.com/status.php,应输出 Nextcloud 的状态 JSON。哪条命令失败,就修复对应的网络路径。
对于 ONLYOFFICE,安装连接器应用,然后在其设置中填写 ONLYOFFICE Docs 地址和密钥。密钥必须与 JWT_SECRET 完全一致。如果容器自行生成了密钥,请在容器内从 /etc/onlyoffice/documentserver/local.json 读取,位置在 services.CoAuthoring.secret.inbox.string 下。然后进入 Nextcloud 目录,以 Web 服务器用户身份运行:
php occ onlyoffice:documentserver --check命令会确认连接成功,或输出连接器遇到的错误。这样比查看浏览器控制台更快。两个连接器还提供高级字段,用于浏览器访问地址与服务器到服务器的访问地址不同时的情况。例如,Nextcloud 通过专用网络访问编辑器时,就需要使用这些字段。请填写相应地址,不要让内部流量绕到公网地址后再返回。
反向代理后编辑功能失效的原因
几乎所有“无法打开”的报告都属于以下情况之一。
协议不匹配。 Nextcloud 使用 https,而办公服务器地址配置为 http 时会失败,因为浏览器拒绝在安全页面中加载不安全的框架。两者都使用 https。
缺少 Collabora 的代理规则。 代理必须将 /browser、/hosting/discovery、/hosting/capabilities、/cool、/cool/adminws 以及 /cool/(.*)/ws 上的 WebSocket 连接转发到端口 9980。缺少 WebSocket 规则时,文档框架会加载,然后保持空白,因为编辑器加载后会立即打开 WebSocket,但始终收不到响应。
aliasgroup1 配置错误。 容器会拒绝来自未配置地址的请求,并在 docker logs collabora 中记录 No acceptable WOPI hosts found。该值必须与用户输入的 Nextcloud URL 完全一致,包括端口。
Nextcloud 拒绝访问本地地址。 Nextcloud 默认会阻止发往本地和私有地址的出站请求,日志行显示为 Host violates local access rules。如果编辑器确实只能通过本地地址访问,请在 config.php 中设置 'allow_local_remote_servers' => true。
WOPI 允许列表范围过窄。 Nextcloud 的 Office 设置包含 WOPI 请求允许列表,用于限制可获取文件的地址。启用该设置是合理的,但容器使用新 IP 地址重新启动后,也可能因此导致编辑功能失效。如果文档在重建后立即停止打开,先检查此字段。
ONLYOFFICE 无法下载文件。 连接器报告 Error while downloading the document file to be converted.。文档服务器被要求从 Nextcloud 获取文件,但无法完成请求:Nextcloud 提供的地址无法从其容器内部访问,或者 Nextcloud 提供了文档服务器不接受的证书,或者密钥不匹配。使用 docker exec 从容器内部对该确切 URL 运行 curl,通常一行输出就能说明原因。
2 GB 和 4 GB 实际能运行什么
在 2 GB 内存上,运行 Nextcloud 和内置的 CODE 应用即可,不要再运行其他组件。它比独立服务器更慢,首次打开大型电子表格可能需要几秒,并且完全不需要配置代理。对于一个家庭来说,这是合适的方案。
在 4 GB 内存上,运行 Nextcloud 和独立的 CODE 容器,并配置 swap,避免突发负载导致服务器宕机。从这个配置开始,文档编辑的体验才会比较正常。
如果要在 Nextcloud 旁边运行 ONLYOFFICE Docs,应准备 6 到 8 GB 内存,或者为 Docs 配置一台独立的小型服务器。其 4 GB 最低要求仅适用于文档服务器本身,因此在 4 GB 服务器上与 Nextcloud 共享资源时,只要进行实际使用就会触发 swap。
应避免在小型 VPS 上部署 DocSpace。其官方公布的脚本安装最低要求是 8 GB 内存和 4 个 CPU 核心,推荐配置为 12 GB 内存和 6 个核心。一个广泛引用的服务商教程仍使用厂商安装脚本,在 8 GB 实例上部署 DocSpace。该配置虽然达到最低要求,但没有任何余量,低于推荐配置,而且回答的不是你提出的那个问题。按照教程操作前,先确认教程实际安装了什么;还要确认教程引用的要求最近一次是什么时候根据厂商页面核对的。安装脚本也只是其中一种方式。Docs 和 CODE 都是由你自行启动、停止和删除的单个容器,比使用安装脚本部署整套组件更容易理解和管理。
如果你想了解小型服务器究竟适合托管哪些服务,请参阅2026 年值得自行托管的服务,其中列出了一个简要清单。
FAQ
Nextcloud 使用 OnlyOffice 还是 Collabora 更好?
通常不能一概而论,内存往往是决定因素。Collabora 的最低内存要求是其快速入门文档公布的 1 GB;免费 CODE 构建在默认模式下没有文档数量或连接数限制,但 Collabora 将其定位为家庭用户和小型团队使用,而不是生产环境。ONLYOFFICE Docs 除 Nextcloud 自身需求外,还需要 4 GB;自版本 9.4 起不再限制连接数,并且可直接处理 .docx 和 .xlsx,因此能更好地保留 Microsoft Office 格式。小型 VPS 选择 Collabora。如果团队全天使用 Office 格式,并且可以为编辑器单独分配内存,则选择 ONLYOFFICE。
在 Nextcloud 中编辑文档需要多少 RAM?
使用 Nextcloud 内置的 CODE 服务器应用时,2 GB 即可,因为该应用运行在 Nextcloud 安装中,而不是作为第二个服务运行。Nextcloud 加独立的 Collabora CODE 容器时,4 GB 内存较为充足。ONLYOFFICE Docs 单独运行文档服务器时公布的最低要求是 4 GB。因此,与 Nextcloud 共用一台服务器时,应准备 6 到 8 GB;也可以将其部署到单独的服务器上。
为什么文档框架打开后一直空白?
编辑器通过 HTTPS 加载,随后建立 websocket,因此空白框架通常表示 websocket 从未连接成功。对于运行在 nginx 后的 Collabora,请确认代理转发了 /cool/(.*)/ws,并带有连接升级请求头,同时确认 /browser、/hosting/discovery 和 /hosting/capabilities 也已转发。然后查看容器中的 docker logs:No acceptable WOPI hosts found 表示 aliasgroup1 的值与浏览器访问的 Nextcloud 地址不匹配,其中也包括端口。
在 Nextcloud 中编辑文件需要 ONLYOFFICE DocSpace 吗?
不需要。DocSpace 是一个独立的工作区,拥有自己的界面和用户帐户,Nextcloud connector 不会与它通信。Nextcloud 连接的是 ONLYOFFICE Docs,即文档服务器。DocSpace 为脚本安装公布的最低要求是 8 GB RAM 和 4 个 CPU 核心,并建议使用 12 GB。这也是一些安装指南让人误以为浏览器编辑需要大型服务器的原因。