【实用Docker项目】开源协同办公套件-Dzzoffice
本文最后更新于 2024-05-17,
若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。
本站只有Telegram群组为唯一交流群组, 点击加入
文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请
前言
在单位工作的时候网络环境都是内网,有一天我们部门问我能不能实现在内网里面使用协同办公,因为有他们有多人填写表格的需求,在填写的时候需要实时编辑修改。如果每个人都要编辑完再发送给他人编辑就非常影响工作效率。并且还需要是免费或者开源的产品在小范围使用。于是我便了解到了这款开源办公的Dzzoffice,它能够满足简单的协同办公需求,能够进行人员的管理,权限控制,符合内网使用需求。但如果是互联网使用建议用大公司的产品,更加便利。
项目地址: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安装界面
- 按照提示填写完所需信息,点击下一步完成安装
- 配置管理员信息,密码
完成后进入登录界面。
应用安装(应用市场)
由于是内网使用,无法在线下载安装包,所以需要使用能够访问互联网的设备将安装包下载后手动安装应用。
以office套件为例,下载完后为zip文件,将软件包解压之后拷贝至容器“/var/www/html/dzz”文件夹,再导入软件包中的xml文件即可。
协同办公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会冲突
安装、配置完后点击启用即可。
必须安装对应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套件端口号)
出现该内容后,复制sudo整段语句放到ssh内执行,得到密钥,将密钥填入套件的密钥栏内即可,其他参数自行配置
协同效果展示
反向代理
参考教程:安装及使用
⚠️Nginx Proxy Manager(以下简称NPM)会用到80、443端口,所以本机不能占用(比如原来就有Nginx)
互联网使用请确保完成了域名解析