N100 - PVE(fnOS+Debian)基建记录

在N100小主机上安装PVE,然后在其中安装飞牛NAS和Debian,实现追番建站分离,并且易扩展,易迁移

作者:二叉树树 AcoFork · 2024-10-27

配置&需求

N100 CPU 频率:最小 700 Mhz, 最大 3400 Mhz | TDP:6 W

8G RAM

128G M.2 NVme SSD

512G SATA HDD

Realtek R8168 有线网卡

USB有线网卡

U盘(作PVE引导盘)

目标

所有系统通过PVE管理

PVE下安装fnOS,作NAS并配置自动追番(直通:N100核显 512G SATA HDD )

PVE下安装Debian,搭建QQBot、博客、AList

1. PVE

安装

下载Ventoy最新版可执行文件:

https://www.ventoy.net/cn/download.html

使用GPT分区表,NTFS格式将Ventoy写入U盘

下载PVE最新版ISO(使用USTC镜像源):

https://mirrors.ustc.edu.cn/help/proxmox.html

将PVE的ISO文件放入U盘根目录

插入USB网卡,U盘连接到到N100,开机从U盘启动,进入PVE安装界面,安装PVE。网络配置选择USB网卡

重启,进入PVE,通过IP+8006端口进入WebUI,登录进去

配置

安装PVE快捷管理脚本

安装PVE快捷管理脚本:pve_source.tar.gz | AcoFork-AList 或 https://wwp.lanzoul.com/ivHta1ngmo6d (密码:i1ws)(来自:在下莫老师)

解压:tar zxvf pve_source.tar.gz

运行:./pve_source

同意许可协议

依次执行白框操作

扩容local:lvextend -rl +100%FREE /dev/pve/root

配置Realtek R8168网卡

由于Debian系默认安装R8169驱动,我们需要手动安装R8168驱动,否则无法使用N100小主机自带的有线网口上网

下载驱动:

https://www.realtek.com/Download/List?cate_id=584

解压,安装:sh autorun.sh

查看是否有新的网络接口:ip a

shell

root@n100-pve:~# ip a

...

2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr1 state UP group default qlen 1000

link/ether 00:e0:4c:08:91:a6 brd ff:ff:ff:ff:ff:ff

...

配置网络配置文件:nano /etc/network/interfaces

text

# network interface settings; autogenerated

# Please do NOT modify this file directly, unless you know what

# you're doing.

#

# If you want to manage parts of the network configuration manually,

# please utilize the 'source' or 'source-directory' directives to do

# so.

# PVE will preserve these directives, but will NOT read its network

# configuration from sourced files, so do not attempt to move any of

# the PVE managed interfaces into external files!

auto lo

iface lo inet loopback

iface wlp1s0 inet manual

iface enp3s0 inet manual

auto vmbr1

iface vmbr1 inet static

address 192.168.124.25/24

gateway 192.168.124.1

bridge-ports enp3s0

bridge-stp off

bridge-fd 0

iface vmbr1 inet6 auto

dhcp 1

accept_ra 2

request_prefix 1

