1.1 准备U盘

准备一个8G以上的U盘

1.2 准备安装包

下载Arch的ISO文件:

下载地址:Download . Arch

下载Ventoy安装工具

下载地址: Download . Ventoy

1.2.2 安装 Ventoy

解压ventoy压缩包,执行 Ventoy2Disk.exe

assets/nas001.pg

设备选择U盘,点击安装. 等待安装完成

1.2.3 复制ISO文件到u盘

将下载好的arch的ISO文件复制到准备好的U盘根目录

1.2.4 准备安装Arch

a) 将U盘插入电脑,从USB启动,进入Ventoy安装界面,然后后选择 Arch 的镜像,等待重启加载。

b) 当引导加载程序菜单出现时,选择 Arch Linux install medium 并按 Enter 进入安装环境。

c) 成功进入root用户的命令行界面。

1.3 磁盘分区

1.3.1 格式化分区

首先需要查看所有磁盘,并决定系统安装在哪一个盘。

a) 查看当前所有磁盘:

1
lsblk

例如如果为m2固态,名称类似/dev/nvme0n。如果为机械盘,名称类似/dev/sda。

b) 对指定磁盘执行分区

1
2
3
4
5
6
7
8
9
10
11
12
13
parted   /dev/nvme0n1                    #【选择一个磁盘进行分区】

mklabel gpt  #【建立gpt分区表】

mkpart "EFI" fat32 1MiB 1025MiB #【建立ESP分区,用于挂载efi分区(uefi模式必须要有efi分区)】

mkpart "root" ext4 1025MiB 100%  #【创建/分区,剩余所有容量 】

p     #【打印分区信息】

set 1 esp on    #【设定ESP分区标志为boot】

q                                         # 【退出】                                 #【退出】

格式化分区命令

mkfs.vfat -F 32 /dev/nvme0n1p1 【esp】

mkfs.ext4 /dev/nvme0n1p2 【根目录】

1.4. 挂载磁盘分区

挂载分区

执行blkid查看分区

挂载分区,安装系统时可以访问,并安装boot,home,data目录文件到挂载的分区。

1
2
3
4
5

mount /dev/nvme0n1p2 /mnt #【首先挂载根目录】

mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot #【在根目录下挂载boot分区】

执行查看挂载结果

1
df-h

1.5. 安装Arch系统

1.5.1 测试网络

使用ping命令测试网络延迟

1
ping -c 3 www.qq.com

1.5.2 设置软件源

我觉得不换速度也OK,可以尝试换国内源。具体自行百度。

1.5.3 安装基本包

1
2
pacstrap /mnt base base-devel linux linux-firmware dhcpcd  iwd 
pacstrap /mnt vim nano wget

系统会安装并挂载在/mnt目录下面

1.5.4 生成fstab文件

生成fstab文件

1
$ genfstab -U -p /mnt >> /mnt/etc/fstab

1.6 安装引导

1.6.1 进入系统

1
arch-chroot /mnt

1.6.2 安装Systemd-boot引导

1
bootctl  install

1.6.3 修改引导配置

1
2
3
4
5
6
7
8

vim /boot/loader/entries/arch.conf

内容
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=UUID=XXXXXXXXXXXXXXXXXXX rw

XXXXXXXXXXXXXXXXXXX配置为磁盘分区的UUID

注意是查找的 系统 /根目录挂载分区 UUID 名称。

例如:/dev/sdaX 的 UUID=”d4539375-8c4d-4721-ac18-ed3f645bc589”

1
2
3
4
5
6
7
8
9

vim /boot/loader/loader.conf

内容
default arch
timeout 5
console-mode max
editor no
:wq!

使用bootctl更新Systemd-boot:

1
bootctl update

检查当前的Systemd-boot配置:

1
bootctl list

1.7 配置nas用户

1.7.1 设置root密码

1
# passwd root

1.7.2 创建nas用户

1
2
3
groupadd archnas
useradd -m -g archnas archnas
passwd archnas

1.7.2 加入sudo权限

编辑sudo配置

1
2
touch /etc/sudoers.d/sudo_users
echo "archnas ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers.d/sudo_users

1.11 重启系统

重启系统,看下是否能正常进入引导。如果无法引导,那么就说明引导的配置有问题,需要检查配置。

如果重启成功引导并进入系统就可以进行下一步配置了。

exit
reboot

1.8 配置SSH

1.8.2 配置有线网络

