群晖安装docker版nextcloud,onlyoffice(自签https),实现在线编辑

当前时间:
在这里插入图片描述

1 准备工作

1.1 用到的软件

a) 终端远程软件:putty、SecureCRT等;
b) 文本编辑软件:Notepad++、VSCode等。

1.2 部署环境

a) 群晖版本:7.1.1-42962 Update1;
b) 群晖套件:MariaDB 10、phpMyAdmin、Docker;
c) Docker镜像:linuxserver/nextcloud:latest(版本:24.0.5);
d) Docker镜像:onlyoffice/documentserver:latest(版本:7.2.0.204);
e) 路由器配置:端口映射+DDNS。

2 搭建过程

2.1 部署MariaDB 10套件

a) 打开群晖套件中心,在搜索框内输入“MariaDB”,回车,点击“安装套件”,如下图1;
在这里插入图片描述
图1

b) 在跳转的页面输入密码,注意密码复杂度要符合要求,如下图2;
在这里插入图片描述
图2

c) 点击完成,如下图3;
在这里插入图片描述
图3

2.2 部署phpMyAdmin套件

a) 打开群晖套件中心,在搜索框内输入“phpMyAdmin”,回车,点击“安装套件”,如下图4;

在这里插入图片描述

图4

b) 在跳转的对话窗口,选择“是”,如下图5;
在这里插入图片描述
图5

2.3 部署Docker套件

a) 打开群晖套件中心,在搜索框内输入“Docker”,回车,点击“安装套件”,如下图6;
在这里插入图片描述
图6

2.4 部署Docker版本nextcloud

a) 打开Docker管理页面,单击“注册表”群晖套件中心,如下图7;
在这里插入图片描述
图7

b) 在搜索栏内输入“nextcloud”,下载 “linuxserver/nextcloud”版本如下图8;
在这里插入图片描述
图8

c) 在弹出的“选择标签”窗口,选择“latest”最新版,如下图9;
在这里插入图片描述
图9

d) 下载完成后点击左侧“映像”,进到映像界面,选择“linuxserver/nextcloud”,点击“启动”,如下图10;
在这里插入图片描述
图10

e) 根据引导,对“网络”“常规设置”“端口设置”“存储空间设置”进行相应的配置,添加映射路径“docker/nextcloud/config → /config/www/nextcloud/config”,点击“完成”,如下图11-16;
在这里插入图片描述
图11

在这里插入图片描述
图12

在这里插入图片描述
图13
在这里插入图片描述
图14

在这里插入图片描述
图15

在这里插入图片描述
图16

f) 配置nextcloud需要使用的数据库:打开“phpMyAdmin”,创建用户“nextcloud”,并创建同名数据库,点击“执行”;打开MariaDB,选择“启用TCP/IP连接”,如下图17-19;
在这里插入图片描述
图17

在这里插入图片描述
图18

在这里插入图片描述
图19

g) 打开nextcloud界面https://你的ip:443映射的端口,我这边就是https://192.168.77.121:15443,选择“高级”“继续访问192.168.77.121(不安全)”,如下图20-21;
在这里插入图片描述
图20

在这里插入图片描述
图21

h) 在部署界面,输入刚才建立的数据库信息,数据库地址填写为172.17.0.1:3306,如下图22;
在这里插入图片描述
图22

i) 开启群晖的SSH功能,使用终端远程工具登录,配置nextcloud时钟,执行结果如下图23;
命令如下;

1)	sudo -i    #获取root权限 
2)	docker container ls -a    #列出所有容器,记录CONTAINER ID
3)	docker exec -it [CONTAINER ID] /bin/bash    #进入容器,[CONTAINER ID]替换为查询到ID
4)	echo "Asia/Shanghai" > /etc/timezone;    #修改容器时区
5)	ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime    #修改容器时区
6)	date -R    #查看当前时间

在这里插入图片描述
在这里插入图片描述
图23

j) 修改nextcloud的config.php内容:打开映射的目录docker/nextcloud/config,下载config.php到本地电脑,需要修改三处位置,如下图24-25;
修改位置及内容

1)	trusted_domains 的 array 里面,添加自己的域名和端口,信任几个填几个,序号逐个增加;
2)	overwrite.cli.url里面,修改为域名的url地址;
3)	为onlyoffice配置,不对ssl证书进行验证,添加如下代码:
'onlyoffice' =>
  array (
    'verify_peer_off' => true,
  ),
  'allow_local_remote_servers' => true, 

