VPS 补货监控安装脚本教程:install-vps.sh

适用场景:在 x86_64 的 Ubuntu 22.04/24.04 或 Debian 12 上,一键部署 VPS 补货监控 Bot(公开页轮询 + 可选 Chrome 登录态监控 + Telegram 推送)。


1. 脚本做什么

scripts/install-vps.sh 会:

  1. 安装系统依赖(Node 条件安装、Chrome、Xvfb、x11vnc 等)
  2. 把项目落到 /opt/vps-stock-bot
  3. 创建系统用户 vpsmon
  4. 安装 systemd 单元:

    • vps-stock-public(公开页监控)
    • vps-stock-browser(登录页监控)
    • vps-stock-display / vps-stock-chrome / vps-stock-vnc(登录桌面)
  5. 安装控制命令:/usr/local/sbin/vps-stockctl
  6. 不会自动把监控切到正式推送(默认 DRY_RUN=1

2. 前置条件

  • 架构:x86_64
  • 系统:Debian / Ubuntu
  • root
  • 出网可访问 Node.js / Google Chrome 下载源
  • 已有 Telegram Bot(先别急着正式推)

3. 安装步骤

# 1) 上传并解压部署包到某目录,例如 /root/vps-stock-bot
cd /root/vps-stock-bot

# 2) 安装
sudo bash scripts/install-vps.sh

装完后关键路径:

路径用途
/opt/vps-stock-bot程序目录
/opt/vps-stock-bot/.env环境变量
/opt/vps-stock-bot/config/monitors.yaml监控列表
/opt/vps-stock-bot/dataSQLite / 快照
/opt/vps-stock-bot/auth/chromeChrome 用户数据(登录态)

4. 最小配置(脱敏)

编辑:

sudo vim /opt/vps-stock-bot/.env

至少配置:

TELEGRAM_BOT_TOKEN=你的BotToken
TELEGRAM_CHAT_IDS=你的ChatID
DRY_RUN=1
ATTACH_HTML_SNAPSHOTS=0
NOTIFY_ON_FIRST_SEEN=0
NOTIFY_ON_CHANGE=1
NOTIFY_ON_SOLD_OUT=0

说明:

  • DRY_RUN=1:只采集不推送,先跑通
  • NOTIFY_ON_FIRST_SEEN=0:避免首次建基线把全部机型当新货刷屏
  • Token / ChatID 不要发到群、不要进 git

可选:先只启用少量公开监控(改 config/monitors.yaml),HostDZire 这类大批量默认建议先关。


5. 安装后建议流程

# 校验 Telegram
sudo vps-stockctl telegram-check

# 先建公开页基线(要求 DRY_RUN=1)
sudo vps-stockctl baseline

# 需要登录商家时,再开登录桌面
sudo vps-stockctl login-desktop
# 本机:ssh -N -L 5900:127.0.0.1:5900 user@vps
# VNC 连 127.0.0.1:5900,在远程 Chrome 登录商家

# 确认无误后正式推送
sudo sed -i 's/^DRY_RUN=.*/DRY_RUN=0/' /opt/vps-stock-bot/.env
sudo vps-stockctl start

6. 权限坑(实战)

如果 vpsmon 读不了 /opt/vps-stock-bot/package.json,通常是目录权限过严。可按组读方式收敛:

chown -R root:vpsmon /opt/vps-stock-bot
find /opt/vps-stock-bot -type d -exec chmod 750 {} \;
find /opt/vps-stock-bot -type f -exec chmod 640 {} \;
chmod 750 /opt/vps-stock-bot/scripts/* /opt/vps-stock-bot/node_modules/.bin/* 2>/dev/null || true
chown -R vpsmon:vpsmon /opt/vps-stock-bot/data /opt/vps-stock-bot/auth
chmod 640 /opt/vps-stock-bot/.env

7. 验收

systemctl is-active vps-stock-public vps-stock-browser vps-stock-chrome
curl -s http://127.0.0.1:8787/healthz
curl -s http://127.0.0.1:8787/status
sudo journalctl -u vps-stock-public -u vps-stock-browser -n 50 --no-pager

公开页成功时,日志会出现类似:

monitor complete  offers=N changes=0

8. 卸载/停用(不删数据示例)

sudo systemctl disable --now vps-stock-public vps-stock-browser
# 如不需要登录桌面
sudo systemctl disable --now vps-stock-vnc vps-stock-chrome vps-stock-display

数据在 data/auth/,删除前先备份。


9. 安全建议

  • Bot Token、商家账号密码、VNC 都视为高敏
  • VNC / CDP 只绑 127.0.0.1,经 SSH 隧道访问
  • 生产前务必 DRY_RUN=1 建基线
  • Cloudflare 强的站点(如部分商家)可能需要人工过盾或代理,不保证全自动

一句话install-vps.sh 负责把补货监控「装对位置、装成服务」;真正稳不稳定,取决于监控名单收敛、基线与 DRY_RUN 纪律。

本文著作权归作者 [ doudoudoubao ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。

发表留言