a) 查询网卡名称

1
ip addr

根据列表。找到有线网卡名称:eth0 或者其他名例如(enp1s0)

b) 修改网络配置

不配置的话通常地址IP是自动获取的,会变。所以需要设置成静态地址。

1
2
3
4
5
6
7
vim /etc/dhcpcd.conf

文件的最后加入内容
interface enp1s0
static ip_address=192.168.10.222/24
static routers=192.168.10.1
static domain_name_servers=192.168.10.1

以上配置只供参考。需要配置你自己当前环境的网段IP。我的网段是(192.168.10.X)

c) 保存后,重启dhtpcd网络服务

1
systemctl restart dhcpcd && systemctl enable dhcpcd

1.12 其他:无线联网方式

查看设备

1
ip addr

执行命令

1
2
## 开启iwctl服务(如果失败,可能需要重启)
systemctl enable --now iwd
1
2
3
4
5
6
7
8
9
10
11
12
13
## 查看网卡设备
iwctl device list
iwctl station list

## 搜索可以连接的wifi
iwctl station [设备名] scan

## 连接
iwctl station [设备名] connect [wifi网络名]
输入密码

## 查看连接状态
iwctl station show

Archinstall方式
执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
archinstall

1) archinstall language,选English
2) Mirrors,选china
2)Locale language 选择 zh_CN.UTF-8
3)创建分区,选择m2盘,建议分区,不使用home目录
---(如果磁盘已经有分区,需要进parted删除分区)
4)新增安装包,选择vim nano wget
4)修改hostname
5)修改root密码
6)创建用户账号
7) Profile,选择Minumal
7)网络, 手动添加静态IP
8)时区,选择Asia/shanghai

点击install安装

安装homeassistant

mkdir -p /nas/homeassistant

vim /nas/homeassistant/docker-compose.yml

services:
homeassistant:
image: lscr.io/linuxserver/homeassistant:latest
container_name: homeassistant
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- /nas/homeassistant/data:/config
ports:
- 8123:8123 #optional
restart: unless-stopped

运行:

cd /nas/homeassistant/
sudo docker-compose up -d

访问管理后台地址:http://192.168.10.222:8123/

安装shinobi

mkdir -p /nas/shinobi
vim /nas/shinobi/docker-compose.yml

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
version: "3"
services:
shinobi:
image: shinobisystems/shinobi:dev
container_name: shinobi
environment:
- PLUGIN_KEYS={"Tensorflow":"92a809b0533cb64e033131f8e60ae"}
- SSL_ENABLED=false
volumes:
- /nas/shinobi/config:/config
- /nas/shinobi/customAutoLoad:/home/Shinobi/libs/customAutoLoad
- /nas/shinobi/database:/var/lib/mysql
- /nas/shinobi/videos:/home/Shinobi/videos
- /nas/shinobi/plugins:/home/Shinobi/plugins
- /dev/shm/shinobi/streams:/dev/shm/streams
- /etc/localtime:/etc/localtime:ro
ports:
- 8680:8080
restart: unless-stopped

shinobiplugintensorflow:
image: shinobisystems/shinobi-tensorflow:latest
container_name: shinobi-tensorflow
environment:
- PLUGIN_KEY=92a809b0533cb64e033131f8e60ae
- PLUGIN_HOST=shinobi
volumes:
- /nas/shinobi/docker-plugins/tensorflow:/config
restart: unless-stopped

运行:

docker-compose up -d

访问管理后台地址:http://192.168.10.222:8680/super

Default Superuser : admin@shinobi.video
Default Password : admin

accounts -》创建普通用户

sxt102400@outlook.com

访问监控后台地址:http://192.168.10.222:8680/

使用刚才创建的用户登录

刚才创建的用户

点击用户名-ONVIFG

添加ONVIF,IP为NVR地址,

用户名密码为设置好的ONVIF管理员的用户名和密码,填写完直接搜索

1
2
3
**5.1.2 安装openldap**

a) 安装Portainer

docker pull bitnami/openldap:latest

1
2
3
4

b) 使用docker-compose配置文件运行


mkdir -p /nas/openldap/data
vim /nas/openldap/docker-compose.yml


version: ‘2.1’

services:
openldap:
image: bitnami/openldap
container_name: openldap
privileged: true
restart: unless-stopped
ports:
- ‘1389:1389’
- ‘1636:1636’
- LDAP_ADMIN_USERNAME=admin
- LDAP_ADMIN_PASSWORD=密码
- LDAP_USERS=archnas
- LDAP_PASSWORDS=密码
volumes:
- ‘/nas/openldap/data:/bitnami/openldap’

