在群晖上安装Nextcloud-AIO详解
本文是应网友
刘源的要求折腾的;
什么是 Nextcloud AIO ?
Nextcloud AIO就是Nextcloud All-in-One,顾名思义就是一个Nextcloud的All-in-One版本,这是一个基于Docker的项目,它允许仅安装一个容器,该容器可以完成创建和管理完整的Nextcloud安装所需的所有容器的繁重工作。Nextcloud AIO不仅提供了许多Nextcloud功能的轻松部署和维护,而且您还可以期待用户友好的界面、无压力的更新以及让大多数功能开箱即用的更简单的方法。
Nextcloud AIO 包括:
NextcloudNextcloud OfficeNextcloud Files的高性能后端Nextcloud Talk的高性能后端- 备份解决方案(基于
BorgBackup) Imaginary(用于heic、tiff和webp的预览)ClamAV(Nextcloud的防病毒后端)- 全文检索
- ……
前言
按照之前的理解,All-in-One 一般都是把软件需要用到的服务、数据库、前端等放在一个镜像里,这样可以降低用户体验的门槛,但是 Nextcloud AIO 颠覆了老苏的认知,这玩意儿像是个启动器或者批处理,你需要用的镜像还需要根据你的设置,一个一个另外下载
老苏在安装时,为了体验,勾选了全部的功能;

最后下载并生成了大概有 14 容器(下图中还差了 domaincheck 和watchtower)

期间出了各种状况,例如下面这样,原因竟然是 nextcloud/aio-apache 下载失败导致的

所以为了避免遇到老苏在安装中遇到的网络问题,建议你把 nextcloud/aio 开头的镜像先下载回来,似乎也就 onlyoffice、docker-socket-proxy 可能没用上

当然你的网络很稳定的话,当老苏什么都没说
反向代理
熟悉老苏的同学都知道,老苏 6 月份 vps 到期之后,就没再续签了,所以现在的反代方案是
Cloudflared+Nginx Proxy ManagerTailscale+Nginx Proxy Manager
前面是什么关系不是很大,重点是 Nginx Proxy Manager
官方有详细的反代设置文档:https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md,请找到自己的反代类型进行设置
| 域名 | 局域网地址 | 备注 |
|---|---|---|
https://aio.laosu.cf |
http://192.168.0.197:11000 |
apache 主机:端口 |
主机设置

SSL 中,如果 NPM 在 Cloudflard 后面,可以不用设置,如果在 Tailscale 后面则是需要的

Advanced 中都需要加入下面的代码
1 | client_body_buffer_size 512k; |

【注意事项】:
如果你反代后,没有 443端口,从官方文档看,似乎是不支持的

但老苏没有条件进行验证,只能建议你采用老苏的方案了
命令行安装
docker cli 安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 nextcloud-aio 和 子目录 |
3093:是容器nextcloud-aio-mastercontainer的访问端口;APACHE_IP_BINDING:apache容器侦听的主机IP;APACHE_PORT:apache容器侦听的主机端口 ;
docker-compose 安装
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 nextcloud-aio 和 子目录 |
注意事项
- 容器的名称不能改,必须是
nextcloud-aio-mastercontainer,否则日志中会有下面的提示
注意:容器名字中的连接线是
-而不是_
1 | It seems like you did not give the mastercontainer the correct name? (The 'nextcloud-aio-mastercontainer' container was not found.) |
- 卷的名称也不能改,必须是
nextcloud-aio-mastercontainer,否则日志中会有下面的提示
注意:容器名字中的连接线是
_而不是-
1 | It seems like you did not give the mastercontainer volume the correct name? (The 'nextcloud_aio_mastercontainer' volume was not found.) |
如何重置
如果在初始安装过程中出现意外情况,您可能需要重置 AIO 安装,以便能够从头开始
具体的方法可以参考官方的文档, How to properly reset the instance?章节:https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance
运行
在浏览器中打开 https://群晖IP:3093,注意,是 https 不是 http,否则你会看到

如果提示 您的连接不是私密连接,点 高级

点 继续前往192.168.0.197(不安全)

现在可以看到下面👇这样的界面了
注意保存密码

点最下面的按钮登录,输入密码

登录完成后看到 AIO 界面
前提是你的网络没问题,或者已经将需要的容器下载下来了,否则有可能卡在检查升级的页面上

设置域名

为了测试,都勾选了

时区需改为 Asia/Shanghai

回到顶部,点 Download and start containers

如果像下面这样,不一定是有问题,可能只是还没启动完成,稍等之后点 Reload 按钮重新加载
nextcloud-aio-nextcloud启动的过程是比较长的,要有耐心。着急的话可以点服务后面的Starting看日志,来了解进度;

如果没有提前下载镜像,网络又不太好的情况下,比较容易出现 Server error. Please check the mastercontainer logs for details. This page will reload after 10s automatically. Then you can check the mastercontainer logs.

当下面这样时,基本上就算正常了,可以开始下一步访问了
之所以说基本正常,是因为
Notify Push一直在重启,日志中显示start.sh: line 36: /nextcloud/custom_apps/notify_push/bin/x86_64/notify_push: No such file or directory,懒得再去研究了,因为这种安装方式远远没有老苏之前写的安装方式简单快捷;

注意红框中的用户名和密码
1 | Initial Nextcloud username: admin |
点 Open your Nextcloud,会在浏览器中打开新的页面,地址是我们前面设置的域名
即使你在浏览器中输入
http://群晖IP:11000,也会跳转为设置的域名;

输入用户名和密码,登录成功后主界面就出来了

接下里就可以正常使用了
参考文档
nextcloud/all-in-one: Nextcloud AIO stands for Nextcloud All-in-One and provides easy deployment and maintenance with most features included in this one Nextcloud instance.
地址:https://github.com/nextcloud/all-in-oneHow to Install the Nextcloud All-in-One on Linux - Nextcloud
地址:https://nextcloud.com/blog/how-to-install-the-nextcloud-all-in-one-on-linux/How to run AIO on Synology DSM.
地址:https://github.com/nextcloud/all-in-one#how-to-run-aio-on-synology-dsmall-in-one/reverse-proxy.md at main · nextcloud/all-in-one
地址:https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#2-use-this-startup-command