构建家庭NAS之三:在TrueNAS SCALE上安装qBittorrent

本系列文章索引:
构建家庭NAS之一:用途和软硬件选型
构建家庭NAS之二:TrueNAS Scale规划、安装与配置
构建家庭NAS之三:在TrueNAS SCALE上安装qBittorrent

大部分家庭NAS用户应该都会装一个下载工具。本篇以qBittorrent为例,说一下如何在TrueNAS SCALE上使用docker来安装应用。

1. 关于Docker

要顺利地使用docker,首先还是需要理解一些基本概念。

1.1 docker

什么是docker?简单地说,docker镜像(docker image)是自带运行环境的应用程序(本文会混合使用“docker镜像”和“docker应用”这两个词,表示的是同一个意思)。所以部署docker应用非常简单,把docker镜像下载下来直接运行就可以了,不需要传统应用那样复杂的安装过程。拿windows举例,安装一个应用通常需要复制文件到系统目录,安装和更新一些共享库(时不时造成软件冲突),还要修改注册表。卸载也同样麻烦。时间长了,系统里会留下很多垃圾文件和注册项,而这些问题在docker应用上都不存在。

可以把docker镜像理解成一个自带虚拟机的应用,或免安装版的应用。它运行需要的各种环境(依赖的库文件、需要创建的文件目录和配置文件、需要修改的系统文件和参数等)已经在docker镜像里设置好了,所以只需要把这个镜像像虚拟机一样运行起来就OK了。

实际上docker应用也是一个虚拟机,只不过相对于传统虚拟机,它有下面这几个特点。

  • 它很轻量,更节省资源。
  • 它可以和宿主机(运行TrueNAS的机器)共享文件夹,所以数据交换比起传统虚拟机方便很多。比如我们可以在docker里运行下载工具,下载的文件直接存放在nas的文件系统上。这是通过把宿主机上的文件夹映射到虚拟机里的一个文件夹来实现的。对于docker应用来说,它访问的是本虚拟机内部的一个文件夹和文件,实际上访问的是宿主机上的文件夹和文件。
  • 由于有这样的文件共享机制,docker应用的配置信息和数据通常都放在docker镜像外面(宿主机或者云上),所以应用升级非常简便,只需要下载一个升级版本的docker镜像再跑起来就行了。

TrueNAS SCALE支持docker以后,极大提升了系统的可定制性和稳定性。用户可以安装自己喜欢的docker镜像来扩展功能;同时TrueNAS系统本身不会被修改,从而保障系统稳定。

1.2 k8s/k3s

说完docker,再简单地说一下K8S/K3S。K8S全名叫做Kubernetes,因为单词比较长,所以习惯取头尾各一个字母加上中间的字母数量简写为K8S。类似命名还有i18n,是国际化(Internationalization)的缩写。

那么这个K8S究竟是个什么东西呢?K8S就是运行和管理docker应用的操作系统。Windows操作系统是管理单机的资源和应用,而k8s是用来管理云上的资源和应用(把docker镜像看成是云上的应用)。

至于k3s,是k8s的简化版。K8S用来在云上大规模部署和管理docker应用,在我们的nas系统上不需要这么强大和复杂的k8s,所以TrueNAS SCALE采用了一个简化版的k3s来管理和运行docker应用。

在实际使用TrueNAS的过程中,我们基本不会直接操作k8s/k3s,TrueNAS的管理界面把这些功能隐藏在后台了,所以只需要了解概念就好。

介绍完基本概念,我们就可以开始干活了,看看如何安装和运行qBittorrent。

2. 设置下载目录和权限

为了安装qBittorrent应用,首先需要在NAS的数据集里创建一个下载目录,用来存放下载文件,并设置好相应的权限。

2.1 用户和用户组设置

后续的操作都假设已经创建了下列用户和用户组:

  • 用户:lqy;用户ID:3000
  • 用户组:luoma;用户组ID:3000

2.2 创建存放下载文件的数据集

  1. 进入TrueNAS的WEB UI,点击左边菜单栏里的“数据集”。

  2. 在右边的数据集列表里选择(点击)一个顶层数据集(我选择“test”数据集),在数据集“详细信息”页面点击右上角的“添加数据集”
    在这里插入图片描述

  3. 输入数据集的名称(我的数据集名称是downloads),点击“保存”。这样我的数据集就创建好了。数据集的访问路径为:/mnt/test/downloads。

2.3 设置数据集的权限。

  1. 再次进入downloads数据集的“详细信息”页面。

  2. 下拉到“权限”部分,点击右上角的“编辑”。
    在这里插入图片描述

  3. 在“编辑ACL”部分,把所有者和所有者组改成上面预先创建好的用户和用户组,并勾选“申请所有者”和“应用于组”。
    在这里插入图片描述

  4. 拉到最下面,勾选“递归应用权限”和“将权限应用于子数据集”,并点击“保存访问控制列表”。
    在这里插入图片描述

这样,就把downloads数据集以及其下的子目录的用户和组修改好了。

3. 安装和使用qBittorrent

3.1 安装配置