ldap-ui:
image: dnknth/ldap-ui
container_name: ldap-ui
privileged: true
restart: unless-stopped
ports:
- ‘5000:5000’
links:
- openldap
environment:
- LDAP_URL=ldap://openldap:1389/
- BASE_DN=dc=example,dc=com
- BIND_PATTERN=cn=%s,dc=example,dc=com

运行服务
docker-compose up -d


c)使用
进入容器
sudo docker exec -it openldap /bin/bash

安装电子书管理工具

calibre客户端工具

下载页面:https://calibre-ebook.com/

安装后打开

  1. 菜单栏-Books-创建书库-选择一个元数据目录

calibre-web
创建

mkdir -p /nas/calibre-web
vim /nas/calibre-web/docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
---
version: "2.1"
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- DOCKER_MODS=linuxserver/calibre-web:calibre #optional
- OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
volumes:
- /nas/calibre-web/config:/config
- /data/books:/books
ports:
- 8083:8083
restart: unless-stopped

运行:

docker-compose up -d

访问地址: http://192.168.10.222:8083/

默认账号密码:admin/admin123

配置:

Database Configuration
Location of Calibre Database配置 /books 目录

Users-Add New User

  1. 复制 电脑上的 metadata.db 到 /data/books:目录

中文路径

下载 https://github.com/Cirn09/calibre-do-not-translate-my-path/

下载win-patch-backend+update并解压

复制解压的文件到C:\Program Files\Calibre2\app\bin目录,重启客户端即可

OPDS & 手机端访问

opds地址:http://192.168.10.222:8083/opds

ios推荐kybook。安卓FBReader或者Cool reader

刮削设置

安装豆瓣插件

安装文档工具mrdoc

/nas/mrdoc/docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---
version: "2.1"
services:
mrdoc:
image: jonnyan404/mrdoc-alpine
container_name: mrdoc
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- /nas/mrdoc/config:/app/MrDoc/config
- /nas/mrdoc/media:/app/MrDoc/media
ports:
- 10086:10086
restart: unless-stopped

运行:

docker-compose up -d

默认用户:admin

默认密码:请执行 ** sudo docker logs mrdoc 2>&1|grep pwd** 获取[自0.6.3版本开始生效]

1
sudo docker logs mrdoc 2>&1|grep pwd

访问地址: http://192.168.10.222:10086/

登录后修改密码

安装漫画

/nas/lanraragi/docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: "2.1"
services:
lanraragi:
image: difegue/lanraragi
container_name: lanraragi
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- /data/comic:/home/koyomi/lanraragi/content
- /nas/lanraragi/database:/home/koyomi/lanraragi/database
ports:
- 3000:3000
restart: unless-stopped

运行:

docker-compose up -d

访问地址: http://192.168.10.222:3000/

2.1.1 开启SSH服务

安装并开启openssh

1
2
pacman -S openssh
systemctl enable sshd && systemctl start sshd

安装好openssh之后就可以远程ssh登录到系统进行配置了。

2.1.2 安装SSH客户端

下载并安装MobaXterm客户端工具。

地址:mobaxterm.download

解压安装后打开MobaXterm

执行

sessions 》new Session 》 选择ssh标签

输入 remote host: nas主机的IP

输入 Special username:nas用户

点击 OK,进行登录

assets/nas002.pg

输入密码后进入shell界面。表示登录成功。

1.8.1 设置主机名

1
sudo bash -c 'echo "archnas" > /etc/hostname'

2.3 安装intel平台文件

1
pacman -S intel-ucode

2.2 配置中文环境

切换到root用户

1
sudo su root

2.2.1 配置时区

配置时区并同步时钟

1
2
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

2.2.2 配置地区

编辑/etc/locale.gen,编辑/etc/locale.conf

1
2
3
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen
echo LANG=en_US.UTF-8 >> /etc/locale.conf

执行 locale-gen生成语言配置

1
# locale-gen

执行 loacale查看配置结果

1
# locale

2.2.3 安装中文字体

1
pacman -S ttf-dejavu wqy-microhei 

2.3 更新并升级系统

1
2
3
4
5
# 同步软件包库
pacman -Syy

# 更新系统
pacman -Syu

2.4 安装AUR包管理器

