前言
OnlyOffice 是一款开源的在线办公套件,遵循 AGPL 3.0 许可证,支持文档、表格和演示文稿以及PDF格式的在线查看以及编辑功能,兼容 Microsoft Office 和 OpenDocument 格式。它常用于私有化部署,实现企业级的文档协作功能。
本文将介绍如何通过 Docker 快速部署 OnlyOffice,并结合 OpenList 或 AList,实现本地或云端文件的在线预览,打造高效便捷的文件管理与办公平台。
关于nextcloud网盘-配合onlyoffice使用可以参考之前的教程
最近飞牛官方也支持在线的文档预览功能,其使用的就是基于OnlyOffice的方案
界面
以下是openlist接入OnlyOffice的一些文档预览
Word
Exlce
PPT
部署方法
使用Docker安装
本教程使用docker和docker-compose的方式安装部署
准备条件
1)一台服务器
我们使用VPS来演示
需要vps的可以看以下信息
莱卡云官网
2)本项目使用到的github
https://github.com/ONLYOFFICE/DocumentServer
目前已经5.5kstars
了解更多可以访问GitHub
3)域名(可选)
域名可以根据自己的需求绑定,
注意如果使用域名的话openlist和onlyoffice都要使用域名加证书
不然openlist中需要全屏才能预览文件
4) 配置文件
先提前下载好配置文件后面会用到-验证码78sg
附件下载完解压是2个配置文件
《vps上搭建》
一、Docker环境部署
在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04
推荐直接用一键脚本
docker安装脚本
bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)
docker-compose安装脚本
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
二、创建docker-compose.yml文件
mkdir onlyoffice;cd onlyoffice#创建一个目录,并进入此目录
mkdir html #再创建一个目录
然后将刚才下载好的view.html文件里面的ip和端口改为自己onlyoffice的ip和端口之后,
在将此文件放入此目录
然后再进入到刚才创建好的onlyoffice目录
将nginx.conf文件直接放入此目录
即可
然后再新建docker-compose.yml
vim docker-compose.yml
services: # 定义所有服务
onlyoffice: # 服务名称:onlyoffice
image: onlyoffice/documentserver:latest # 使用 ONLYOFFICE 官方文档服务镜像,latest 表示最新版本
container_name: oo # 设置容器名称为 oo
restart: always # 设置容器异常退出时自动重启
ports:
- "8123:80" # 映射宿主机8123端口到容器的80端口,供外部访问
volumes:
- ./onlyoffice/logs:/var/log/onlyoffice # 映射日志目录,方便查看和持久化日志
- ./onlyoffice/data:/var/www/onlyoffice/Data # 映射数据目录,保存用户文档数据等
- ./onlyoffice/lib:/var/lib/onlyoffice # 映射ONLYOFFICE内部使用的数据目录
- ./onlyoffice/db:/var/lib/postgresql # 映射PostgreSQL数据库数据目录,防止数据丢失
environment:
- JWT_ENABLED=false # 是否启用JWT鉴权,false表示关闭,true表示开启(建议生产环境开启)
- JWT_SECRET=mysecret # 设置JWT密钥,仅在开启鉴权(JWT_ENABLED=true)时有效,建议使用强随机值
nginx: # 定义 nginx 服务
image: nginx:latest # 使用最新版本的 Nginx 镜像
container_name: nginx_server # 容器名称
ports:
- "8080:80" # 映射宿主机端口 8080 到容器的 80 端口
volumes:
- ./html:/usr/share/nginx/html # 将本地 html 目录挂载到 Nginx 默认网页目录
- ./nginx.conf:/etc/nginx/nginx.conf # 使用本地配置文件覆盖默认配置(可选)
restart: always # 容器退出后自动重启
三、执行容器运行命令
docker-compose up -d #运行容器
docker-compose ps #查看是否开启成功
正常启动如下所示
docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
nginx_server nginx:latest "/docker-entrypoint.…" nginx 18 hours ago Up 18 hours 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp
oo onlyoffice/documentserver:latest "/app/ds/run-documen…" onlyoffice 18 hours ago Up 18 hours 443/tcp, 0.0.0.0:8123->80/tcp, [::]:8123->80/tcp
此时正常启动2个容器一个nginx一个onlyoffice
四、打开web页面使用
成功以后需要打开自己相应的端口(防火墙就可以web端访问了
打开自己VPS的ip加端口在加路径就可进入初始化页面
4.1onlyoffice服务
http://ip:8123
显示这样就是正常的
4.2Nginx服务
http://ip:8080
显示403没问题
五、在openlist或者alist配置
我们依次打开-设置-预览-Iframe 预览
{
"doc,docx,xls,xlsx,ppt,pptx": {
"OnlyOffice":"http://192.253.238.40:8080/view.html?src=$e_url",
"Microsoft":"https://view.officeapps.live.com/op/view.aspx?src=$e_url",
"Google":"https://docs.google.com/gview?url=$e_url&embedded=true"
},
"pdf": {
"OnlyOffice":"http://192.253.238.40:8080/view.html?src=$e_url",
"PDF.js":"https://alist-org.github.io/pdf.js/web/viewer.html?file=$e_url"
},
"epub": {
"EPUB.js":"https://alist-org.github.io/static/epub.js/viewer.html?url=$e_url"
}
}
doc,docx,xls,xlsx,ppt,pptx和pdf中分别
添加以下代码保存即可(ip和端口为自己部署的nginx服务的ip和端口)
"OnlyOffice":"http://192.253.238.40:8080/view.html?src=$e_url",
六、绑定域名
如需绑定域名的自行绑定
绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch
绑定完域名配置好证书就可以用域名来访问了
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
欢迎关注我们的微信公众号!
评论区