TrueNAS SCALE的应用库里有好几个下载应用,我这里使用qBitttorent。
安装部署的步骤如下:

  1. 登录到Web界面,点击左边菜单栏里的“应用”,再点击右上角的“探索应用程序”
    在这里插入图片描述

  2. 搜索qBittorrent,点开应用,在应用的详情页面点击“安装”。

  3. 下拉到"User and Group Configuration",把“群组ID”设置为上面提到的"luoma"组的ID:
    在这里插入图片描述

  4. 下拉到“Network Configuration”,把“Host Network"勾上。
    在这里插入图片描述

  5. 在“Storage Configuration”区域:

  • “类型”选择“Host Path(Paht that already exists on the system)”。
  • 勾选“启用ACL”。
  • "Host Path"选择在“创建存放下载文件的数据集”部分创建的“/mnt/test/downloads”。
    在这里插入图片描述
  1. 在“ACL条目”部分:
  • 添加一条ACL,“ID Type”选择“Entry for a GROUP”,ID使用前面创建的luoma用户组的ID(3000),“访问”选择“FULL_CONTROL Access”。
  • 把下面的“Force Flag”勾选上。(如果/mnt/test/downloads文件夹里已经有文件,不选这个会报错)
    在这里插入图片描述
  1. 点击最下方的“安装”,等待安装完成。

3.2 管理qBittorent Web界面密码

3.2.1 查找初始密码

qBittorrent的初始用户名为admin,但初始密码是随机生成的。可以按如下方式找到初始密码:

  1. 在TrueNAS管理界面选择“应用”菜单,并在右边应用列表里点击 qBitTorrent 应用程序。

  2. 在工作负载部分,单击该部分右下角的查看日志图标。
    在这里插入图片描述

  3. 在“选择 Pod”部分,接受默认设置并单击“选择”。

  4. 查找日志中包含password的行并复制密码。

  5. 返回应用程序界面,然后转到“应用程序信息”部分,然后单击“Web Portal”图标打开qBittorrent管理应用。

  6. 使用用户名admin和步骤4中的密码登录。

3.2.2 更改qBitTorrent登录密码

  1. 登录 qBitTorrent 管理应用。
  2. 转到工具→选项。
  3. 单击“Web UI”选项卡。
  4. 在“验证”部分,设置新的用户名和密码并记下来。
  5. 向下滚动并单击“保存”。

3.2.3 关闭身份验证

关闭身份验证之后,登录qBittorrent就不需要输入用户名和密码了。

首先需要知道你自己的IP地址和子网掩码。我自己的ip地址/子网掩码为192.168.1.XXX/255.255.255.0,因此我输入的实际IP地址是192.168.1.0/24。读者可以根据自己的网络地址进行调整。

  1. 登录 qBitTorrent 应用程序。
  2. 转到工具→选项。
  3. 单击“Web UI”选项卡。
  4. 转到“验证”部分。
  5. 勾选“对IP子网白名单中的客户端跳过身份验证”
  6. 在下面的框中输入您的网络地址。(例如192.168.1.0/24)
  7. 向下滚动并单击“保存”。

4. 小结

这样qBittorrent就安装好了。可以愉快地找下载种子玩耍了。

安装配置要点如下:

  • 下载目录(/mnt/test/downloads)的所有者ID/用户组ID分别设置为3000/3000(详见“设置下载目录和权限”部分),权限设置为同组用户可读、写和执行。
  • 运行qBittorrent的用户组ID也设置为3000,因此对/mnt/test/downloads目录具有读、写和执行权限。这里的用户ID不重要,保留系统默认设置。
  • 网络要配置成“host network”(见“安装配置部分”第4步)。

如果出现问题,可以再检查一下这几项设置。

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

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

相关文章

VScode Python debug:hydra.run.dir 写入launch.json

记录一个debug时的经验: VS code extension名称版本Pythonv2028.8.1Python Debuggerv2024.6.0 我配置的project运行 train.py 时需要在 terminal 输入参数 hydra.run.dirxxx 我想用 vscode debug 查看内部代码,按以往的经验需要将args写入launch.json&…

LabVIEW与PLC通讯方式及比较

LabVIEW与PLC之间的通讯方式多样,包括使用MODBUS协议、OPC(OLE for Process Control)、Ethernet/IP以及串口通讯等。这些通讯方式各有特点,选择合适的通讯方式可以提高系统的效率和稳定性。以下将详细介绍每种通讯方式的特点、优点…

从零开始:如何使用PHP和Selenium构建网络数据爬虫

随着互联网的发展,网络数据爬取越来越成为人们关注的焦点。网络数据爬虫可以从互联网中采集大量有用的数据,为企业、学术研究和个人分析提供支持。本文将介绍使用php和selenium构建网络数据爬虫的方法和步骤。 一、什么是网络数据爬虫? 网络…

1.2-Redis系列-Reactor 线程模型详解

Reactor 线程模型详解 Reactor 线程模型是一种基于事件驱动的高效 I/O 处理模型,广泛应用于高性能网络服务器和事件驱动的应用程序。Reactor 模型通过将 I/O 操作和业务逻辑分离,以高效地处理并发连接。下面详细解释 Reactor 线程模型的概念、机制、实现…

