Raspberry Deployment
Raspberry Deployment
基础
mirror
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
nano /etc/apt/sources.list
# 阿里云的源地址
deb http://mirrors.aliyun.com/debian bookworm main contrib non-free non-free-firmware
ssh
# root开启ssh
vim /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
PermitRootLogin yes
sudo systemctl restart sshd
设置root密码:sudo passwd root
zsh
- 安装zsh:
sudo apt install zsh
- 安装oh-my-zsh:
sh -c "$(curl -fsSL https://gitee.com/Devkings/oh\_my\_zsh\_install/raw/master/install.sh)"
- 插件:自动补全:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
plugins=(
zsh-autosuggestions
)
mount
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 29.8G 0 disk
└─sda1 8:1 1 29.8G 0 part /media/pi/NVME_DRIVE
格式化:sudo mkfs.ext4 /dev/sda1
设置标签:sudo e2label /dev/sda1 hd_disk
sudo mkdir /mnt/nvme_drive
sudo mount hd_disk /mnt/nvme_drive
开机自动挂载,创建 systemd 服务单元文件
vim /etc/systemd/system/mount_disk.service
[Unit]
Description=Mount External Drive using UUID
After=network.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'mount UUID=28c8dd4f-6b99-4943-8f6a-06e200100073 /mnt/nvme_drive'
ExecStop=/bin/umount /mnt/nvme_drive
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start mount_disk.service
sudo systemctl enable mount_disk.service
proxy
- 终端开启代理
vim /etc/profile.d/proxy.sh
export http_proxy="http://120.46.217.131:7898"
export https_proxy="http://120.46.217.131:7898"
sudo chmod +x /etc/profile.d/proxy.sh
开启:source /etc/profile.d/proxy.sh
状态:env | grep -i proxy
- 设置wlan0代理
获取wlan0连接名:nmcli con show
sudo nmcli con mod preconfigured ipv4.proxy.method manual
sudo nmcli con mod preconfigured ipv4.proxy.http "http://120.46.217.131:7898"
sudo nmcli con mod preconfigured ipv4.proxy.https "http://120.46.217.131:7898"
sudo nmcli con down preconfigured
sudo nmcli con up preconfigured
nmcli con show preconfigured
docker
# step 1: 安装必要的一些系统工具
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
# docker-compose
1. sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2. sudo chmod +x /usr/local/bin/docker-compose
# Step 2: 开启Docker服务
systemctl start docker
systemctl enable docker
# Step 3:修改镜像源
vim /etc/docker/daemon.json
{
"registry-mirrors": ["docker.kubesre.xyz"]
}
service docker restart
容器
webdav
config.yaml
# 监听任意网卡,多网卡可指定对应ip
address: 0.0.0.0
port: 8081
auth: true
prefix: /
modify: true
rules: []
# 跨域设置
cors:
enabled: true
credentials: true
allowed_headers:
- Depth
allowed_hosts:
- http://0.0.0.0:8081
allowed_methods:
- GET
exposed_headers:
- Content-Length
- Content-Range
# 用户信息,如果 auth 为 true 生效
users:
- username: admin
password: admin
permissions: CRUD
# 配置自己的 webdav 访问范围,此例为 /data 内所有文件
scope: /dav
docker run -d \
--name webdav-go \
-v /mnt/nvme_drive:/data \
-v /root/data/docker_data/webdav/config:/config \
-p 18081:8081 \
--restart always \
hacdias/webdav:latest \
--config config/config.yaml
portainer
docker run -d -p 9000:9000 -p 8000:8000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /root/data/docker_data/portainer/data:/data \
-d 6053537/portainer-ce:latest
baidudisk
docker run -itd --privileged\
--name=baidunetdisk \
-p 5800:5800 \
-p 5900:5900 \
-e USER_ID=0 \
-e GROUP_ID=0 \
-v /root/data/docker_data/baidunetdisk/config:/config \
-v /mnt/nvme_drive/Download/baidu:/config/baidunetdiskdownload \
--restart always \
johngong/baidunetdisk:latest
xunlei
docker run -itd \
--name=xunlei \
--privileged \
--restart always \
-v /root/data/docker_data/xunlei/data:/xunlei/data \
-v /mnt/nvme_drive/Download/xunlei:/xunlei/downloads \
-p 2345:2345 \
cnk3x/xunlei
sun-panel
docker run -d \
--restart=always \
-p 3002:3002 \
-v /root/data/docker_data/sun-panel/conf:/app/conf \
-v /var/run/docker.sock:/var/run/docker.sock \
--name sun-panel \
hslr/sun-panel
clash
docker run -d \
--name clash \
-v /root/data/docker_data/clash/bixin.yaml:/root/.config/clash/config.yaml \
-p 9090:8080 -p 7898:7890 \
clash-and-dashboard:latest
vscode
docker run -itd --name code-server -p 1818:8080 \
-v /root/data/docker_data/vscode/.local:/home/coder/.local \
-v /root/data/docker_data/vscode/.config:/home/coder/.config \
-v /root:/home/coder/project \
-u "$(id -u):$(id -g)" \
codercom/code-server:latest
qbittorent
docker run -d \
--name qbittorrentee \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
-p 8080:8080 \
-p 6881:6881 \
-p 6881:6881/udp \
-v /root/data/docker_data/qbittorentee/config:/config \
-v /mnt/nvme_drive/Download/xunlei/downloads:/downloads \
--restart always \
superng6/qbittorrentee
jellyfin
docker run -d \
--name jellyfin \
--restart always \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
-v /root/data/docker_data/jellyfin/config:/config \
-v /root/data/docker_data/jellyfin/cache:/cache \
-v /mnt/nvme_drive/Download/xunlei/douban:/media \
-p 8096:8096 \
-p 7359:7359/udp \
-p 1900:1900/udp \
nyanmisaka/jellyfin:latest-rockchip
emby
docker run -d \
--name emby \
--restart always \
-e UID=0 \
-e GID=0 \
-e GIDLIST=0 \
-e TZ=Asia/Shanghai \
-v /root/data/docker_data/emby:/config \
-v /mnt/nvme_drive/Download/xunlei/douban:/media \
-p 8097:8096 \
emby/embyserver_arm64v8:4.9.0.29
nas-tools
version: "3"
services:
nas-tools:
image: hsuyelin/nas-tools:latest
ports:
- 3000:3000 # 默认的webui控制端口
volumes:
- ./config:/config # 冒号左边请修改为你想保存配置的路径
- /mnt/nvme_drive/Download/gopeed:/app/downloads/gopeed
- /mnt/nvme_drive/Download/media:/app/downloads/media
- /mnt/nvme_drive/Download/baidu:/app/downloads/baidu
- /mnt/nvme_drive/Download/xunlei/movie:/app/downloads/xunlei
environment:
- PUID=0 # 想切换为哪个用户来运行程序,该用户的uid
- PGID=0
- UMASK=000 # 掩码权限,默认000
- NASTOOL_AUTO_UPDATE=false # 如需在启动容器时自动升级程程序请设置为true
- NASTOOL_CN_UPDATE=false # 如果开启了容器启动自动升级程序,并且网络不太友好时,可以设置为true,会使用国内源进行软件更新
- REPO_URL=https://ghproxy.com/https://github.com/hsuyelin/nas-tools.git # 当你访问github网络很差时,可以考虑解释本行注释
restart: always
network_mode: bridge
hostname: nas-tools
container_name: nas-tools
douban-tool
version: "3"
services:
tool:
image: zack357/douban-tool:latest
container_name: douban-tool
restart: always
ports:
- 5000:5000
volumes:
- /mnt/nvme_drive/Download/xunlei/downloads:/downloads
- ./douban-tool/data:/app/data
- ./douban-tool/config:/app/config
其他
wifi
扫描当前可用无线网络:nmcli device wifi list
连接:nmcli device wifi connect "OpenWrt_5G" password "12345678"
状态:nmcli connection show
smb
vim /etc/samba/smb.conf
[pi_share]
comment = Raspberry Pi Share
path = /mnt/nvme_drive
browseable = yes
read only = no
guest ok = yes
create mask = 0755
npc
./npc install -server=120.46.217.131:8023 -vkey=q4zzgztzarn3jttr
1Panel
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
ffmpeg
下载:apt install ffmpeg
启动:ffmpeg -i /dev/video0 -f flv -b:v 1000k rtmp://120.46.217.131:1935/live/rasp
访问:http://120.46.217.131:8889/live?app=live&stream=rasp、rtmp://120.46.217.131:1935/live/rasp
WiringPi
# fetch the source
sudo apt install git
git clone https://github.com/WiringPi/WiringPi.git
cd WiringPi
# build the package
./build debian
cd debian-template
# install it
sudo apt install ./wiringpi_3.6_arm64.deb
oled
temp_control.zip
cd temp_control/
gcc -o temp_control temp_control.c ssd1306_i2c.c -lwiringPi
./temp_control
vim /etc/systemd/system/temp_control.service
[Unit]
Description=Temperature Control Service
After=network.target
[Service]
ExecStart=/root/data/backend/temp_control/temp_control
WorkingDirectory=/root/data/backend/temp_control
User=root
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable temp_control.service
tmux
编辑: vim ~/.tmux.conf
----
# Send prefix
set-option -g prefix C-a
unbind-key C-a
bind-key C-a send-prefix
# Use Alt-arrow keys to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
# Mouse mode
set -g mouse on
# Set easier window split keys
bind-key v split-window -h
bind-key h split-window -v
# Easy config reload
bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded"
----
生效:tmux source ~/.tmux.conf
docker-compose
version: '3.8'
services:
webdav-go:
image: hacdias/webdav:latest
container_name: webdav-go
volumes:
- /mnt/nvme_drive/Download:/dav
- /root/data/docker_data/webdav/config:/config
ports:
- "8081:8081"
restart: always
command: --config config/config.yaml
portainer:
image: 6053537/portainer-ce:latest
container_name: portainer
ports:
- "9000:9000"
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/data/docker_data/portainer/data:/data
restart: always
sun-panel:
image: hslr/sun-panel
container_name: sun-panel
volumes:
- /root/data/docker_data/sun-panel/conf:/app/conf
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "3002:3002"
restart: always
baidunetdisk:
image: johngong/baidunetdisk:latest
container_name: baidunetdisk
privileged: true
environment:
- USER_ID=0
- GROUP_ID=0
volumes:
- /root/data/docker_data/baidunetdisk/config:/config
- /mnt/nvme_drive/Download/baidu:/config/baidunetdiskdownload
ports:
- "5800:5800"
- "5900:5900"
restart: always
xunlei:
image: cnk3x/xunlei
container_name: xunlei
privileged: true
volumes:
- /root/data/docker_data/xunlei/data:/xunlei/data
- /mnt/nvme_drive/Download/media:/xunlei/downloads
ports:
- "2345:2345"
restart: always
code-server:
image: codercom/code-server:latest
container_name: code-server
volumes:
- /root/data/docker_data/vscode/.local:/home/coder/.local
- /root/data/docker_data/vscode/.config:/home/coder/.config
- /root:/home/coder/project
ports:
- "8081:8080"
user: "0:0"
restart: always
qbittorrentee:
image: superng6/qbittorrentee
container_name: qbittorrentee
restart: always
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
ports:
- "8080:8080"
- "6881:6881"
- "6881:6881/udp"
volumes:
- /root/data/docker_data/qbittorentee/config:/config
- /mnt/nvme_drive/Download/media/douban:/downloads
douban-tool:
image: zack357/douban-tool:latest
container_name: douban-tool
restart: always
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
ports:
- "5000:5000"
volumes:
- /mnt/nvme_drive/Download/media/douban:/downloads
- /root/data/docker_data/douban-tool/data:/app/data
- /root/data/docker_data/douban-tool/config:/app/config
emby:
image: emby/embyserver_arm64v8:4.9.0.29
container_name: emby
restart: always
environment:
- UID=0
- GID=0
- GIDLIST=0
- TZ=Asia/Shanghai
volumes:
- /root/data/docker_data/emby:/config
- /mnt/nvme_drive/Download/xunlei/douban:/media
ports:
- "8097:8096"
extra_hosts:
- "host.docker.internal:host-gateway"
文章标题:Raspberry Deployment
文章链接:http://120.46.217.131:82/archives/77/
最后编辑:2024 年 8 月 21 日 09:57 By Yang
许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)