
Office平替——ONLYOFFICE Document Server
背景
在项目过程中,通常存在需要多人同时编辑同一表格的需求。
以往的项目中,都是自己Copy一份自己的,最后再进行统合。一是容易在统合过程中容易粘贴错误,丢失数据;二是统合的过程比较浪费时间,影响效率。
因此现时代流行的协同办公很符合需求~
公司合作的飞书的确包括协同编辑的功能,但最大缺点是与Office的兼容性不佳,导出成Excel后,无论是单元格的大小排列还是单元格色调组合上,存在较明显的区别。其外,也需要考虑很多人员没有飞书的大背景。因此使用飞书来进行协同编辑不太合适。
以下文章为个人搭建的协同服务调查过程及自建方法:
过程中突然发现...飞书可能是内嵌并魔改了ONLYOFFICE?大概是花了钱吧。
注意!
注意!
以下版本务必注意使用一一对应的旧版本
拿最新版本忙活一个月没成功,血泪教训!
ONLYOFFICE 简介
ONLYOFFICE Document Server是一款功能强大且实用的在线办公套件,它集文本、电子表格和演示文稿的查看器与编辑器于一体
对常见的Office Open XML格式(如.docx、.xlsx、.pptx等)提供了全面的兼容性支持
而且还具备实时协作编辑功能,这使得团队成员能够在不同的地点同时对文档进行编辑操作,极大地提高了办公效率和协同工作的便捷性,为多人协作办公场景提供了有力的支持。
开源!
遵行GNUAGPL v.3开源协议
AGPL相较常见的MIT等开源协议要求较为严格
Google公司全球禁止开发过程中使用AGPL协议的软件,避免官司风险
如果运营商业软件,无论是 SaaS 还是软件分发,都需要考虑 AGPL 许可证的法律风险,需要向用户申明许可证并公开源代码。
如果是企业内部软件,那么无需过多担心法律风险,无论是使用还是修改而衍生的软件产品,其面向的用户是企业内部用户,即使需要履行 AGPLv3 许可,也只面对企业内部员工,而不是将源代码公开到互联网,也就不存在商业敏感信息问题。
ONLYOFFICE 部署
支持平台
Linux、Windows、macOS、Android、iOS
下载镜像
docker pull onlyoffice/documentserver:7.4.0
部署容器
docker run -i -t -d -p 6060:80 --restart=always \
-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/db:/var/lib/postgresql --name onlyoffice --restart="always" onlyoffice/documentserver:7.4.0
JWT加密密码:JWT_SECRET=VI71S3cGtXg96HgFWzQhblz1KwMc1Jzk
测试是否部署成功
浏览器输入:
10.1.6.218:6060
新建简单用例进行功能试用
终端执行:
sudo docker exec 4b32123ad308 sudo supervisorctl start ds:example
sudo docker exec 4b32123ad308 sudo sed 's,autostart=false,autostart=true,' -i /etc/supervisor/conf.d/ds-example.conf
执行后点击「GO TO TEST EXAMPLE」
即可在临时的前端画面进行试用
注意:这里只是试用,这个前端画面是临时的,即ONLYOFFICE无法单独使用,不可直接用于生产环境,还需配合其他工具——
除了web直接使用example,常规的有两种方式有两种。
⭕️集成到其他平台
可以通过即用型连接器,将 ONLYOFFICE 文档或协作空间集成到常用平台中,例如DzzOffice,WordPress,Nextcloud,Zoom等。当然并不局限于这些,覆盖的可接入平台非常多。目前使用比较多的有Nextcloud和DzzOffice。
也更建议大家使用这种方式,省时省力,一般来说输入个 ONLYOFFICE 的服务访问地址即可,例如 NAS_IP:8898 这种。
获取连接密钥
将首页显示的命令输入到Linux的终端中:
sudo docker exec 6e4f47e555c0 /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
将显示出来的密钥记录下来,一会儿连携NextCloud时需要用。
⭕️使用 ONLYOFFICE 的 API
ONLYOFFICE 提供了丰富的 API,允许开发者通过编程接口控制文档创建、编辑、保存等操作,将其嵌入到项目或网页中。具体的文档可以在下图的欢迎界面点击跳转。
不过具体该怎么设置,有兴趣有能力的可以自行研究分享。
配置文件
http://10.1.6.218:6060/web-apps/apps/api/documents/api.js
将ONLYOFFICE集成到 NextCloud 中
NextCloud部署
下载镜像
docker pull nextcloud:23.0.0
部署容器
docker run -d \
-v /root/nextcloud/html:/var/www/html \
-v /root/nextcloud/apps:/var/www/html/custom_apps \
-v /root/nextcloud/config:/var/www/html/config \
-v /root/nextcloud/nextcloud/data:/var/www/html/data \
-v /root/nextcloud/themes:/var/www/html/themes \
-p 7777:80 --name nextcloud --restart="always" nextcloud:23.0.0
访问
10.1.6.218:7777
正常注册管理员账号
建议使用MySQL作为数据库,如果懒的话暂时可以使用SQLite,但不安全,可能会丢失数据。
NextCloud配置完成后,需要添加Onlyoffice的插件才能进行配置,进行连携——
访问此NextCloud官方插件网站
下载23 - 7.4.8 - 23版本
解压后复制到Nextcloud的路径/var/www/html/custom_apps \对应映射在Linux的路径/root/nextcloud/apps之中
重启Nextcloud服务器,即可在服务端的设置面板中找到安装好的插件
输入Onlyoffice的IP及端口,并将上文中获取的密钥添加。保存
再次重启Nextcloud服务器
导入并打开任意文档,即可分享并进行协同编辑
Dzzoffice部署
下载并部署
部署途中把环境干崩了。。。。Dzzoffice的下回再说吧