安装paru

1
2
3
4
5
6
sudo pacman -S git
sudo su archnas
cd ~
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si

2.5 安装web管理工具

安装cockpit

1
2
3
4
5
6
paru  cockpit 
paru cockpit-pcp
paru cockpit-storaged
paru cockpit-files
paru cockpit-packagekit
sudo systemctl start cockpit.socket && sudo systemctl enable cockpit.socket

访问

https://nas的Ip:9090/

使用系统用户密码登录
页面如下:
assets/nas003.pg

3.1 数据磁盘分配说明

3.1.1 数据文件系统

为安装nas的Nas系统我准备总共有7块硬盘,分配如下:
a) 1块M2固态硬盘:大小为1T,做Nas系统盘使用。
b) 6块SATA机械硬盘:每块大小为8T,5块做数据盘,1块做校验盘。

为了方便使用,不碎片话,需要把5块数据磁盘整合然后挂到同一个目录下。因此使用联合文件系统mergerfs。

a) Nas系统盘,创建 /data 目录。用来挂载5块磁盘。/data目录,使用空间大小为40T。
b)5块磁盘全部格式化为btrfs文件系统。
c)使用mergerfs将5块4T磁盘,联合成一个整的20T磁盘使用。

3.1.2 数据备份

放弃raid,家用环境中raid是不可靠的,且恢复难度极大。多份冷备份才能减少数据丢失的概率。

a)重要数据做一份单独磁盘的复制冷备份。

b)Nas系统使用一块4T磁盘做snapraid的快照备份。

3.2 mergerfs

3.2.1 查看磁盘信息

查看硬盘列表

1
2
3
fdisk -l

lsblk

查看挂载信息

1
2
3
blkid

df -h

查看硬盘详细信息

1
2
paru hwinfo

3.2.2 格式化数据盘

我的5块数据盘如下:【sda,sdb,sdc,sdd,sde】

使用btrfs格式化 ,以第一块盘sda为例

1
2
3
4
5
6
7
8
# 安装btrfs文件系统
pacman -S btrfs-progs

# 格式化磁盘
mkfs.btrfs -L "sda" /dev/sda

# 如果需要强制格式化
mkfs.btrfs -f -L "sda" /dev/sda

挂载到/mnt目录

1
2
3
sudo mkdir /mnt/sda
chown -R archnas:archnas /mnt/sda
mount /dev/sda /mnt/sda -o compress=zstd

其他磁盘一样,这样有5块磁盘分别挂载如下:

【磁盘:/dev/sda,挂载:/mnt/sda】

【磁盘:/dev/sdb,挂载:/mnt/sdb】

【磁盘:/dev/sdc,挂载:/mnt/sdc】

【磁盘:/dev/sdd,挂载:/mnt/sdd】

【磁盘:/dev/sde,挂载:/mnt/sde】

3.2.3 配置mergerfs

安装mergerfs

1
paru  mergerfs

整合所有的btrfs磁盘到一个mergerfs文件系统,并挂载mergerfs文件系统到 /data目录下

1
2
3
4
sudo mkdir /data
chown -R archnas:archnas /data
mergerfs -o cache.files=partial,dropcacheonclose=true,category.create=epmfs \
/mnt/sda:/mnt/sdb:/mnt/sdc:/mnt/sdd:/mnt/sdd:/mnt/sde /data

重新加载所有磁盘

1
2
重新加载所有磁盘
mount -a

3.2.4 配置fstab

手动挂载磁盘,重启后就失效了。如果要开机自动挂载磁盘,需要配置fastab

mergerfs配置示例如下

1
2
3
4
5
6
7
8
9
vim /etc/fstab

添加内容:
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXX /mnt/sda btrfs rw,relatime,compress=zstd 0 0
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXX /mnt/sdb btrfs rw,relatime,compress=zstd 0 0
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXX /mnt/sdc btrfs rw,relatime,compress=zstd 0 0
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXX /mnt/sde btrfs rw,relatime,compress=zstd 0 0
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXX /mnt/sde btrfs rw,relatime,compress=zstd 0 0
/mnt/sda:/mnt/sdb:/mnt/sdc:/mnt/sdd:/mnt/sde /data mergerfs cache.files=partial,dropcacheonclose=true,category.create=epmfs 0 0

3.3 snapraid

将第6块校验盘使用btrfs格式化,并挂载到 /mnt/sdf 目录、

3.3.1 安装配置snapraid

