Stock-dedione-VPS Monitor 教程
在腾讯云现有 CVM(wangdongchao.cloud 同机)上跑一个常驻监控,定时抓取 DediOne 的 LAX.VPS.CN.1C1G20G 商品页:缺货时静默,一旦有货立刻 个人微信(Server 酱)+ QQ 邮箱 双通道推送。本教程只讲「干什么、怎么搭、怎么看、怎么停」,部署即忘。
一、干什么事
- 监控目标:DediOne 洛杉矶优化线路套餐
LAX.VPS.CN.1C1G20G(年付 $12.99,1C/1G/20G,常处缺货)。 - 判定逻辑:每 60 秒抓取商品页。缺货→页面显示
Out of Stock→静默;有货→加购跳转命中a=view→推送。 - 双通道推送:个人微信(Server 酱 SendKey,直推普通微信)+ QQ 邮箱 SMTP,两个渠道国内直连、免代理。
- 运行方式:Node + pm2 常驻 daemon,崩溃/服务器重启自动恢复,零额外服务器成本。
二、原理图
监控进程每 60s 抓一次商品页 → 缺货静默 / 有货经 sendNotify 双通道推送。
三、操作步骤
1. 前置检查(SSH 进 CVM)
node -v # 需 >= 18(推荐 22)
pnpm -v # 没有就:npm i -g pnpm
curl -I https://dedione.com/store/special-vps-plans/20260520-lax-vps-cn-1c1g20g-special-1299
2. 部署
mkdir -p /opt/stockvps-monitor && cd /opt/stockvps-monitor
git clone https://github.com/izhichao/stockvps-monitor.git .
pnpm i
cp .env.example .env
3. 填写 .env(关键项)
# 监控目标与间隔
STOCKVPS_URLS="https://dedione.com/store/special-vps-plans/20260520-lax-vps-cn-1c1g20g-special-1299"
STOCKVPS_INTERVAL=60
STOCKVPS_LOGS=true
# 推送1:个人微信(Server 酱,sct.ftqq.com 微信扫码拿 SendKey)
PUSH_KEY="SCTxxxxxxxxxxxxxxxxxxxxxxxx"
# 推送2:QQ 邮箱 SMTP(兜底必达)
SMTP_SERVICE="QQ"
SMTP_SERVER="smtp.qq.com:465"
SMTP_SSL="true"
SMTP_EMAIL="你的QQ号@qq.com"
SMTP_PASSWORD="QQ邮箱授权码(16位,非登录密码)"
SMTP_NAME="Stock-Dedione-VPS 监控"
SMTP_EMAIL_TO="你的QQ号@qq.com"
PUSH_KEY:开 https://sct.ftqq.com → 微信扫码 → 复制「SendKey」。SMTP_PASSWORD是 QQ 邮箱授权码,不是登录密码:mail.qq.com → 设置 → 账户 → 开启 POP3/SMTP → 发短信生成。- ⚠️
.env含凭证,切勿提交 git。
4. 启动 + 开机自启
pnpm start # 内部走 pm2 启动 monitor.js
pm2 save # 保存进程列表
pm2 startup # 按提示执行它生成的命令,设开机自启
pm2 ls # 确认 stockvps-monitor 状态 online
5. 金丝雀验证(推荐,确认「有货会推」)
目标套餐长期缺货、无法验证正向推送。先临时把 STOCKVPS_URLS 改成同门在售套餐验证,再改回目标:
# 临时探针(当前在售)
STOCKVPS_URLS="https://dedione.com/store/special-vps-plans/20260520-lax-vps-cn-2c2g40g-special-2599"
pm2 restart stockvps-monitor
# 预期 1 分钟内两通道收到「补货通知」;确认缺货日志为「无货」而非误报
# 验证通过后改回目标 URL 并 pm2 restart
四、查看日志
pm2 logs stockvps-monitor # 实时日志:看「无货 / 有货 / 未上架」
pm2 monit # 资源监控(CPU/内存)
pm2 restart stockvps-monitor # 改完 .env 后重启生效
五、停掉服务
pm2 stop stockvps-monitor # 暂停(保留进程,可随时 start 恢复)
# 或彻底移除:
pm2 delete stockvps-monitor # 删掉进程(开机自启需再 pm2 save 固化)
pnpm start # 之后想再跑,直接重启即可
只停推送不想删进程:把 .env 里的 PUSH_KEY / SMTP 凭证清空后 pm2 restart,进程继续跑但不再发通知。若屏蔽 stockvps.org 出站,版本检查失败会走兜底分支直接运行,功能不受影响(隐私更友好)。
内容整理自个人部署手册 · 项目:izhichao/stockvps-monitor · 推送:Server 酱 + QQ 邮箱 SMTP