大家好,我是羊刀仙。
本期带来的是开源办公套件 ONLYOFFICE 社区版的 NAS Docker 部署教程。仅需一台NAS(适用于 64 位 ARM 架构),无需额外费用即可实现在线编辑、协同办公等诸多功能,并且无广告。
介绍
ONLYOFFICE目前应该是使用率仅次于微软Microsoft 365的办公套件。
正如图中所看到的,ONLYOFFICE 文档服务器是一个在线办公套件,目前全平台覆盖支持,可直接下载软件或通过各类方式安装使用。
其包含文本、电子表格、PDF和演示文稿的查看器和编辑器,完全兼容 Office Open XML 格式:.docx、.xlsx、.pptx,支持所有流行格式:DOC、DOCX、TXT、ODT、RTF、ODP、EPUB、ODS、XLS、XLSX、CSV、PPTX、HTML,并支持实时协作编辑。
协同、实时工作记录,所有常用功能都十分齐全。
word转PDF转图片,excl转PDF转图片等,各类文档间的互相转换。
还具备特色功能,支持海量好用插件:chatgpt、代码高亮、快速翻译、Markdown编辑、图标编辑等。
值得说的点不要太多,建议有办公套件需求的朋友去亲身体验。
部署流程
以威联通NAS为例,使用Container Station通过Docker Compose进行部署。
打开文件总管,准备文件夹,命名为onlyoffice
。
打开Container Station,创建新的应用程序。
代码如下,除了文件映射部分/share/Container/onlyoffice
改成你自己的,其他地方都没啥:
version: '3'
services:
onlyoffice-documentserver:
image: onlyoffice/documentserver:latest
container_name: onlyoffice-documentserver
depends_on:
- onlyoffice-postgresql
- onlyoffice-rabbitmq
environment:
- DB_TYPE=postgres
- DB_HOST=onlyoffice-postgresql
- DB_PORT=5432 # PostgreSQL 数据库使用的端口是 5432
- DB_NAME=onlyoffice
- DB_USER=onlyoffice
- AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq
# Uncomment strings below to enable the JSON Web Token validation.
- JWT_ENABLED=true
- JWT_SECRET=AllM5A3qSjoLFXdCYorYi4F5MDjlb13p # 这里部署完了可以手动生成
- JWT_HEADER=Authorization
#- JWT_IN_BODY=true
ports: # 将主机的端口 80 和 443 映射到容器,分别用于 HTTP 和 HTTPS 访问,冒号左侧可自行修改
- '8898:80'
- '8899:443'
stdin_open: true
restart: always
stop_grace_period: 60s
volumes:
- /share/Container/onlyoffice/Data:/var/www/onlyoffice/Data
- /share/Container/onlyoffice/log:/var/log/onlyoffice
- /share/Container/onlyoffice/cache:/var/lib/onlyoffice/documentserver/App_Data/cache/files
- /share/Container/onlyoffice/public_files:/var/www/onlyoffice/documentserver-example/public/files
- /share/Container/onlyoffice/fonts:/usr/share/fonts
onlyoffice-rabbitmq:
container_name: onlyoffice-rabbitmq
image: rabbitmq
restart: always
expose:
- '5672'
onlyoffice-postgresql:
container_name: onlyoffice-postgresql
image: postgres:12
environment:
- POSTGRES_DB=onlyoffice
- POSTGRES_USER=onlyoffice
- POSTGRES_HOST_AUTH_METHOD=trust
restart: always
expose:
- '5432'
volumes:
- /share/Container/onlyoffice/postgresql_data:/var/lib/postgresql
volumes:
postgresql_data:
按照上文,部署完毕后,web输入NAS_IP:8898即可访问到服务。
接着打开ssh工具,连接NAS,依次输入上图所示内容。
sudo docker exec 3ed14b9b80d3 sudo supervisorctl start ds:example
sudo docker exec 3ed14b9b80d3 sudo sed 's,autostart=false,autostart=true,' -i /etc/supervisor/conf.d/ds-example.conf
3ed14b9b80d3
其实就是onlyoffice的镜像ID,不过自动帮咱们列出来了,所以直接复制命令行即可。中间会要求输入NAS密码,需要盲打。具体如下图所示。
此时web输入 NAS_IP:8898/example/ 便可访问到实例并进行使用。
反向代理
若要实现HTTPS安全外网访问,则需要我们进行反向代理并配置SSL证书。我们借助Lucky来一并实现,Lucky的部署使用教程参考往期文章。
文章链接:
具体子规则配置如下图所示。
我的Lucky监听端口为8880,如上图配置,web我们输入 https://office.xxx.xyz:8880/example/ 即可。
至此我们私有化的服务就已经部署好,可以进行使用。
关于使用
除了web直接使用example,常规的有两种方式有两种。
集成到其他平台
可以通过即用型连接器,将 ONLYOFFICE 文档或协作空间集成到常用平台中,例如DzzOffice,WordPress,Nextcloud,Zoom等。当然并不局限于这些,覆盖的可接入平台非常多。目前使用比较多的有Nextcloud和DzzOffice。
也更建议大家使用这种方式,省时省力,一般来说输入个 ONLYOFFICE 的服务访问地址即可,例如 NAS_IP:8898 这种。
使用 ONLYOFFICE 的 API
ONLYOFFICE 提供了丰富的 API,允许开发者通过编程接口控制文档创建、编辑、保存等操作,将其嵌入到项目或网页中。具体的文档可以在下图的欢迎界面点击跳转。
不过具体该怎么设置,这完全是我的盲区,有兴趣有能力的朋友可以自行研究分享。
评论区