在云服务器上监听 Gitee 的 push 事件,自动拉取代码、npm run docs:build 并同步到网站根目录,替代本地「手动构建 + 上传」。
deploy.sh:部署主脚本(pull → install → build → rsync 到网站根)webhook.mjs:极简 HTTP 监听,仅用 Node 内置模块,收到 Gitee push 后调用 deploy.sh# 1. 安装依赖(构建需要)
# Node ≥ 18,并安装 rsync(多数 Linux 已自带)
# 2. 克隆仓库到 REPO_DIR
git clone https://gitee.com/tavis-el/eco-ev2025.git /var/www/eco-ev2025
cd /var/www/eco-ev2025
npm ci
# 3. 按需修改 deploy/deploy.sh 顶部的路径(REPO_DIR / WEB_ROOT)
chmod +x deploy/deploy.sh
# 4. 用密钥与端口启动 webhook(建议用 pm2 / systemd / nohup 保活)
WEBHOOK_TOKEN='你的密钥' WEBHOOK_PORT=9000 node deploy/webhook.mjs
# 例如后台保活:
# nohup env WEBHOOK_TOKEN='你的密钥' WEBHOOK_PORT=9000 node deploy/webhook.mjs > webhook.log 2>&1 &http://<服务器公网IP>:9000/(若服务器前有反代/防火墙,需放通该端口)。WEBHOOK_TOKEN 一致的值(留空则不校验)。本地改完直接:
git add -A && git commit -m "..." && git push推送后服务器自动构建并部署,无需本地 npm run docs:build,也无需手动上传。
WEB_ROOT 指向 nginx 等 Web 服务器实际站点根目录;若用 Gitee Pages / 对象存储,把 deploy.sh 里的 rsync 换成对应上传命令即可。bash deploy/deploy.sh 验证路径正确。dist 推回服务器。