安装snapraid

1
paru  snapraid

配置snapraid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo mkdir /nas/snapraid
sudo chown -R archnas:archnas /nas/snapraid

vim /etc/snapraid.conf

添加内容
data d1 /mnt/sda
data d2 /mnt/sdb
data d3 /mnt/sdc
data d4 /mnt/sdd
data d5 /mnt/sde
parity /mnt/sdf/SnapRAID.parity
content /nas/snapraid/SnapRAID.content
content /mnt/sdf/SnapRAID.content
exclude /lost+found/

说明:

  1. disk 指定所需要备份的目录, 配置为数据盘挂载点
  2. parity 指定校验文件的存放位置,配置为校验盘目录文件
  3. content 指定文件索引等备份所需要的元信息,需要配置两个不同磁盘目录

3.3.2 备份数据
执行:

1
snapraid sync

3.3.3 还原数据

例如 /dev/sdb 盘挂掉。
a) 首先停止掉定时备份的脚本
b) 拆掉旧硬盘,替换新硬盘,并将新硬盘挂载到 /mnt/sdb_recovery 目录
c)修改/etc/snapraid.conf,替换

d)执行恢复命令

1
snapraid -d d2 -l recovery.log fix

3.3.4 取消删除
取消删除

1
2
snapraid fix -f FILENAME
(使用 file 或 dir 的完整 PATH 更好。file path 相对于所有根目录)

3.4 定时备份脚本

3.4 其他

btrfs磁盘管理命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 添加磁盘
btrfs device add /dev/sdZ /mnt/sda

# 强制添加
btrfs device add -f /dev/sdZ /mnt/sda

# 移除硬盘
btrfs device delete /dev/sdZ /mnt/sda

# 添加后重新均衡文件
btrfs balance start /mnt/sda

# 查看文件系统上各种数据的用量
btrfs filesystem df /data

3.5 磁盘休眠

  1. 安装
    安装 hdparm 软件包 和 smartmontools 软件包
    1
    2
    pacman -S hdparm
    pacman -S smartmontools

2)设置

设置休眠

1
2
3
4
5
6
7
8
9
10
11
12
13
vim /etc/systemd/system/hdparm.service

内容
---
[Unit]
Description=hdparm sleep

[Service]
Type=oneshot
ExecStart=/usr/bin/hdparm -q -S 241 -y /dev/sda /dev/sdb

[Install]
WantedBy=multi-user.target
1
systemctl start hdparm && systemctl enable hdparm

241指30分钟

时间数值说明
120:10分钟, 180:15分组,241:30分钟,242:1小时
从1到240的值指定5秒的倍数,从而产生5秒到20分钟的超时。
从241到251的值指定30分钟的1到11个单位,从而产生30分钟到5.5小时的超时。
值252表示超时21分钟。

3)查看硬盘活动状态
smartctl -i -n standby /dev/sda

5.1 安装Docker

5.1.1 安装docker

1
2
3
pacman -S docker docker-compose
sudo systemctl start docker && sudo systemctl enable docker
docker info

5.1.2 docker命令

docker镜像操作

1
2
3
4
5
6
7
8
9
10
11
# 查看所有镜像
docker images

# 搜索镜像
docker search image名称

# 下载镜像
docker pull [镜像名称]:[tag版本号]

# 删除镜像
docker rmi -f [镜像ID]

docker容器操作

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
# 显示所有容器
docker ps -a

# 显示所有运行容器
docker ps

# 运行容器
docker run -it [镜像名称/镜像ID]

# 启动容器
docker start [容器ID]

# 停止容器
docker stop [容器ID]

# 删除容器
docker rm [容器ID]

# 查看容器日志
docker logs -f [容器ID]

# 查看容器内部
docker inspect [容器ID]

# 进入容器bash
docker exec -it [容器ID] bash

5.1.3 安装Docker管理工具Portainer

Portainer是一个Docker的webUI管理服务

a) 安装Portainer

1
2
docker search portainer
docker pull portainer/portainer-ce:latest

b) 使用docker-compose配置文件运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir -p /nas/portainer/data
vim /nas/portainer/docker-compose.yml


---
version: "2.1"
services:
portainer:
image: portainer/portainer-ce
container_name: portainer
privileged: true
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /nas/portainer/data:/data
ports:
- 8000:8000
- 9443:9443

运行服务
docker-compose up -d

c)手动命令运行:可选