source /etc/network/interfaces.d/*

重启网络服务:systemctl restart networking

查看ip:ip a

shell

root@n100-pve:~# ip a

...

2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr1 state UP group default qlen 1000

link/ether 00:e0:4c:08:91:a6 brd ff:ff:ff:ff:ff:ff

...

4: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether 00:e0:4c:08:91:a6 brd ff:ff:ff:ff:ff:ff

inet 192.168.124.25/24 scope global vmbr1

valid_lft forever preferred_lft forever

inet6 2409:8a30:320:7fc0:2e0:4cff:fe08:91a6/64 scope global dynamic mngtmpaddr

valid_lft 2763sec preferred_lft 2762sec

inet6 fe80::2e0:4cff:fe08:91a6/64 scope link

valid_lft forever preferred_lft forever

卸除USB网卡

配置STUN穿透

路由器设置DMZ主机为PVEIP

安装Lucky

执行:curl -o /tmp/install.sh http://6.666666.host:6/files/golucky.sh && sh /tmp/install.sh http://6.666666.host:6/files 2.13.4

通过host:16601 进入Lucky后台,设置STUN穿透

2. fnOS

安装

前往官网下载最新版ISO:

https://www.fnnas.com/

上传至PVE:

创建fnOS虚拟机,CPU类型选择host,步骤略

直通核显和硬盘:

如果你不知道你的核显和SATA控制器的PCI ID:lspci

可见核显为00:02.0,SATA控制器为00:17.0

shell

root@n100-pve:~# lspci

00:00.0 Host bridge: Intel Corporation Device 461c

00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics]

00:0a.0 Signal processing controller: Intel Corporation Platform Monitoring Technology (rev 01)

00:14.0 USB controller: Intel Corporation Alder Lake-N PCH USB 3.2 xHCI Host Controller

00:14.2 RAM memory: Intel Corporation Alder Lake-N PCH Shared SRAM

00:16.0 Communication controller: Intel Corporation Alder Lake-N PCH HECI Controller

00:17.0 SATA controller: Intel Corporation Alder Lake-N SATA AHCI Controller

00:1a.0 SD Host controller: Intel Corporation Device 54c4

00:1c.0 PCI bridge: Intel Corporation Device 54be

00:1d.0 PCI bridge: Intel Corporation Alder Lake-N PCI Express Root Port

00:1d.1 PCI bridge: Intel Corporation Alder Lake-N PCI Express Root Port

00:1e.0 Communication controller: Intel Corporation Alder Lake-N Serial IO UART Host Controller

00:1e.3 Serial bus controller: Intel Corporation Device 54ab

00:1f.0 ISA bridge: Intel Corporation Alder Lake-N PCH eSPI Controller

00:1f.3 Audio device: Intel Corporation Alder Lake-N PCH High Definition Audio Controller

00:1f.4 SMBus: Intel Corporation Alder Lake-N SMBus

00:1f.5 Serial bus controller: Intel Corporation Alder Lake-N SPI (flash) Controller

01:00.0 Network controller: Intel Corporation Wireless 3160 (rev 83)

02:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5765DL NVMe SSD Controller (DRAM-less) (rev 01)

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 2b)

启动虚拟机,安装fnOS

配置

前往飞牛设置,创建储存空间,Linear模式,选择刚才直通的硬盘

前往飞牛应用中心安装qBittorrent、影视,并且在设置给予目录读取权限

配置qBittorrent的用户名和密码

打开飞牛Docker,初始化

拉取并运行AutoBangumi Docker镜像:

shell

docker run -d \

--name=AutoBangumi \

-v /vol1/1000/AutoBangumi/config:/app/config \

-v /vol1/1000/AutoBangumi/data:/app/data \

-p 7892:7892 \

-e TZ=Asia/Shanghai \

-e PUID=$(id -u) \

-e PGID=$(id -g) \

-e UMASK=022 \

--network=bridge \

--dns=8.8.8.8 \

--restart unless-stopped \

ghcr.onani.cn/estrellaxd/auto_bangumi:latest

进入host:7892 让AutoBangumi连接qBittorrent并配置下载地址

添加RSS。可前往蜜柑计划 - Mikan Project获得各个字幕组的RSS

注意:使用蜜柑计划 - Mikan Project时,请订阅单个字幕组的RSS,不要使用个人的RSS,会导致只能获取到你所有追番的最新一集而不是单个番的全部剧集

打开飞牛影视,初始化并设置媒体库

注意:如果要刮削旧集旧番,请规范重命名,可以使用自动化工具:Episode-ReName.zip | AcoFork-AList

一级目录:即qb下载目录,无需重命名

二级目录:番剧名称

三级目录:季,如Season 1

四级目录:集和字幕,如S01E01.mp4 S01E01.chs.ass

3. Debian

安装

下载Debian12 ISO(USTC镜像源)(建议选择DVD镜像,包更全,安装更快)

https://mirrors.ustc.edu.cn/help/debian-cd.html

上传至PVE,创建Debian虚拟机,CPU类型选择host,步骤略

安装1Panel:

https://1panel.cn/docs/installation/online_installation/

在1Panel中安装Openresty MySQL Halo AList Cloudflared 配置步骤略

搭建QQBot

安装OneBotv11协议实现:Lagrange.OneBot

Docker Run:docker run -td -p 8081:8081 -v /root/qqbot/lo:/app/data -e UID=$UID -e GID=$(id -g) ghcr.onani.cn/lagrangedev/lagrange.onebot:edge

修改配置文件:appsettings.json

json

{

"Logging": {

"LogLevel": {

"Default": "Information",

"Microsoft": "Warning",

"Microsoft.Hosting.Lifetime": "Information"

}

},

"SignServerUrl": "",

"SignProxyUrl": "",

"MusicSignServerUrl": "",

"Account": {

"Uin": 0,

"Password": "",

"Protocol": "Linux",

"AutoReconnect": true,

"GetOptimumServer": true

},

"Message": {

"IgnoreSelf": true,

"StringPost": false

},

"QrCode": {

"ConsoleCompatibilityMode": false

},

"Implementations": [

{

"Type": "ReverseWebSocket",

"Host": "192.168.124.34",

"Port": 9090,

"Suffix": "/onebot/v11/ws",

"ReconnectInterval": 5000,

"HeartBeatInterval": 5000,

"AccessToken": ""

}

]

}

重启容器,扫码登录

安装NoneBot2

安装pip:apt install python3-pip

配置pip USTC源:pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simple

安装pipx:apt install pipx

安装nb-cli:pipx install nb-cli

设置pipx变量:pipx ensurepath

安装nb bootstrap:nb self install nb-cli-plugin-bootstrap

创建新NoneBot2项目:nb bs

text

root@n100-debian:~# nb bs

加载适配器列表中……

请输入项目名称

[?] 请输入 > onani

[?] 请选择你想要使用的适配器 OneBot V11 (OneBot V11 协议)

请输入 Bot 超级用户,超级用户拥有对 Bot 的最高权限(如对接 QQ 填 QQ 号即可)(留空回车结束输入)

[?] 第 1 项 > 666

[?] 第 2 项 >

请输入 Bot 昵称,消息以 Bot 昵称开头可以代替艾特(留空回车结束输入)

[?] 第 1 项 >

请输入 Bot 命令起始字符,消息以起始符开头将被识别为命令,

如果有一个指令为 查询,当该配置项中有 "/" 时使用 "/查询" 才能够触发,

留空将使用默认值 ['', '/', '#'](留空回车结束输入)

[?] 第 1 项 >

请输入 Bot 命令分隔符,一般用于二级指令,

留空将使用默认值 ['.', ' '](留空回车结束输入)

[?] 第 1 项 >

请输入 NoneBot2 监听地址,如果要对公网开放,改为 0.0.0.0 即可

[?] 请输入 > 0.0.0.0

请输入 NoneBot2 监听端口,范围 1 ~ 65535,请保证该端口号与连接端配置相同,或与端口映射配置相关

[?] 请输入 > 9090

[?] 是否在项目目录中释出快捷启动脚本? Yes

[?] 是否将 localstore 插件的存储路径重定向到项目路径下以便于后续迁移 Bot? Yes

[?] 是否使用超级用户 Ping 指令回复插件? Yes

[?] 是否安装 logpile 插件提供日志记录到文件功能? Yes

[?] 是否在启动脚本中使用 webui 插件启动项目以使用网页管理 NoneBot?(该插件仍在开发中,不推荐用于生产环境) No

成功新建项目 onani

[?] 是否新建虚拟环境? Yes

正在 /root/onani/.venv 中创建虚拟环境

创建虚拟环境成功

[?] 是否需要修改或清除 pip 的 PyPI 镜像源配置? No

[?] 是否立即安装项目依赖? Yes

正在安装项目依赖

依赖安装成功

[?] 请选择需要启用的内置插件

项目配置完毕,开始使用吧!

成果展示(域名已弃用)

https://blog.onani.cn

https://alist.onani.cn

完整交互功能需要 JavaScript;加载后即可使用。以下入口可直接打开。