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#
-
All systems managed through PVE
-
Install fnOS under PVE, serve as NAS and configure automatic tracking (Passthrough:
N100 integrated graphics
512G SATA HDD
) -
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#
-
Install PVE quick management script: pve_source.tar.gz | AcoFork-AList or https://wwp.lanzoul.com/ivHta1ngmo6d (Password: i1ws) (from: Teacher Mo)
-
Extract:
tar zxvf pve_source.tar.gz
-
Run:
./pve_source
-
Agree to the license agreement
-
Sequentially execute the operations in the white box
-
Expand local:
lvextend -rl +100%FREE /dev/pve/root
-
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.
-
Download the driver:
-
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#
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
2. fnOS#
Installation#
-
Go to the official website to download the latest ISO:
-
Upload to PVE:
-
Create fnOS virtual machine, select host for CPU type, steps omitted
-
Passthrough integrated graphics and hard disk:
-
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 is00: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
-
Go to Feiniu application center to install qBittorrent, movies, and grant directory read permissions in the settings
-
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
-
Add RSS. You can visit Mikan Project to obtain RSS from various subtitle groups
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
-
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)
-
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 🤔)#