1939 字
10 分钟
N100 - PVE(fnOS+Debian)基建记录
2024-10-28

配置&需求#

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

  • 8G RAM

  • 128G M.2 NVme SSD

  • 512G SATA HDD

  • Realtek R8168 有线网卡

  • USB有线网卡

  • U盘(作PVE引导盘)

目标#

  1. 所有系统通过PVE管理

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

  3. 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快捷管理脚本#

配置Realtek R8168网卡#

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

  • 下载驱动:

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

  • 解压,安装:sh autorun.sh

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

  • 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

    # 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

    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

      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镜像:

    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#

安装#

安装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

    {
        "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

  • 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

N100 - PVE(fnOS+Debian)基建记录
https://onani.cn/posts/n100-pve/
作者
AcoFork
发布于
2024-10-28
许可协议
CC BY-NC-SA 4.0