群晖安装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
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 写在最后
做一个随手记,备忘用,也希望能帮到有需要的人。
当前时间