在群晖上安装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;

【注意事项】:

如果你反代后,没有 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_BINDINGapache 容器侦听的主机 IP
  • APACHE_PORTapache 容器侦听的主机端口 ;

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:nextcloud-aio-mastercontainer:image: nextcloud/all-in-one:latestcontainer_name: nextcloud-aio-mastercontainerrestart: unless-stoppedports:- 3093:8080volumes:- nextcloud_aio_mastercontainer:/mnt/docker-aio-config- /var/run/docker.sock:/var/run/docker.sock:roenvironment:- NEXTCLOUD_DATADIR=nextcloud_aio_nextcloud_datadir- APACHE_PORT=11000- APACHE_IP_BINDING=0.0.0.0volumes:nextcloud_aio_mastercontainer:name: nextcloud_aio_mastercontainerdriver: localdriver_opts:type: 'none'o: 'bind'device: '/volume1/docker/nextcloud-aio/config'nextcloud_aio_nextcloud_datadir:name: nextcloud_aio_nextcloud_datadirdriver: localdriver_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(不安全)

现在可以看到下面👇这样的界面了

注意保存密码

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

登录完成后看到 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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/128817.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有哪些适合初学者的编程语言?

C语言 那为什么我还要教你C语言呢?因为我想要让你成为一个更好、更强大的程序员。如果你要变得更好,C语言是一个极佳的选择,其原因有二。首先,C语言缺乏任何现代的安全功能,这意味着你必须更为警惕,时刻了…

【C++进阶】多态

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

如何用Jmeter提取和引用Token

1.执行获取token接口 在结果树这里,使用$符号提取token值。 $根节点,$.data.token表示提取根节点下的data节点下的token节点的值。 2.使用json提取器,提取token 变量路径就是把在结果树提取的路径写上。 3.使用BeanShell取样器或者BeanShell后…

webpack打包常用配置项

webpack打包配置项 参考链接 文件结构:最基础版 先安装 npm i webpack webpack-cli --dev 运行命令:npx webpack 进行打包 1. 配置webpack.config.js文件: const path require(path); module.exports {mode: development, // 开发环境 …

MyBatis: 向oracle表中插入null字段的处理

一、可以在SQL中指定类型: Insert("insert into student values(#{name,jdbcTypeNULL},#{age})")int addStudent(Param("name")String name, Param("age") int age);二、可以进行全局配置(单独使用MyBatis时可如下配置&am…

【MATLAB第72期】基于MATLAB的LightGbm(LGBM)梯度增强决策树多输入多输出回归预测模型

【MATLAB第72期】基于MATLAB的LightGbm(LGBM)梯度增强决策树多输入多输出回归预测模型 一、学习资料 (LGBM)是一种基于梯度增强决策树(GBDT)算法。 往期研究了多输入单输出回归预测方法,本次研究多输入多输出回归预测。 参考链接: lightgbm原理参考链…

【网络编程】C++实现网络通信服务器程序||计算机网络课设||Linux系统编程||TCP协议(附源码)

TCP网络服务器 🐍 1.程序简洁🦎2. 服务端ServerTcp程序介绍🦖3.线程池ThreadPool介绍🦕 4.任务类Task介绍🐙5. 客户端Client介绍🦑6.运行结果:🦐 7. 源码🦞7.1 serverTcp…

亚马逊云科技人工智能内容审核服务:大大降低生成不安全内容的风险

生成式人工智能技术发展日新月异,现在已经能够根据文本输入生成文本和图像。Stable Diffusion是一种文本转图像模型,可以创建栩栩如生的图像应用。通过Amazon SageMaker JumpStart,使用Stable Diffusion模型轻松地从文本生成图像。 尽管生成式…

【文末送书】Matlab科学计算

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

string

目录 六、STL简介 (一)什么是STL (二)STL的版本 (三)STL六大组件 七、string (一)标准库中的string 1、string类 2、string常用的接口 1)string类对象的常见构造 2)string类对象的容量操作 3)string类对象的访问及遍历操作 4)string类对象的修改操作 5)string类非成…

PMC在制造企业中发挥哪些价值?

导 读 ( 文/ 2127 ) PMC(生产计划与物料控制)是制造企业运行的核心,PMC的好坏可以直接影响客户的需求交付、生产进行的顺利与否、库存资金的占用、企业效率的提升等,在制造企业中起着关键的作用。它负责将生产计划转化为实际的生产活动,并确保…

python调用GPT实现:智能用例生成工具

工具作用: 根据输入的功能点,生成通用测试点 实现步骤 工具实现主要分2个步骤: 1.https请求调用Gpt,将返回响应结果保存为.md文件 2.用python实现 将 .md文件转换成.xmind文件 3.写个简单的前端页面,调用上述步骤接口 详细代…

计算机网络的故事——确保Web安全的Https

确保Web安全的Https 文章目录 确保Web安全的Https一、HTTP 的缺点二、HTTP 加密 认证 完整性保护 HTTPS 一、HTTP 的缺点 1、明文传输 通信加密,HTTP协议中没有加密机制,但是可以通过SSL(Secure Socket Layer,安全套接字层)或TLE(Transpor…

Qt应用开发(基础篇)——普通按钮类 QPushButton QCommandLinkButton

一、前言 QPushButton类继承于QAbstractButton,是一个命令按钮的小部件。 按钮基类 QAbstractButton 按钮或者命令按钮是所有图形界面框架最常见的部件,当按下按钮的时候触发命令、执行某些操作或者回答一个问题,典型的按钮有OK,A…

2023-09-09 LeetCode每日一题(课程表)

2023-09-09每日一题 一、题目编号 207. 课程表二、题目链接 点击跳转到题目位置 三、题目描述 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中…

初次安装Pytorch过程

第一次安装Pytorch,刚开始安装的时候装错了CUDA的版本号 这里最高支持12.2.138, 但是我装了一个12.2.140的CUDA,导致不兼容我在测试时发现 import torch# if torch.cuda.is_available(): # print("GPU可用") # else: # p…

Kotlin(五) 循环语句

目录 For循环 关键字 until step downTo Java中主要有两种循环语句:while循环和for循环。而Kotlin也提供了while循环和for循环,其中while循环不管是在语法还是使用技巧上都和Java中的while循环没有任何区别,因此我们就直接跳过不进行讲解…

记LGSVL本地编译记录

主要的编译参考来着官方文件 Unity安装 安装unity hub 安装2020.3.3f1在unity hub上 但是我发现没有2020.3.3f1,只有2020.3.3f1c1,其实c1就是中国版,没有什么影响 GIT安装 安装GIT安装Git LFS验证git-lfs(输出Git LFS initialized就&am…

嵌入式Linux驱动开发(LCD屏幕专题)(三)

1. 硬件相关的操作 LCD驱动程序的核心就是: 分配fb_info设置fb_info注册fb_info硬件相关的设置 硬件相关的设置又可以分为3部分: 引脚设置时钟设置LCD控制器设置 2. 在设备树里指定LCD参数 framebuffer-mylcd {compatible "100ask,lcd_drv&qu…

运维学习之部署Alertmanager-0.24.0

参考《监控系统部署prometheus基本功能》先完成prometheus部署。 参考《运维学习之采集器 node_exporter 1.3.1安装并使用》安装node_exporter。 下载 nohup wget https://github.com/prometheus/alertmanager/releases/download/v0.24.0/alertmanager-0.24.0.linux-amd64.ta…