Nexus 6.0 — 首次部署验证清单
用途:首次部署到 staging / 生产 时逐项勾选(非日常开发阻塞)。
环境:目标域名(如 api.synaglobal.vip)或本地 bash scripts/local_verify.sh 全链路。
2026-05-23:项目仍在开发、尚未部署,无 API Key 轮换包袱。清单在 first deploy 时使用;开发阶段以 pytest tests/test_security_unit.py 为主。
0. 首次部署前
1. 认证与会话
| # |
步骤 |
预期 |
| 1.1 |
未登录访问 GET /api/servers/ |
401(全局 JWT 中间件) |
| 1.2 |
POST /api/auth/login 正确密码 |
200 + access_token |
| 1.3 |
带 Bearer 访问 GET /api/auth/me |
200 + 用户名 |
| 1.4 |
修改密码后旧 access_token |
401 |
| 1.5 |
安装完成后 POST /api/install/init-db |
403;GET /api/install/status 仍可用 |
2. 前端静态资源(F2e-06)
| # |
步骤 |
预期 |
| 2.1 |
浏览器打开 /app/index.html,Network 无 cdn.jsdelivr.net |
仅 /app/vendor/* |
| 2.2 |
仪表盘样式、Alpine 交互正常 |
侧栏、统计卡片可点 |
| 2.3 |
/app/settings.html TOTP 二维码 |
qrious 本地脚本加载成功 |
| 2.4 |
/app/terminal.html WebSSH |
xterm 本地脚本 + 终端可连 |
3. 告警与 Telegram(见 alert-push-policy.md)
| # |
步骤 |
预期 |
| 3.1 |
子机 CPU 超阈值 |
Telegram 收到告警;浏览器无声音 |
| 3.2 |
指标恢复 |
Telegram 恢复通知 |
| 3.3 |
仪表盘 WS 连接 |
仅刷新运行状态/统计,无告警列表弹窗 |
| 3.4 |
人为断开 MySQL 30s+ |
Telegram 固定文案「MySQL 连接异常」;不含连接串 |
4. Agent 与子机
| # |
步骤 |
预期 |
| 4.1 |
错误 API Key 心跳 |
401 |
| 4.2 |
子机 alert_thresholds 与中心 settings 一致 |
加急心跳与中心告警同步 |
| 4.3 |
子机 /exec/kill 非本进程 pid |
404 |
5. WebSSH
| # |
步骤 |
预期 |
| 5.1 |
POST /api/auth/webssh-token + server_id |
200 + 短票 |
| 5.2 |
用该票连 /ws/terminal/{server_id} |
终端正常 |
| 5.3 |
同一票连其他 server_id |
关闭码 4003 |
6. 脚本执行
| # |
步骤 |
预期 |
| 6.1 |
执行含 rm -rf 的脚本 |
400 危险命令拦截 |
| 6.2 |
长任务进度 |
HTTP 轮询(非 WS 换票) |
| 6.3 |
重试任务 |
新 execution id + 响应含 parent_execution_id |
7. 守护与健康
| # |
步骤 |
预期 |
| 7.1 |
GET /health |
200 |
| 7.2 |
kill Python 进程 |
Supervisor 自动拉起 |
| 7.3 |
cron health_monitor.sh |
连续失败后重启 + Telegram(文案无敏感信息) |
签署