基于树莓派4B搭建家庭NAS
Docker容器、NextCloud云盘、Jellyfin视频库、BT远程下载
Docker容器、NextCloud云盘、Jellyfin视频库、qB远程BT下载
一、NAS简介
NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。国际著名的NAS企业有Netapp、EMC、OUO等。
二、安装RaspberryPi OS
2.1 安装64bit lite版本镜像
- 树莓派基础操作详见公众号
三、安装OpenMediaVault(OMV)
3.1 OMV简介
OpenMediaVault,它包含众多服务,如SSH,(S)FTP,SMB / CIFS,DAAP媒体服务器,RSync,BitTorrent客户机等。 并具有通过插件可增强的模块化设计框架特性。
3.2 安装OMV
#写在前面#
由于OMV的默认安装选项会重置系统网络配置,故安装完成后会导致断网、丢失网卡等问题。
故而在安装OMV时,可选择增加安装选项-n
来解决这个问题。
由于Github的gh下载url国内几乎无法访问,故安装OMV时采用CDN下载
|
|
3.2 重置网络
倘若安装OMV时未使用-n
选项,则需要重置网络配置,以便OMV能正常使用,否则跳过本步骤。
若之前是使用WiFi连接的树莓派,此时则需将树莓派有线连接到路由器上,待分配到地址后,使用新地址ssh连接树莓派。
ssh连接树莓派后,需额外安装网络自动管理的包以及dhcp服务,执行代码如下:
|
|
浏览器访问http://树莓派ip
(OMV默认80
端口),即可访问OMV。
到此,OMV基本安装结束,树莓派网络也恢复正常。
3.3 配置OMV
3.3.1 设置静态ip
进入OMV后首先将ip从dhcp自动分配改为静态分配,并设置ip地址(与路由器同网段即可)和子网掩码。
3.3.2 挂载外置硬盘
OMV内置格式化硬盘的服务,但我多次尝试使用OMV提供的格式化硬盘服务,都失败,错误提示我使用fdisk来格盘。
本来fdisk就非常方便,故直接进ssh操作磁盘。
|
|
fdisk具体操作见
Linux学习笔记
|
|
回到OMV的WEB端,挂载文件系统,选择/dev/sda
,点击挂载
按钮,即可挂载成功。
3.3.3 配置文件共享
为了方便跨平台的局域网文件共享服务(特别是Windows和Linux文件系统间的文件传输),我们再开启OMV的SMB共享服务。
步骤:
- 共享文件夹
- 创建共享
- 选择文件系统
- 设置共享文件夹
- 设置权限组
- 添加访问用户
- 启用权限继承
- 应用
3.3.4 安装OMV-extras
进入OMV-extras官网,找到树莓派对应架构的deb包,wget到树莓派后安装。
|
|
重新登录OMV,即可使用OMV-extras的功能。
3.3.5 安装OMV-extras-docker
进入OMV后,在系统
中安装Docker和Portainer。
安装完成后,浏览器访问http://树莓派ip:9000
,即可访问Portainer。
四、qBittorrent安装
想要远程配合tracker来下载bt种子,qb是不二选择。
进入linuxserver,复制linux-qBittorrent
的docker配置信息,回到Portainer中新建Stack,安装后即可使用。
步骤:
- 复制配置模板
- ssh在挂载的磁盘上创建好qb的工作目录
- 包括config,download等文件夹
- 针对配置模板修改volume卷的映射关系,指向qb的工作目录
- 源目录可ssh中执行
df -h
查看挂载硬盘带uuid的绝对路径
- 源目录可ssh中执行
- 将TZ(Timezone)改为
Asia/Shanghai
,否则qb会出现时间错误。 - 创建
访问8080(默认)端口即可进入qb的WEB端管理页。
setting里可更改语言、tracker等。
五、NextCloud安装
在NAS和NextCloud的集成化服务协同下,我们几乎可以完全摆脱手机相册自带的云端备份功能和BD网盘的备份功能,安全又方便。
5.1 部署数据库
步骤:
- 首先docker中新建一个桥接网络mynet
- 然后linuxserver中复制MariaDB配置信息,卷改为树莓派挂载的外部磁盘某文件夹(/srv/xxx/mariadb)
- 用户id和组id设置为树莓派用户的id和组id,否则无法访问数据库
默认端口映射修改为8081:8081
,因为前面qB的本地端口为8080,否则会端口冲突- 时区改为上海(
Asia/Shanghai
) MYSQL_ROOT_PASSWORD
自定义networks
设置为mynet- 部署stack
访问8081端口,管理员用户名root
,登录后新建数据库,选择utf8mb4_general_ci
类型。然后在权限
中新建用户,同时授予该用户全部权限。
5.2 部署NextCloud
大体步骤同上,这里需注意的是,用户id和组id需使用OMV登录用户的信息,具体可在linux中使用id $example
查看。
Stack部署完毕后,访问https://ip
进入nextcloud的管理页面,即可进行下一步操作。
5.3 初始化NextCloud
由于为添加ssl认证,访问443端口浏览器会提示非专用连接,这里在高级
中继续访问
即可。
进入管理页后,注册用户,同时配置数据库:
- 选择数据目录,及Stack中卷的映射地址,比如(/mariadb/data)
- 填写数据库的登录信息
- localhost改为
ip:端口
如果NextCloud创建用户报错,请检查数据库用户名
、数据库密码
、数据库名
和ip:端口
是否正确。
六、Jellyfin安装
步骤大体同上,需改动的地方主要是卷的映射关系,比如movies改为srv/xxx/jellyfin/data/movies:/data/movies
。
如果使用树莓派4B
,则需注意,最新的bulleye
发行版已取消OpenMAX
解码器,故devices里需更改为:
|
|
注意,如果添加了/dev/vcsm
设备,请前往终端查看是否存在该设备,比如:
|
|
树莓派4B上并不存在vcsm
设备,而是vcsm-cma
设备,因此需要更该设备映射为:
|
|
Stack部署完毕后,访问8096
端口进入Jellyfin管理页。
配置Jellyfin时需将将媒体图像保存到媒体所在文件夹
和将NFO信息保存到媒体所在文件夹
选上。
至于如何使用tinyMediaManager
对影片进行刮削,网上资料很全,这里不在赘述。

