• 在群晖上安装Nextcloud-AIO详解


    在这里插入图片描述

    本文是应网友 刘源 的要求折腾的;

    什么是 Nextcloud AIO ?

    Nextcloud AIO 就是 Nextcloud All-in-One ,顾名思义就是一个 NextcloudAll-in-One 版本,这是一个基于 Docker 的项目,它允许仅安装一个容器,该容器可以完成创建和管理完整的 Nextcloud 安装所需的所有容器的繁重工作。Nextcloud AIO 不仅提供了许多 Nextcloud 功能的轻松部署和维护,而且您还可以期待用户友好的界面、无压力的更新以及让大多数功能开箱即用的更简单的方法。

    Nextcloud AIO 包括:

    • Nextcloud
    • Nextcloud Office
    • Nextcloud Files 的高性能后端
    • Nextcloud Talk 的高性能后端
    • 备份解决方案(基于 BorgBackup
    • Imaginary(用于 heictiffwebp 的预览)
    • ClamAVNextcloud 的防病毒后端)
    • 全文检索

    前言

    按照之前的理解,All-in-One 一般都是把软件需要用到的服务、数据库、前端等放在一个镜像里,这样可以降低用户体验的门槛,但是 Nextcloud AIO 颠覆了老苏的认知,这玩意儿像是个启动器或者批处理,你需要用的镜像还需要根据你的设置,一个一个另外下载

    老苏在安装时,为了体验,勾选了全部的功能;

    最后下载并生成了大概有 14 容器(下图中还差了 domaincheckwatchtower

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

    所以为了避免遇到老苏在安装中遇到的网络问题,建议你把 nextcloud/aio 开头的镜像先下载回来,似乎也就 onlyofficedocker-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.cfhttp://192.168.0.197:11000apache 主机:端口

    主机设置

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

    Advanced 中都需要加入下面的代码

    client_body_buffer_size 512k;
    proxy_read_timeout 86400s;
    client_max_body_size 0;
    
    • 1
    • 2
    • 3

    【注意事项】:

    如果你反代后,没有 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 3093 :是容器 nextcloud-aio-mastercontainer 的访问端口;
    • APACHE_IP_BINDINGapache 容器侦听的主机 IP
    • APACHE_PORTapache 容器侦听的主机端口 ;

    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'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    然后执行下面的命令

    # 新建文件夹 nextcloud-aio 和 子目录
    mkdir -p /volume1/docker/nextcloud-aio/{config,data}
    
    # 进入 nextcloud-aio 目录
    cd /volume1/docker/nextcloud-aio
    
    # 将 docker-compose.yml 放入当前目录
    
    # 一键启动
    docker-compose up -d
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    注意事项

    • 容器的名称不能改,必须是 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!
    
    • 1
    • 2
    • 3
    • 卷的名称也不能改,必须是 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!
    
    • 1
    • 2
    • 3

    如何重置

    如果在初始安装过程中出现意外情况,您可能需要重置 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,懒得再去研究了,因为这种安装方式远远没有老苏之前写的安装方式简单快捷;

    注意红框中的用户名和密码

    Initial Nextcloud username: admin  
    Initial Nextcloud password: c32b4f14f897b89be557a215001417315db3bf1a69606fd3
    
    • 1
    • 2

    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-one

    How 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-dsm

    all-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

  • 相关阅读:
    python 变量引用,值变量
    Java项目:ssm+jsp+mysql实现的垃圾分类查询管理系统
    【Linux环境安装教程】
    依概率收敛和依分布收敛(附一道例题)
    安装kibana
    计算机基本架构-时序逻辑电路回顾
    【华为OD机试真题 python】 【找单词】【2022 Q4 | 200分】
    [附源码]java毕业设计基于的城镇住房公积金管理系统
    Pytorch导出onnx模型,C++转化为TensorRT并实现推理过程
    计算机三级 - 数据库技术 - 第十四章 数据仓库与数据挖掘 笔记
  • 原文地址:https://blog.csdn.net/wbsu2004/article/details/132800311