Edge 浏览器退出后,后台占用问题

Edge 浏览器退出后,后台占用问题 环境 windows 11 Microsoft Edge版本 126.0.2592.68 (正式版本) (64 位)详情 在关闭Edge软件后,查看后台,还占用很多系统资源。实在不明白,关了浏览器还不能全关了,微软也学流氓了。…

C语言数据结构-分析期末选择题考点(一)

昔我往矣,杨柳依依 今我来思,雨雪霏霏 契子✨ 有道是:得选择题者得天下。临近考试,便总结一下数据结构选择题的常考题型吧,以及预测一下考点,一来是为了备考,二来可以水文。祝各位老铁 “挂柯南…

18.枚举

学习知识:枚举类型、相关的使用方法 Main.java: public class Main {public static void main(String[] args) {myenum[] colorlist myenum.values();//获取枚举中所有对象的引用数组for (myenum one : colorlist){System.out.println(one.toString(…

kafka的命令行操作

kafka-topics.bat 该命令行和主题相关 kafka启动后,默认端口为9092,可修改 找到kafka_2.13-3.6.2\bin\windows目录下的kafka-topics.bat,用cmd执行 按下会有提示,REQURIED代表为必输项 创建topic 创建一个名为test的topic队列 kafka-t…

【灵神题单】分组循环

目录 适用场景核心思想代码模板模板1:有进入条件模板模板2:无进入条件模板 题单无进入条件有进入条件 适用场景 按照题目要求,数组会被分割成若干组,且每一组的判断 / 处理逻辑是一样的。例如:选一个最长连续子数组&a…

【golang学习之旅】延迟调用——defer

系列文章 【golang学习之旅】使用VScode安装配置Go开发环境 【golang学习之旅】报错:a declared but not used 【golang学习之旅】Go 的基本数据类型 【golang学习之旅】深入理解字符串string数据类型 【golang学习之旅】go mod tidy 【golang学习之旅】记录一次 p…

【阅读论文】-- IDmvis:面向1型糖尿病治疗决策支持的时序事件序列可视化

IDMVis: Temporal Event Sequence Visualization for Type 1 Diabetes Treatment Decision Support 摘要1 引言2 1 型糖尿病的背景3 相关工作3.1 时间事件序列可视化3.2 电子健康记录可视化3.3 1 型糖尿病可视化3.4 任务分析与抽象 4 数据抽象5 层次化任务抽象5.1 临床医生工作…

绘制全球各大洲典型流域的时间序列图

流量世界第一、长度第二的亚马逊流域(Amazon)、南美洲第四大、整条河流位于巴西的圣弗朗西斯科流域(Sao Francisco)、世界第四长、北美洲最长的密西西比流域(Mississippi)、欧洲最长的伏尔加流域&#xff0…

小程序简单版音乐播放器

小程序简单版音乐播放器 结构 先来看看页面结构 <!-- wxml --><!-- 标签页标题 --> <view class"tab"><view class"tab-item {{tab0?active:}}" bindtap"changeItem" data-item"0">音乐推荐</view><…

SAP ABAP 之容器

文章目录 前言一、案例介绍/笔者需求二、自定义容器 a.实例化对象 b.自定义容器效果演示 c.Copy Code 三、自适应容器 a.常用 必须 参数理解 b.METRIC 度量单位 c.RATIO 百分比尺寸 d.STYLE 容器…

springboot网上商城系统-计算机毕业设计源码08789

摘 要 随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;采用Java技术建设网上商城系统。 本设…

MUR6060PT-ASEMI逆变焊机MUR6060PT

编辑&#xff1a;ll MUR6060PT-ASEMI逆变焊机MUR6060PT 型号&#xff1a;MUR6060PT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;60A 最大循环峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;600V 最大…

C++:C与C++混合编程

混合编程 为什么需要混合编程 (1)C有很多优秀成熟项目和库&#xff0c;丢了可惜&#xff0c;重写没必要&#xff0c;C程序里要调用 (2)庞大项目划分后一部分适合用C&#xff0c;一部分适合用C (3)其他情况&#xff0c;如项目组一部分人习惯用C&#xff0c;一部分习惯用C 为什么…

echarts隔行背景色

看了下使用说明&#xff0c;试了半天终于搞对了 参考文档&#xff1a;Documentation - Apache ECharts option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: bar,mar…

探索PostgreSQL存储过程:效率与强大的结合体

探索PostgreSQL存储过程&#xff1a;效率与强大的结合体 引言 PostgreSQL&#xff0c;作为功能强大的开源对象关系数据库系统&#xff0c;提供了丰富的数据库编程功能。存储过程是PostgreSQL中的一项重要特性&#xff0c;它允许封装一系列SQL语句和控制流语句为一个单一的操作…

IP地址在市场数据分析中的帮助

在当今数字化时代&#xff0c;市场数据分析对于企业的成功至关重要。而在这个过程中&#xff0c;IP地址作为一个关键的数据点&#xff0c;为市场分析师提供了宝贵的洞察和指引。以下将详细探讨IP地址在市场数据分析中的具体作用。 一、用户地理定位 IP地址可以帮助分析师确定…