Chancel's blog

119 字 1 分钟阅读

Debian12

  • system

安装常用软件:

apt update &&
apt install -y vim wget git curl htop gcc make openssl p7zip-full unzip net-tools build-essential trash-cli

# 常规选装
apt install -y screen btop proxychains iproute2 passwd iperf3 pipx

安装 oh-my-zsh

apt install -y zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

zsh 主题改为 risto

sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="risto"/' ~/.zshrc
exec zsh

将时区设置为上海:

timedatectl set-timezone Asia/Shanghai

安装 netplan

apt-get install netplan.io openvswitch-switch

编辑 /etc/netplan/01-netcfg.yaml

network:
  ethernets:
    enp1s0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.10.11/24]
      nameservers:
        addresses:
          - 192.168.10.12
      routes:
        - to: default
          via: 192.168.10.12
          on-link: true

应用配置:

chmod 600 /etc/netplan/01-netcfg.yaml
systemctl enable --now systemd-networkd
systemctl enable --now openvswitch-switch

将 SSH 公钥写入 authorized_keys

KEY='ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZ57GU6Y5oNGHQYIKbn2XhosgqMBhW67FygKT3i/B10cagNM9msxJ8IIPMw6q2PcXtjwAgw8WqezCucHblkMxmygsnPbJBiV8s0tUg3Wld0VW1m0W0dQ98y7c0QNZ/4L5EtklqYMpSlOZ/w+GW+BXOTg7fNhIWsMVUyUjd726goA3REpcrLsrb0AzVYSzcnCyGdoD81FrQk9b4ud49eN6VnDafac372D+bb+3h7LYrA4gZjLXeDDUxp7OfQuTpZlbUsYc6YmJq8n/a0OOB1SRDxKVZ4ft9a5NBdWWEgsjxCb1zCVLoTsNl/MpF5nm4L17NlgFGtnyw92KuK1wlKhkV/t4sQskp0F/3N8Cz7ea8vFHJIgjibivCyxsB4CCrOLOVxrrwTYEgu1YvpWox1p160lvnkIivyMfNdz+NuEx7f5/6euD0HW0B0SO6K0iH0yGhGNX1N9MctbabPOhWaV8+RpsVROZNW41JWcrxGamelG00Jc3MfHobCNSje4j/ZmEwg5DsksX5gwq60Jx5Jzvf7caOSzqes4mWa3ggjMpwyVratga9uE4u38rKFsSg6YkYXuIiV37uxjFEHi74F95DI1Dh8kkUHDiuIMrkFlHJlQk4K3zlI14mgyQAzshIyYbISq+Rp4RiQAdpXf6wPl5kpdRFl8pQRJAjuk4iCIlA9w=='

mkdir -p -m 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

grep -qxF "$KEY" ~/.ssh/authorized_keys || echo "$KEY" >> ~/.ssh/authorized_keys

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

常用 alias / function:

### =============== Network ===============
PROXY="http://example.com:8080"
alias px="http_proxy=$PROXY https_proxy=$PROXY HTTP_PROXY=$PROXY HTTPS_PROXY=$PROXY"
### ====== QUALITY OF LIFE SHORTCUTS ======
alias ..='cd ..'
alias ...='cd ../..'
alias mv='mv -i'
### ========== Docker Shortcuts ===========
alias dlog='docker compose logs -f --tail=100'
alias ds='docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
### ========= Git Shortcuts ===========
alias gs='git status'
alias ga='git add .'
alias gc='git commit -m'
alias gp='git push'
alias gl='git pull'
### ======= trash-cli ==============
alias rm='trash'
alias rmm='/bin/rm -i'

安装 uv 包管理器:

# curl 安装
curl -LsSf https://astral.sh/uv/install.sh | sh

# wget 安装
wget -qO- https://astral.sh/uv/install.sh | sh

将 pip 全局源改为中科大镜像:

echo -e "[global]\nindex-url = https://mirrors.ustc.edu.cn/pypi/simple" > /etc/pip.conf

安装 npm:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

Supervisor 是一个进程管理工具,可用于启动、停止和监控进程。它能在进程崩溃后自动重启,并提供日志记录功能。

参考:

[program:syncmemo]
directory=/opt/syncmemo
command=/opt/syncmemo/venv/bin/gunicorn --bind=127.0.0.1:28083 flaskr:app
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stdout_logfile_maxbytes=16MB
stdout_logfile_backups=2
redirect_stderr=true
# environment=PATH="/opt/syncmemo/venv/bin:%(ENV_PATH)s"
# environment=CONFIG="/opt/syncmemo/config.yaml"
user=root