Raspberry Deployment

  2 分钟   19196 字    |    

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

  1. 安装zsh:sudo apt install zsh
  2. 安装oh-my-zsh:sh -c "$(curl -fsSL https://gitee.com/Devkings/oh\_my\_zsh\_install/raw/master/install.sh)"
  3. 插件:自动补全: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

  1. 终端开启代理

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

  1. 设置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

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

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

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

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

教程

linux_arm64_client.tar.gz

./npc install -server=120.46.217.131:8023 -vkey=q4zzgztzarn3jttr

1Panel

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

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"
~  ~  The   End  ~  ~


 赏 
感谢您的支持,我会继续努力哒!
支付宝收款码
tips
文章二维码 分类标签:教程raspberry
文章标题: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)
(*) 4 + 7 =
快来做第一个评论的人吧~