基于树莓派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下载

1
wget -O - https://cdn.jsdelivr.net/gh/OpenMediaVault-Plugin-Developers/installScript@master/install | sudo bash

3.2 重置网络

倘若安装OMV时未使用-n选项,则需要重置网络配置,以便OMV能正常使用,否则跳过本步骤。

若之前是使用WiFi连接的树莓派,此时则需将树莓派有线连接到路由器上,待分配到地址后,使用新地址ssh连接树莓派。

ssh连接树莓派后,需额外安装网络自动管理的包以及dhcp服务,执行代码如下:

1
2
3
4
sudo apt-get install -y dhcpcd5 network-manager

sudo systemctl enable dhcpcd5
sudo systemctl start dhcpcd5

浏览器访问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操作磁盘。

1
2
3
4
5
# 查看当前挂载的分区表
df -h

# 查看当前分区表
fdisk --list

fdisk具体操作见Linux学习笔记

1
2
3
4
5
6
7
8
# 格式化为ext4后可以得到新分区表
Disk /dev/sda: 57.3 GiB, 61530439680 bytes, 120176640 sectors
Disk model:  SanDisk 3.2Gen1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 57E98980-D614-42A5-9D4F-9CB1E8509F7E

回到OMV的WEB端,挂载文件系统,选择/dev/sda,点击挂载按钮,即可挂载成功。

3.3.3 配置文件共享

为了方便跨平台的局域网文件共享服务(特别是Windows和Linux文件系统间的文件传输),我们再开启OMV的SMB共享服务。

步骤:

  • 共享文件夹
  • 创建共享
    • 选择文件系统
    • 设置共享文件夹
    • 设置权限组
  • 添加访问用户
    • 启用权限继承
  • 应用

3.3.4 安装OMV-extras

进入OMV-extras官网,找到树莓派对应架构的deb包,wget到树莓派后安装。

1
sudo dpkg -i OMV-extras-*.deb

重新登录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的绝对路径
  • 将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里需更改为:

1
2
3
- /dev/video10:/dev/video10
- /dev/video11:/dev/video11
- /dev/video12:/dev/video12

注意,如果添加了/dev/vcsm设备,请前往终端查看是否存在该设备,比如:

1
2
3
ls -l /dev/vcsm
ls -l /dev | grep vcsm

树莓派4B上并不存在vcsm设备,而是vcsm-cma设备,因此需要更该设备映射为:

1
- /dev/vcsm-cma:/dev/vcsm-cma

Stack部署完毕后,访问8096端口进入Jellyfin管理页。

配置Jellyfin时需将将媒体图像保存到媒体所在文件夹将NFO信息保存到媒体所在文件夹选上。

至于如何使用tinyMediaManager对影片进行刮削,网上资料很全,这里不在赘述。

给作者倒杯卡布奇诺 ~
Albresky 支付宝支付宝
Albresky 微信微信