本文是应网友 刘源
的要求折腾的;
什么是 Nextcloud AIO ?
Nextcloud AIO
就是 Nextcloud All-in-One
,顾名思义就是一个 Nextcloud
的 All-in-One
版本,这是一个基于 Docker
的项目,它允许仅安装一个容器,该容器可以完成创建和管理完整的 Nextcloud
安装所需的所有容器的繁重工作。Nextcloud AIO
不仅提供了许多 Nextcloud
功能的轻松部署和维护,而且您还可以期待用户友好的界面、无压力的更新以及让大多数功能开箱即用的更简单的方法。
Nextcloud AIO
包括:
Nextcloud
Nextcloud Office
-
Nextcloud 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 Manager
-
Tailscale
+ 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
中都需要加入下面的代码
client_body_buffer_size 512k;
proxy_read_timeout 86400s;
client_max_body_size 0;
【注意事项】:
如果你反代后,没有 443
端口,从官方文档看,似乎是不支持的
但老苏没有条件进行验证,只能建议你采用老苏的方案了
命令行安装
docker cli 安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 nextcloud-aio 和 子目录
mkdir -p /volume1/docker/nextcloud-aio/{config,data}
# 进入 nextcloud-aio 目录
cd /volume1/docker/nextcloud-aio
# 创建卷
docker volume create \
--driver local \
--name nextcloud_aio_mastercontainer \
-o device="/volume1/docker/nextcloud-aio/config" \
-o type="none" \
-o o="bind"
docker volume create \
--driver local \
--name nextcloud_aio_nextcloud_datadir \
-o device="/volume1/docker/nextcloud-aio/data" \
-o type="none" \
-o o="bind"
# 运行容器
docker run -d \
--init \
--sig-proxy=false \
--restart unless-stopped \
--name nextcloud-aio-mastercontainer \
-p 3093:8080 \
-v nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-e APACHE_PORT=11000 \
-e APACHE_IP_BINDING=0.0.0.0 \
-e NEXTCLOUD_DATADIR="nextcloud_aio_nextcloud_datadir" \
nextcloud/all-in-one:latest
-
3093
:是容器 nextcloud-aio-mastercontainer
的访问端口;
-
APACHE_IP_BINDING
:apache
容器侦听的主机 IP
;
-
APACHE_PORT
:apache
容器侦听的主机端口 ;
docker-compose 安装
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3'
services:
nextcloud-aio-mastercontainer:
image: nextcloud/all-in-one:latest
container_name: nextcloud-aio-mastercontainer
restart: unless-stopped
ports:
- 3093:8080
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- NEXTCLOUD_DATADIR=nextcloud_aio_nextcloud_datadir
- APACHE_PORT=11000
- APACHE_IP_BINDING=0.0.0.0
volumes:
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/volume1/docker/nextcloud-aio/config'
nextcloud_aio_nextcloud_datadir:
name: nextcloud_aio_nextcloud_datadir
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/volume1/docker/nextcloud-aio/data'
然后执行下面的命令
# 新建文件夹 nextcloud-aio 和 子目录
mkdir -p /volume1/docker/nextcloud-aio/{config,data}
# 进入 nextcloud-aio 目录
cd /volume1/docker/nextcloud-aio
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
注意事项
- 容器的名称不能改,必须是
nextcloud-aio-mastercontainer
,否则日志中会有下面的提示
注意:容器名字中的连接线是 -
而不是 _
It seems like you did not give the mastercontainer the correct name? (The 'nextcloud-aio-mastercontainer' container was not found.)
Using a different name is not supported since mastercontainer updates will not work in that case!
- 卷的名称也不能改,必须是
nextcloud-aio-mastercontainer
,否则日志中会有下面的提示
注意:容器名字中的连接线是 _
而不是 -
It seems like you did not give the mastercontainer volume the correct name? (The 'nextcloud_aio_mastercontainer' volume was not found.)
Using a different name is not supported since the built-in backup solution will not work in that case!
如何重置
如果在初始安装过程中出现意外情况,您可能需要重置 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(不安全)
现在可以看到下面
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)