Docker搭建 Collabora Online 和 OnlyOffice 作者: Hogwarts 发布于: 2023-06-16 更新于: 2023-06-20 分类: 默认分类 可道云已经不支持在线打开word文档功能了。改换Cloudreve。但使用中发现新出的3.8.0版本也不支持预览功能了,3.7.1版本倒是还能使用。参看Cloudreve的文档用Docker分别搭建了Collabora Online和OnlyOffice,并成功运行。最好在2H2G的机器测试,1H1G的吃不消。 #一、Collabora Online ##1.1 Docker运行命令 docker pull collabora/code docker run -t -d -p 127.0.0.1:9980:9980 \ -e "aliasgroup1=https://cloudreve.yourdomain.com:443" \ -e "username=yourname" \ -e "password=yourpassword" \ --name office --restart always collabora/code 1、cloudreve.yourdomain.com 为搭建cloudreve使用的反代域名。 2、实测-e选项中的`aliasgroupN`可以运行多个有需求的域名。 ##1.2 Nginx反代示例 server { listen 443 ssl; server_name office.yourdomain.com; error_log /var/log/nginx/office.error.log; access_log /var/log/nginx/office.access.log; ssl_certificate /path/to/certificate; ssl_certificate_key /path/to/key; # static files location ^~ /browser { proxy_pass https://127.0.0.1:9980; proxy_set_header Host $http_host; } # WOPI discovery URL location ^~ /hosting/discovery { proxy_pass https://127.0.0.1:9980; proxy_set_header Host $http_host; } # Capabilities location ^~ /hosting/capabilities { proxy_pass https://127.0.0.1:9980; proxy_set_header Host $http_host; } # main websocket location ~ ^/cool/(.*)/ws$ { proxy_pass https://127.0.0.1:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } # download, presentation and image upload location ~ ^/(c|l)ool { proxy_pass https://127.0.0.1:9980; proxy_set_header Host $http_host; } # Admin Console websocket location ^~ /cool/adminws { proxy_pass https://127.0.0.1:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } } ##1.3 查看 XML 响应 https://office.yourdomain.com/hosting/discovery #二、OnlyOffice ##2.1 使用 HTTP ###2.1.1 Docker运行命令 docker run -i -t -d -p 8080:80 -e WOPI_ENABLED=true onlyoffice/documentserver ###2.1.2 查看 XML 响应 http://yourIP:8080/hosting/discovery ##2.2 使用 HTTPS 运行 ~~待续。~~PS其实是没搞定。 ###2.2.1 前期说明 ####2.2.1.1 数据都存储在专门目录问题 /var/log/onlyoffice对于ONLYOFFICE 文档日志 /var/www/onlyoffice/Data/certs证书 /var/lib/onlyoffice用于文件缓存 /var/lib/postgresql对于数据库 这几个目录仅做了日志和证书目录,其实日志目录应该也没啥用,因为看不懂。 将日志和证书目录映射到本地并将证书和密钥放入。 ####2.2.1.2将证书密钥放入指定目录中 mkdir -p /app/onlyoffice/DocumentServer/data/certs/ cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/ cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/ chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key **注意:crt和key的命名都为onlyoffice。** ###2.2.2 Docker启动命令 docker run -i -t -d -p 8443:443 --restart=always \ -e WOPI_ENABLED=true -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=false --name onlyoffice onlyoffice/documentserver 其中: 1、WOPI_ENABLED=true 这是必须的。 2、JWT_SECRET=false 也可以自行设置。其它网盘可能需要。 ###2.2.3 重启容器 docker exec -it [容器id] /bin/bash -c "supervisorctl restart all" ###2.2.4 查看XML响应 https://onlyoffice.yourdomain.com:8443/hosting/discovery ##2.3 实测效果 1. Onlyoffice没有限制请求,任何知道XML响应地址都可使用。可用防火墙进行限制。PS:三级域名那么复杂应该没事。 1. 反代还没搞定,好像挺复杂。所以没有运行`127.0.0.1: port:port`格式。 加 `--network host` 直接就运行失败了。所以这还有个Docker的端口问题。 1. 80和443好像是写死的样子。 #三、Cloudreve 预览编辑扩展 后台 - 参数设置 - 图像与预览 - 文件预览 - WOPI 客户端 中开启 使用 WOPI 并在 WOPI Discovery Endpoint 中填入<你的服务主机>/hosting/discovery,即XML响应的地址。 #四、使用感受 - 个人还是偏向Onlyoffice一点点,界面清爽。 libreoffice有点傻大笨粗的感觉。 - Onlyoffice的字体对汉字支持不大友好,可能需要安装常用字体。本人仅仅是使用预览功能,不大适应在线编辑,故影响不大。 - 字体安装可参考:[onlyoffice7.x 添加中文字体和中文字 (40 款字体)-word excel ppt 在线编辑、协同办公](https://blog.cyida.com/2023/onlyoffice-alter.html "onlyoffice7.x 添加中文字体和中文字 (40 款字体)-word excel ppt 在线编辑、协同办公") #五、参考 [Cloudreve 官方文档 扩展文档预览/编辑](https://docs.cloudreve.org/use/wopi "Cloudreve扩展文档预览/编辑") [Collabora Online Docker 安装指南](https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html "Collabora Online 安装指南") [Collabora Online 代理设置](https://sdk.collaboraonline.com/docs/installation/Proxy_settings.html "Collabora Online 代理设置") [Onlyoffice Github](https://github.com/ONLYOFFICE/Docker-DocumentServer "Onlyoffice Github") [Onlyoffice Docker文档](https://helpcenter.onlyoffice.com/installation/docs-developer-install-docker.aspx "Onlyoffice Docker文档") 标签: docker, cloudreve, collaboraonline, onlyoffice, office