背景

在项目过程中,通常存在需要多人同时编辑同一表格的需求。

以往的项目中,都是自己Copy一份自己的,最后再进行统合。一是容易在统合过程中容易粘贴错误,丢失数据;二是统合的过程比较浪费时间,影响效率。

因此现时代流行的协同办公很符合需求~

公司合作的飞书的确包括协同编辑的功能,但最大缺点是与Office的兼容性不佳,导出成Excel后,无论是单元格的大小排列还是单元格色调组合上,存在较明显的区别。其外,也需要考虑很多人员没有飞书的大背景。因此使用飞书来进行协同编辑不太合适。

以下文章为个人搭建的协同服务调查过程及自建方法:

过程中突然发现...飞书可能是内嵌并魔改了ONLYOFFICE?大概是花了钱吧。



注意!

注意!

以下版本务必注意使用一一对应的旧版本

拿最新版本忙活一个月没成功,血泪教训!

ONLYOFFICE 简介

ONLYOFFICE Document Server是一款功能强大且实用的在线办公套件,它集文本、电子表格和演示文稿的查看器与编辑器于一体

对常见的Office Open XML格式(如.docx、.xlsx、.pptx等)提供了全面的兼容性支持

而且还具备实时协作编辑功能,这使得团队成员能够在不同的地点同时对文档进行编辑操作,极大地提高了办公效率和协同工作的便捷性,为多人协作办公场景提供了有力的支持。

开源!

https://github.com/ONLYOFFICE/DocumentServer

遵行GNUAGPL v.3开源协议

AGPL相较常见的MIT等开源协议要求较为严格

Google公司全球禁止开发过程中使用AGPL协议的软件,避免官司风险

如果运营商业软件,无论是 SaaS 还是软件分发,都需要考虑 AGPL 许可证的法律风险,需要向用户申明许可证并公开源代码。

如果是企业内部软件,那么无需过多担心法律风险,无论是使用还是修改而衍生的软件产品,其面向的用户是企业内部用户,即使需要履行 AGPLv3 许可,也只面对企业内部员工,而不是将源代码公开到互联网,也就不存在商业敏感信息问题。

https://www.onlyoffice.com/zh/home-use.aspx

ONLYOFFICE 部署

支持平台

Linux、Windows、macOS、Android、iOS


  1. 下载镜像

docker pull onlyoffice/documentserver:7.4.0

  1. 部署容器

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

  1. 测试是否部署成功

  2. 浏览器输入:

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部署

  1. 下载镜像

docker pull nextcloud:23.0.0
  1. 部署容器

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

  1. 访问

10.1.6.218:7777

正常注册管理员账号

建议使用MySQL作为数据库,如果懒的话暂时可以使用SQLite,但不安全,可能会丢失数据。

NextCloud配置完成后,需要添加Onlyoffice的插件才能进行配置,进行连携——

  1. 访问此NextCloud官方插件网站

https://apps.nextcloud.com/apps/onlyoffice

  1. 下载23 - 7.4.8 - 23版本

  1. 解压后复制到Nextcloud的路径/var/www/html/custom_apps \对应映射在Linux的路径/root/nextcloud/apps之中

  1. 重启Nextcloud服务器,即可在服务端的设置面板中找到安装好的插件

  1. 输入Onlyoffice的IP及端口,并将上文中获取的密钥添加。保存

  1. 再次重启Nextcloud服务器

  2. 导入并打开任意文档,即可分享并进行协同编辑


Dzzoffice部署

http://www.dzzoffice.com/

下载并部署

部署途中把环境干崩了。。。。Dzzoffice的下回再说吧

参考文献

ONLYOFFICE多人在线文档协作的部署与开发细节201803251.do