引言#
最近因为袋有余钱,购置了一套树莓派CM5来折腾一下,顺便学习下linux系统。
目前对于这个系统的构想是首先做一个简单的服务器,将这个博客、5e-tools、FVTT部署上去,同时部署一个overleaf和代理。最后将这个网络套在一个nginx层中进行反向代理。目前实现了一些功能,正在持续更新中。
这篇文章全程基于了Raspberry Pi OS 64bit with Desktop,树莓派系统是CM5 8GB/64GB,讲述了一些经验,仍在持续更新。
关于Raspian系统#
UDP无法连接#
sudo nano /etc/xrdp/startwm.sh添加
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR即可
换apt源#
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo nano /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-updates main contrib non-free-firmware
sudo nano /etc/apt/sources.list.d/raspi.list
deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi bookworm main切换外部天线#
sudo nano boot/firmware/config.txt末尾添加
dtparam=ant2下载Github release#
curl -LjO https://github.com/samtools/htslib/releases/download/1.15.1/htslib-1.15.1.tar.bz2修改自启#
service --status-all
sudo systemctl enable/disable xxx
sudo systemctl deamon-reload
sudo systemctl start/stop xxx连不上5G wifi#
在CN配置中,一些信道没有启用。学校的wifi工作在60信道,但是不知为何在一次启动后变成了disabled。将wifi国家设置为US即可。不过在这些信道上由disabled变为no IR,仍需改进。
查看信道:#
iw listVSC copilot提示没有keyring#
确保电脑上安装了gnome-keyring libsecret seahorse(optional),然后VSC中命令-configure runtime arguments,结尾添加"password-store":“gnome-libsecret”,重启即可。
关于服务部署#
安装docker和换源#
参见Pidoc文档
# 卸载旧版本(如果有):
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
# 添加 Docker 官方 GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# 添加仓库到 Apt 源 (DEB822 .sources 格式):
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: http://mirrors.aliyun.com/docker-ce/linux/debian
Suites: trixie
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin测试docker
sudo docker run hello-world
sudo nano /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl restart docker卸载docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd将普通用户添加到docker组
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker安装nodejs#
# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"
# Download and install Node.js:
nvm install 22
# Verify the Node.js version:
node -v # Should print "v22.17.0".
nvm current # Should print "v22.17.0".
# Verify npm version:
npm -v # Should print "10.9.2".npm换源
npm config set registry https://registry.npmmirror.comFVTT部署#
从官网下载FVTT包,之后根据官方教程
node main.js --dataPath=$HOME/foundryvttData
sudo cp node-server.service /usr/lib/systemd/system配置守护进程
foundryvtt.service
[Unit]
Description=Foundry VTT
[Service]
Type=simple
ExecStart=/home/admin/.nvm/versions/node/v22.17.0/bin/node /home/admin/foundryvtt/resources/app/main.js --dataPath=/home/admin/foundryvttData
Restart=on-failure
User=admin
[Install]
WantedBy=multi-user.target
$ sudo systemctl daemon-reload
$ sudo systemctl start node-socket-server.socketproxy部署#
参见这里
这一步可以下载deb包,会自动配置守护进程等等
启动之后(可选)部署dashboard
docker run -d --name metacubexd -p 8080:80 ghcr.io/metacubex/metacubexd:latest # 8080可以替换成自己喜欢的端口配置中添加
external-controller: 0.0.0.0:9090
secret: 'replace-with-a-strong-secret'
external-controller-cors:
allow-private-network: true
allow-origins:
- 'http://192.168.1.2:8080' # your dashboard's address
# or, for trusted local networks only:
# - '*'之后外部访问即可。
开关代理:
vim /etc/profile
alias kmihomo="export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890"
alias gmihomo="unset http_proxy https_proxy all_proxy"开关即可。