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 或更高版本 (推荐最新版)
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://blog.ivwv.site