本文最后更新于 2024-05-17,

若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。

本站只有Telegram群组为唯一交流群组, 点击加入

文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请

前言

在单位工作的时候网络环境都是内网,有一天我们部门问我能不能实现在内网里面使用协同办公,因为有他们有多人填写表格的需求,在填写的时候需要实时编辑修改。如果每个人都要编辑完再发送给他人编辑就非常影响工作效率。并且还需要是免费或者开源的产品在小范围使用。于是我便了解到了这款开源办公的Dzzoffice,它能够满足简单的协同办公需求,能够进行人员的管理,权限控制,符合内网使用需求。但如果是互联网使用建议用大公司的产品,更加便利。

项目官网:https://dzzoffice.com/

项目地址:https://github.com/zyx0814/dzzoffice

DzzOffice 小胡版(官方已停更,此为魔改版):https://gitee.com/xiaohu2024/dzzoffice

安装Docker🐳

操作系统

本次搭建基于docker容器,使用系统ubuntu22.02

其实操作系统无所谓,使用Docker之后和操作系统的影响不是很大,容器化部署之后方便迁移和重新部署

因为内网环境无法拉取互联网内容,建议安装测试完成后将容器打包,迁移到内网设备中。或者将调试好的系统直接搬迁到内网环境中,例如虚拟机部署。

数据库

在docker官方镜像源上下载mysql数据库镜像,下载使用时Mysql数据库不一定非要使用最新版本的,要和DzzOffice适配,根据DzzOffice镜像的需求安装以下版本

sudo docker pull mysql:5.7.27
sudo docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root_password mysql:5.7.27

如需做数据持久化存储,可加参数-v $PWD:/var/lib/mysql挂载数据卷到宿主机上,避免容器删除数据丢失。

上面的密码和端口自己指定即可,和后面DzzOffice安装的时候保持一致即可

部署DzzOffice容器

sudo docker pull imdevops/dzzoffice    # 拉取镜像
sudo docker run -d --name dzzoffice -p 80:80 imdevops/dzzoffice:latest    # 创建容器

如需做数据持久化存储,可加参数-v $PWD:/var/www/html/data挂载数据卷到宿主机上,避免容器删除数据丢失。

注意:挂载数据卷后,需要使用命令docker exec -it dzzoffice bash 进入容器内,执行命令 chown -R www-data:www-data /var/www/html/data 给data目录读写权限

部署完毕后我们现在可以输入 http://ip/访问了。进入web安装界面

录制_2024_03_10_03_10_37_508_4.gif

image-feke.png

  • 按照提示填写完所需信息,点击下一步完成安装

image-mkrf.png

  • 配置管理员信息,密码

image-omao.png

完成后进入登录界面。

应用安装(应用市场)

由于是内网使用,无法在线下载安装包,所以需要使用能够访问互联网的设备将安装包下载后手动安装应用。

安装包下载地址

以office套件为例,下载完后为zip文件,将软件包解压之后拷贝至容器“/var/www/html/dzz”文件夹,再导入软件包中的xml文件即可。

录制_2024_03_10_03_50_44_718.gif

录制_2024_03_10_03_50_44_718_1.gif

image-wikv.png

协同办公OnlyOffice部署

Docker化的Onlyoffice需要配合DzzOffice对应插件使用(注意使用时不安装应用:Collabora Office、微软office预览、officeOnline、zoho)就是说不要安装其他Office应用会导致Onlyoffice无法正常使用

sudo docker pull onlyoffice/documentserver
sudo docker run -i -t -d -p 9000:80 onlyoffice/documentserver  # 创建容器,注意不要使用80端口和之前的dzzoffice会冲突

image-ynmx.png

image-fqpo.png

安装、配置完后点击启用即可。

image-pjxr.png

必须安装对应office套件才可以搭配OnlyOffice一起使用!

OnlyOffice版本须知

从7.2版本开始,JWT默认启用,如果不想密钥,请使用更低版本。

ONLYOFFICE 编辑器使用 Json Web Token (JWT),保护文档免遭未经授权的访问。在文档编辑器被初始化、以及在内部 ONLYOFFICE 文档服务之间交换命令时,这个令牌会被添加到配置中。会通过密钥对JWT进行签名,并根据向 ONLYOFFICE 文档发出的请求来验证该令牌。

自 ONLYOFFICE 文档 v.7.2 起,默认启用 JWT,并自动生成密钥。您可以随时按需更改相关参数。

为保护您的文档,您需要启用令牌验证并在 ONLYOFFICE 文档配置文件中指定您自己的密钥,然后在连接器设置中指定相同的密钥。

onlyoffice从7.2版本开始,默认情况下启用了JWT,就是加了个密钥,客户端和服务器同一个密钥才能使用,我们通常用docker安装,导致直接安装最新版了,而dzzoffice里的onlyoffice插件用的是还是旧版本,一个有密钥,一个没有,无法互通 所以就有下面那个提示了

解决方法

使用更新过的套件:下载地址,将文件上传至系统(同离线安装),将原来的套件内容删除并覆盖。进入套件配置,浏览器访问ip:9000(onlyoffice套件端口号)

image-jiyj.png

出现该内容后,复制sudo整段语句放到ssh内执行,得到密钥,将密钥填入套件的密钥栏内即可,其他参数自行配置

录制_2024_03_10_04_30_56_835_1.gif

协同效果展示

录制_2024_03_10_04_30_56_835.gif

反向代理

参考教程:安装及使用

⚠️Nginx Proxy Manager(以下简称NPM)会用到80、443端口,所以本机不能占用(比如原来就有Nginx)

互联网使用请确保完成了域名解析