在这里插入图片描述
图24
在这里插入图片描述

图25

k) 将config.php上传回docker/nextcloud/config,由于修改后文档的权限会变化,需要重新赋予权限,如下图26;
命令如下:

chmod 777 /config/www/nextcloud/config/config.php

在这里插入图片描述图26

2.5 部署Docker版本onlyoffice

a) 在nextcloud内,制作onlyoffice的https自签证书,如下图27;
命令如下:

1)	mkdir /config/www/nextcloud/config/certs   #在映射的目录下新建文件夹
2)	cd /config/www/nextcloud/config/certs/     #进入该文件夹
3)	openssl genrsa -out onlyoffice.key 2048    #生成rsa私钥
4)	openssl req -new -key onlyoffice.key -out onlyoffice.csr #基于私钥创建签名证书
5)	openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt                                         #证书转换、有效期限
6)	openssl dhparam -out dhparam.pem 2048      #秘钥交换

在这里插入图片描述图27

b) 在docker目录下新建onlyoffice的映射目录,并将nextcloud/config目录下的 certs 文件夹复制到 onlyoffice中,如下图28;
在这里插入图片描述
图28

c) 打开Docker,搜索“onlyoffice”,选中,点击“下载”,选择最新版本“latest”,如下图29-30;
在这里插入图片描述
图29

在这里插入图片描述
图30

d) 启动onlyoffice容器,对“网络”“常规设置”“端口设置”“存储空间设置”进行相应的配置,添加映射路径“docker/onlyoffice/certs/ → /var/www/onlyoffice/Data/certs”,点击“完成”,如下图31-36;
在这里插入图片描述
图31

在这里插入图片描述
图32

在这里插入图片描述
图33

在这里插入图片描述
图34

在这里插入图片描述
图35

在这里插入图片描述
图36

e) 部署完成之后,打开onlyoffice界面https://你的ip:443映射的端口,我这边就是https://192.168.77.121:16443,会提示不安全,处理方式同nextcloud的,界面如下图37;

图37

f) 注意图37红框里的提示,从7.2开始默认开启了JWT,所以我们需要拿到默认的key,
命令如下:

1)	docker container ls -a     #列出所有容器,记录CONTAINER ID
2)	sudo docker exec [CONTAINER ID] /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'  #查询默认的key,[CONTAINER ID] 替换为onlyoffice的ID
红框内的为默认key,做好记录一会要用,如下图38

图38
图38

g) 修改时钟,方法同nextcloud,执行结果如下图39;
在这里插入图片描述
图39

h) 修改onlyoffice的/etc/onlyoffice/documentserver/目录下的default.json,把“rejectUnauthorized”的值改为false,如下图40;关闭 ssl验证,先把文件复制到映射的目录下,下载到本地修改后上传到映射目录,再移动回原来的目录,;
命令如下

cp /etc/onlyoffice/documentserver/default.json /var/www/onlyoffice/Data/certs/ #复制到映射目录
mv /var/www/onlyoffice/Data/certs/default.json /etc/onlyoffice/documentserver/ #移回原目录

执行结果,如下图41
在这里插入图片描述
图40

在这里插入图片描述
图41

2.6 部署nextcloud连接onlyoffice

a) 安装onlyoffice插件:点击右上角的头像栏,选择“应用”,在左侧选择“Office & txt”选项,点击搜索输入only,点击“下载并启用”,如下图42-43; 在这里插入图片描述图42

在这里插入图片描述图43

b) 配置onlyoffice:点击“设置”,在左侧选择“ONLYOFFICE”,填写信息,如下图44;
在这里插入图片描述
图44

c) 配置注意事项:第一个地址填域名,用于建立连接,下面的填内网地址,onlyoffice的key会随容器重启而改变,所以重启之后需要重新填写key内网解析域名可通过DNS服务器、DNS劫持等方式实现,我这里是通过openwrt的DNS劫持部署的,配置依据https://api.onlyoffice.com/editors/nextcloud,见下图45;
在这里插入图片描述
图45

2.7 部署外网访问(这个就不展开了,百度一下你就知道)

a) 配置路由器的DDNS
b) 配置端口映射
c) 注意一点,映射的时候源目端口一致

2.8 看看效果

a) 内网访问,如下图46;
在这里插入图片描述
图46

b) 互联网访问效果,如下图47;
在这里插入图片描述图47

3 写在最后

做一个随手记,备忘用,也希望能帮到有需要的人。
当前时间
在这里插入图片描述

点击阅读全文
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