二叉树树

二叉树树

瞎几吧写

N100 - PVE (fnOS+Debian) Infrastructure Record

Configuration & Requirements#

  • N100 CPU Frequency: Minimum 700 Mhz, Maximum 3400 Mhz | TDP: 6 W

  • 8G RAM

  • 128G M.2 NVme SSD

  • 512G SATA HDD

  • Realtek R8168 Wired Network Card

  • USB Wired Network Card

  • USB Drive (for PVE boot disk)

Goals#

  1. All systems managed through PVE

  2. Install fnOS under PVE, serve as NAS and configure automatic tracking (Passthrough: N100 integrated graphics 512G SATA HDD)

  3. Install Debian under PVE, set up QQBot, blog, AList


1. PVE#

Installation#

  • Download the latest executable file of Ventoy:

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

    • Use GPT partition table, NTFS format to write Ventoy to USB drive
  • Download the latest PVE ISO (using USTC mirror source):

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

    • Place the PVE ISO file in the root directory of the USB drive
  • Insert the USB network card, connect the USB drive to N100, boot from the USB drive, enter the PVE installation interface, and install PVE. Choose USB network card for network configuration

  • Restart, enter PVE, access WebUI via IP+8006 port, and log in

Configuration#

Install PVE Quick Management Script#

Configure Realtek R8168 Network Card#

Since Debian defaults to installing the R8169 driver, we need to manually install the R8168 driver; otherwise, we cannot use the wired network port of the N100 mini host to access the internet.

24da6bc57d5578cc0571e94eb86e4fc5

  • Extract and install: sh autorun.sh

  • Check for new network interfaces: 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
    ...
    
  • Configure the network configuration file: 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/*
    
  • Restart the network service: systemctl restart networking

  • Check 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
    
  • Remove the USB network card

Configure STUN Traversal#

Set DMZ Host on Router to PVE IP#

f4fcc13244db91fb4773e7b91198cef7

Install Lucky#

  • Execute: 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

  • Access Lucky backend via host:16601, set up STUN traversal

2a5defd3efb24997c36a051026d000bb

2. fnOS#

Installation#

  • Go to the official website to download the latest ISO:

    https://www.fnnas.com/

  • Upload to PVE:
    3bc8c47a8dca327915eabe6b090d7b76

  • Create fnOS virtual machine, select host for CPU type, steps omitted

  • Passthrough integrated graphics and hard disk:
    195f08668628d2316f72d364acbc374f

  • If you do not know the PCI ID of your integrated graphics and SATA controller: lspci

    • The integrated graphics is 00:02.0, and the SATA controller is 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)
      
  • Start the virtual machine and install fnOS

Configuration#

  • Go to Feiniu settings, create storage space, Linear mode, select the hard disk just passed through
    a616ed93f86e853a5096faa3fe3eef8e

  • Go to Feiniu application center to install qBittorrent, movies, and grant directory read permissions in the settings
    6ebae0d77d061aa2923d906de311dc4e

  • Configure the username and password for qBittorrent

  • Open Feiniu Docker, initialize

  • Pull and run the AutoBangumi Docker image:

    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
    
  • Access host:7892 to connect AutoBangumi to qBittorrent and configure the download address
    f4dfff19eb123558f04f2633aa5fa876

  • Add RSS. You can visit Mikan Project to obtain RSS from various subtitle groups

6b3627a855c7424e502a42dcd0b3fb1a

Note: When using Mikan Project, please subscribe to the RSS of individual subtitle groups, do not use personal RSS, as it will result in only being able to obtain the latest episode of all your tracked shows instead of all episodes of a single show.

  • Open Feiniu movies, initialize and set up the media library
    d1615135a5a5d2673a7058eff7db445e

    • Note: If you want to scrape old episodes of old shows, please rename them according to the standard. You can use automation tools: Episode-ReName.zip | AcoFork-AList

      • Level 1 directory: the qb download directory, no need to rename

      • Level 2 directory: show name

      • Level 3 directory: season, such as Season 1

      • Level 4 directory: episode and subtitles, such as S01E01.mp4 S01E01.chs.ass

3. Debian#

Installation#

  • Download Debian 12 ISO (USTC mirror source) (it is recommended to choose the DVD image for a more complete package and faster installation)

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

  • Upload to PVE, create Debian virtual machine, select host for CPU type, steps omitted

Install 1Panel:#

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

  • Install Openresty, MySQL, Halo, AList, configuration steps omitted

Set Up QQBot#

Install OneBot v11 Protocol Implementation: 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

  • Modify the configuration file: 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": ""
            }
        ]
    }
    
  • Restart the container and scan the QR code to log in

Install NoneBot2#

  • Install pip: apt install python3-pip

  • Configure pip USTC source: pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simple

  • Install pipx: apt install pipx

  • Install nb-cli: pipx install nb-cli

  • Set pipx variable: pipx ensurepath

  • Install nb bootstrap: nb self install nb-cli-plugin-bootstrap

  • Create a new NoneBot2 project: nb bs

  • root@n100-debian:~# nb bs
    Loading adapter list...
    Please enter the project name
    [?] Please enter > onani
    [?] Please select the adapter you want to use OneBot V11 (OneBot V11 protocol)
    Please enter the Bot superuser, the superuser has the highest authority over the Bot (for QQ integration, just fill in the QQ number) (leave blank to finish input)
    [?] Item 1 > 666
    [?] Item 2 >
    Please enter the Bot nickname, messages starting with the Bot nickname can replace @ (leave blank to finish input)
    [?] Item 1 >
    Please enter the Bot command prefix, messages starting with the prefix will be recognized as commands,
    If there is a command for query, when this configuration item has "/", it will only trigger with "/query",
    Leave blank to use the default value ['', '/', '#'] (leave blank to finish input)
    [?] Item 1 >
    Please enter the Bot command separator, generally used for secondary commands,
    Leave blank to use the default value ['.', ' '] (leave blank to finish input)
    [?] Item 1 >
    Please enter the NoneBot2 listening address. If you want to expose it to the public network, change it to 0.0.0.0
    [?] Please enter > 0.0.0.0
    Please enter the NoneBot2 listening port, range 1 ~ 65535, please ensure that this port number is the same as the connection endpoint configuration or related to port mapping configuration
    [?] Please enter > 9090
    [?] Do you want to release a quick start script in the project directory? Yes
    [?] Do you want to redirect the storage path of the localstore plugin to the project path for easier migration of the Bot later? Yes
    [?] Do you want to use the superuser Ping command reply plugin? Yes
    [?] Do you want to install the logpile plugin to provide logging to file functionality? Yes
    [?] Do you want to use the webui plugin to start the project for web management of NoneBot? (This plugin is still in development, not recommended for production) No
    Successfully created project onani
    [?] Do you want to create a new virtual environment? Yes
    Creating virtual environment in /root/onani/.venv
    Virtual environment created successfully
    [?] Do you need to modify or clear the pip PyPI mirror source configuration? No
    [?] Do you want to install project dependencies immediately? Yes
    Installing project dependencies
    Dependencies installed successfully
    [?] Please select the built-in plugins to enable
    Project configuration completed, let's get started!
    

Results Display (Domain has been abandoned Although it can be used, it has nothing to do with N100 anymore 🤔)#

d46ceef7a4ab36e7f86a1e9e307e469d

https://blog.onani.cn

https://alist.onani.cn

b79f3e8446380b473ce52bda7557c50a

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.