diff --git a/deploy/update.sh b/deploy/update.sh new file mode 100644 index 0000000..ecb695d --- /dev/null +++ b/deploy/update.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# vps-manager 自动更新脚本(由 systemd timer 定时触发) +# 从 Gitea 拉取最新代码,如有更新则重启服务 +# 部署位置:/opt/vps-manager/deploy/update.sh + +set -euo pipefail + +cd /opt/vps-manager + +git fetch -q origin main + +LOCAL=$(git rev-parse HEAD) +REMOTE=$(git rev-parse origin/main) + +if [ "$LOCAL" = "$REMOTE" ]; then + echo "[$(date '+%F %T')] 代码已是最新,无需更新" + exit 0 +fi + +echo "[$(date '+%F %T')] 检测到新版本: ${LOCAL:0:8} -> ${REMOTE:0:8}" +git pull --ff-only -q origin main + +# 依赖如有变更自动安装(无变化时 pip 会快速跳过) +.venv/bin/pip install -q -r requirements.txt 2>/dev/null || true + +# 重启服务加载新代码 +systemctl restart vps-manager +echo "[$(date '+%F %T')] 已重启 vps-manager 服务"