适用场景:在 x86_64 的 Ubuntu 22.04/24.04 或 Debian 12 上,一键部署 VPS 补货监控 Bot(公开页轮询 + 可选 Chrome 登录态监控 + Telegram 推送)。
1. 脚本做什么
scripts/install-vps.sh 会:
- 安装系统依赖(Node 条件安装、Chrome、Xvfb、x11vnc 等)
- 把项目落到
/opt/vps-stock-bot - 创建系统用户
vpsmon 安装 systemd 单元:
vps-stock-public(公开页监控)vps-stock-browser(登录页监控)vps-stock-display/vps-stock-chrome/vps-stock-vnc(登录桌面)
- 安装控制命令:
/usr/local/sbin/vps-stockctl - 不会自动把监控切到正式推送(默认
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/data | SQLite / 快照 |
/opt/vps-stock-bot/auth/chrome | Chrome 用户数据(登录态) |
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 start6. 权限坑(实战)
如果 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/.env7. 验收
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=08. 卸载/停用(不删数据示例)
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 ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。