1
2
3
4
5
6
mkdir -p /nas/portainer/data
docker run -d -p 8000:8000 -p 9443:9443 \
--name portainer --restart=unless-stopped -v \
/var/run/docker.sock:/var/run/docker.sock \
-v /nas/portainer/data:/data \
portainer/portainer-ce

访问地址

https://nas地址:9443/

第一次登录修改admin的密码(密码长度大于12位)

assets/nas004.pg

5.2 部署Docker服务

5.2.2 安装硬盘监控工具scrutiny

docker-compose

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
mkdir -p /nas/scrutiny/
vim /nas/scrutiny/docker-compose.yml

---
version: "2.1"
services:
scrutiny:
image: ghcr.io/analogj/scrutiny:master-omnibus
container_name: scrutiny
privileged: true
restart: unless-stopped
cap_add:
- SYS_RAWIO
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- /nas/scrutiny/config:/opt/scrutiny/config
- /nas/scrutiny/influxdb:/opt/scrutiny/influxdb
- /run/udev:/run/udev:ro
ports:
- 8180:8080
- 8186:8086
devices:
- /dev:/dev

启动服务

1
sudo docker-compose up -d

访问地址:
http://nas地址:8180/

assets/nas006.pg

5.2.1 安装导航页Homarr

创建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mkdir -p /nas/homarr
vim /nas/homarr/docker-compose.yml

---

version: '3'
services:
homarr:
image: ghcr.io/ajnart/homarr:latest
container_name: homarr
privileged: true
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /nas/homarr/configs:/app/data/configs
- /nas/homarr/icons:/app/public/icons
- /nas/homarr/data:/data
ports:
- '7575:7575'

运行:

docker-compose up -d

访问

http://nas地址:7575/

第一次需要创建管理员用户(archnas/密码)

进入管理页面定制你的配置。

assets/nas007.pg

6.1 安装web文件浏览器

6.2 安装私有云盘:nextcloud

6.1.1 安装私有云盘nextcloud

安装nextcloud

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mkdir -p /nas/nextcloud/data
vim /nas/nextcloud/docker-compose.yml

---
version: '2'
services:
nextcloud:
image: nextcloud
container_name: nextcloud
privileged: true
restart: unless-stopped
ports:
- 8380:80
volumes:
- /nas/nextcloud/data:/var/www/html

启动服务

1
sudo docker-compose up -d

打开地址

http://nas地址:8380/

第一次登录需要创建管理员账号(admin/密码)

然后用管理员账号登录,创建普通用户账号

assets/nas008.png

6.2.2 Nextcloud手机客户端

在应用商店下载Nextcloud客户端应用。

下载页面:https://nextcloud.com/install/

打开Nextcloud客户端, 输入下面的地址作为服务连接地址:

http://nas地址:8380/

继续进入到连接页面,继续输入创建的账号密码登录

assets/nas009.jpg

6.3 安装BT下载工具:qbittorrent

6.3.1 安装qbittorrent
安装qbittorrent

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
mkdir -p /nas/qbittorrent/appdata
mkdir -p /nas/downloads


docker pull lscr.io/linuxserver/qbittorrent:latest
vim /nas/qbittorrent/docker-compose.yml

---
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- WEBUI_PORT=8480
- TORRENTING_PORT=16881
volumes:
- /nas/qbittorrent/appdata:/config
- /nas/downloads:/downloads #optional
ports:
- 8480:8480
- 16881:16881
- 16881:16881/udp

