ONLYOFFICE Docs (原 ONLYOFFICE Document Server) 是一款强大的开源在线办公套件,包含用于文本、电子表格和演示文稿的查看器和编辑器,完全兼容 Office Open XML 格式(.docx、.xlsx、.pptx),并支持实时协作编辑。本文将指导你如何使用 Docker 快速部署 ONLYOFFICE Docs 社区版,轻松搭建自己的在线办公平台。
ONLYOFFICE Docs 简介
ONLYOFFICE Docs 提供类似微软 Office 的在线编辑体验,你可以用它创建和编辑文档、电子表格和演示文稿。它支持实时协作编辑,方便团队协同工作。此外,ONLYOFFICE Docs 还支持丰富的格式,包括 DOC、DOCX、TXT、ODT、RTF、ODP、EPUB、ODS、XLS、XLSX、CSV、PPTX 和 HTML 等。
ONLYOFFICE Docs 可以与 ONLYOFFICE Workspace 集成,也可以与第三方同步和共享解决方案(例如 Nextcloud、ownCloud、Seafile)集成,在其界面内启用文档预览和协作编辑功能。
服务器准备
在开始部署之前,请确保你的系统满足以下最低要求:
- 内存: 4 GB 或以上
- CPU: 双核 2 GHz 或以上
- 交换空间: 至少 2 GB
- 硬盘空间: 至少 2 GB 可用空间
- 操作系统: 64 位 Linux 发行版(例如 CentOS、Debian、Ubuntu 等),内核版本 3.8 或更高版本
- Docker: 版本 1.9.0 或更高版本 (推荐最新版)
我将会以 雨云 为例,带大家创建一台自己的云服务器,以便尝试本篇文章的内容。
注册链接: https://www.rainyun.com/NTEzMTM1_?s=blog
创建云服务器
以下内容只是参考,具体按照自己的需求选择配置即可。
点击“云产品”→“云服务器”→“立即购买”。
建议选择距离你较近的区域,以降低延迟。
选择配置。
选择 Ubuntu 22.04 版本,勾选预装 Docker 最新版。
点击“立即购买”,并完成后续购买流程。购买完成后,等待服务器部署完毕,进入管理面板,找到远程连接信息。
使用 PowerShell 进行远程连接:输入 ssh root@你的服务器IP
(例如 ssh root@154.9.227.239
),首次连接需输入 yes
,然后回车即可登录。
到这里,我们的服务器就创建完毕,并且能够远程 SSH 访问了。
Docker 部署教程
1. 运行 Docker 镜像
最简单的部署方式是直接运行 ONLYOFFICE Docs 的 Docker 镜像:
sudo docker run -i -t -d -p 80:80 onlyoffice/documentserver
该命令将在端口 80 上运行 ONLYOFFICE Docs。
2. 数据持久化
为了避免数据丢失,建议将容器内的数据目录挂载到主机目录。以下命令将 ONLYOFFICE Docs 的日志、数据、缓存和数据库目录挂载到主机:
sudo docker run -i -t -d -p 80:80 \-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \-v /app/onlyoffice/DocumentServer/rabbitmq:/var/lib/rabbitmq \-v /app/onlyoffice/DocumentServer/redis:/var/lib/redis \-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql onlyoffice/documentserver
请根据实际情况修改主机目录路径。
3. 端口配置
你可以使用 -p
参数修改 ONLYOFFICE Docs 的端口。例如,要将 ONLYOFFICE Docs 运行在 8080 端口,可以使用以下命令:
sudo docker run -i -t -d -p 8080:80 onlyoffice/documentserver
4. HTTPS 配置
为了提高安全性,建议使用 HTTPS 访问 ONLYOFFICE Docs。 你可以使用 Let’s Encrypt 自动生成和更新证书:
sudo docker run -i -t -d -p 80:80 -p 443:443 \-e LETS_ENCRYPT_DOMAIN=your_domain -e LETS_ENCRYPT_MAIL=your_mail onlyoffice/documentserver
请将 your_domain
和 your_mail
替换为你的域名和邮箱地址。
你也可以手动生成自签名证书,并将其放置在 /app/onlyoffice/DocumentServer/data/certs/
目录下。
环境变量
ONLYOFFICE Docs 提供了丰富的环境变量,可以用于自定义配置。以下列举一些常用的环境变量:
环境变量 | 说明 | 默认值 |
---|---|---|
ONLYOFFICE_HTTPS_HSTS_ENABLED | 是否启用 HSTS | true |
SSL_CERTIFICATE_PATH | SSL 证书路径 | /var/www/onlyoffice/Data/certs/tls.crt |
SSL_KEY_PATH | SSL 密钥路径 | /var/www/onlyoffice/Data/certs/tls.key |
DB_TYPE | 数据库类型 | postgres |
JWT_ENABLED | 是否启用 JWT 验证 | true |
JWT_SECRET | JWT 密钥 | 随机值 |
更多环境变量请参考官方文档的 “Available Configuration Parameters” 部分。
集成到 Cloudreve 中
由于 Cloudreve 需要 ONLYOFFICE 开启 WOPI_ENABLED
,可在创建容器时指定 WOPI_ENABLED
为 true
来开启:
docker run -i -t -d -p 8080:80 -e WOPI_ENABLED=true onlyoffice/documentserver
创建好容器后,可以手动访问 http://your_server_ip:8080
查看是否启动完毕。
在 Cloudreve 中设置
Cloudreve 的部署,可以参考我这篇文章 : https://blog.csdn.net/weixin_53510183/article/details/143416437
在 后台 - 参数设置 - 图像与预览 - 文件预览 - WOPI 客户端 中开启 “使用 WOPI” 并在 “WOPI Discovery Endpoint” 中填入 http://<你的服务主机>/hosting/discovery
。保存后可在前台测试文档预览和编辑:
集成到 Seafile
Seafile 的部署,可以参考我这篇文章 : https://blog.csdn.net/weixin_53510183/article/details/143625005
正常按照部署教程使用 Docker 部署即可。
设置 OnlyOffice 自动保存
使用 OnlyOffice 打开文件时,OnlyOffice 只会在用户关闭页面后向 Seafile 发送文件保存请求。如果用户长时间未关闭页面,则用户对文件的更改将不会及时保存在 Seafile 上。
您可以通过更改 OnlyOffice 的配置来设置自动保存。
-
进入到
onlyoffice/documentserver
容器中; -
打开 OnlyOffice 的配置文件:
/etc/onlyoffice/documentserver/local.json
-
添加以下配置信息:
{"services": {"CoAuthoring": {"autoAssembly": {"enable": true,"interval": "5m"}}} }
-
重启 OnlyOffice:
supervisorctl restart all
配置 Seafile 服务
添加以下配置信息到 seahub_settings.py
。
# Enable Only Office
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = False
ONLYOFFICE_APIJS_URL = 'http://your_OnlyOffice_server/web-apps/apps/api/documents/api.js'
ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx', 'pptx', 'xlsx')
ONLYOFFICE_JWT_SECRET = 'your-secret-string' # 自定义secret
修改 your_OnlyOffice_server
为你自己的 ONLYOFFICE 服务器 IP 或域名。
然后重启 Seafile 和 Seahub 服务:
./seafile.sh restart
./seahub.sh restart
或者:
service seafile-server restart
service seahub restart
最后,当你点击一个文档应该会看到一个新的预览页面。
相关链接
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTEzMTM1_?s=blog
面试鸭:https://mianshiya.com/?shareCode=sq29yv
我的博客:https://blog.ivwv.site