```

启动服务

sudo docker-compose up -d

1
2
3
4
5
6
7
8

打开地址

http://nas地址:8480/

默认账号密码为 admin

密码需要去容器内打印查看

sudo docker logs qbittorrent | grep password #查看密码



使用admin/日志密码,登录成功后修改默认密码。



**6.3.2 配置qbittorrent**

Tool - options-设置
1)修改admin密码
2)修改语言中文
3)下载排队数量改大
4)分享率改为1
5)启用RSS订阅

![assets/nas011.png](./assets/nas011.png)

1.7 Arch搭建Nas系统之七:影音服务

1.7.1 安装jellyfin

准备驱动目录和字体文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mkdir -p /nas/jellyfin/config
mkdir -p /nas/jellyfin/cache


#查看是否有硬解驱动
ls /dev/dri/


# 下载中文思源字体

mkdir -p /nas/jellyfin/config/fonts
cd /nas/jellyfin/config/fonts
wget -O Source_Han_Sans_CN_Regular.woff2 https://raw.githubusercontent.com/lsdlyz/Source-Han-Sans-CN-Regular/master/SourceHanSansCNRegular/Source%20Han%20Sans%20CN%20Regular.woff2

wget -O Source_Han_Sans_CN_Regular.ttf https://raw.githubusercontent.com/lsdlyz/Source-Han-Sans-CN-Regular/master/SourceHanSansCNRegular/Source%20Han%20Sans%20CN%20Regular.ttf

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sudo docker pull jellyfin/jellyfin

vim /nas/jellyfin/docker-compose.yml
---
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
user: 1000:1000
restart: 'unless-stopped'
volumes:
- /nas/jellyfin/config:/config
- /nas/jellyfin/cache:/cache
- type: bind
source: /data
target: /media
read_only: true
devices:
- /dev/dri/:dev/dri/
ports:
- 8096:8096

7.1.3 复制字体,解决封面乱码

1
2
3
cd /nas/jellyfin/config/fonts
sudo docker cp Source_Han_Sans_CN_Regular.ttf jellyfin:/usr/share/fonts/truetype/dejavu
sudo docker restart jellyfin

运行服务

docker-compose up -d

访问地址:

http://192.168.10.222:8096/

7.1.2 配置jellyfin

打开管理页面,第一步需要添加服务器地址。

然后刷新

http://192.168.10.222:8096/

进行初始化配置

选择汉语

初始化后管理员用户

然后使用管理员账号登录

配置
1)播放-转码。开启硬件加速,开启硬件解码

硬件加速开启,选VAAP

AV1不使用硬件解码

允许以 HEVC 格式编码 不勾选
允许以 AV1 格式编码 不勾选

配置字体,解决字幕乱码

  1. 播放-转码。

选择上传的中文字体 /config/fonts目录
勾选开启备用字体

assets/nas012.png

7.1.3 添加媒体库

媒体库-》媒体库-》添加媒体库

1)电影

勾选启用媒体库
首选下载语言:chinese
国家:china
自动从互联网获取元数据并刷新:不勾选
元数据存钱方式:勾选NFO

2)电视

3)

7.1.4 安装jellyfin客户端工具

客户端工具

PC端:浏览器,页面访问

苹果:jellyfin客户端

安卓:jellyfin客户端

电视:kodi + jellyfin插件

安装音乐库

mkdir -p /nas/navidrome
vim /nas/navidrome/docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: "2.1"
services:
navidrome:
image: deluan/navidrome:latest
ports:
- "4533:4533"
environment:
# Optional: put your config options customization here. Examples:
ND_SCANSCHEDULE: 24h
ND_LOGLEVEL: info
ND_BASEURL: ""
volumes:
- "/nas/navidrome/data:/data"
- "/data/music:/music:ro"
restart: unless-stopped

运行

docker-compose up -d

访问地址:

http://192.168.10.222:4533/

第一次创建管理员用户和密码
账号:admin/密码

客户端工具:amperfy

4.1 安装Samba服务

4.1.1 安装配置Samba

a)安装samba

1
sudo pacman -S samba

b) 配置samba

配置samba

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
vim /etc/samba/smb.conf

[global]
workgroup = WORKGROUP
server string = archnas
security = user
map to guest = Bad User
guest account = archnas

[data]
comment = data
path = /data
public = yes
browseable = yes
read only = yes
available = yes
guest ok = yes
read list = nobody
write list = archnas

c)检查配置

检查smb配置

1
testparm

d) 启用服务

1
2
sudo systemctl restart nmb && sudo systemctl enable nmb
sudo systemctl restart smb && sudo systemctl enable smb

4.1.2安装配置WSDD

安装wsdd。这样windows无法可以在网络发现nas主机。

1
2
pacman -S wsdd
sudo systemctl restart wsdd && sudo systemctl enable wsdd

4.2 安装Rsync服务:

4.2.2 安装配置Rsync

a) 安装rsync

1
sudo pacman -S rsync

b) 同步上传到远程rsync服务器

例如,

  1. 同步当前Nas服务器的/data/books目录,到远程服务器的 /data目录

    1
    rsync -av --progress /data/books archnas@192.168.10.228:/data/
  2. 同步当前Nas服务器的/data/books目录,到远程服务器的 /data目录(并且同步删除本地没有的文件)

1
rsync -av --delete --progress /data/books archnas@192.168.10.228:/data/
0%