优化 RainWeb CLI 运维命令

This commit is contained in:
2026-09-05 21:01:32 +08:00
parent af79e5864f
commit 69ab5676b4
3 changed files with 609 additions and 292 deletions
+21 -11
View File
@@ -106,15 +106,23 @@ npm run cli -- <command>
| 命令 | 说明 |
|------|------|
| `status` | 查看运行状态 |
| `start` | 启动服务器 |
| `stop` | 停止服务器 |
| `restart` | 重启服务器 |
| `status [--json]` | 查看版本、服务、数据库和备份状态 |
| `health [--json]` | HTTP 健康检查和 SQLite 完整性检查;不健康时返回非 0 |
| `db-check [--json]` | 只读检查数据库完整性和关键表 |
| `start` | 校验 PID 后启动服务器,已运行时不会重复启动 |
| `stop` | 只停止确认属于本项目的 `server.js`,优雅等待退出 |
| `restart` | 优雅停止并等待后启动服务器 |
| `port [number]` | 查看/修改端口 |
| `password [new-pass]` | 修改管理员密码 |
| `captcha` | 交互式配置验证码 |
| `config` | 查看所有配置 |
| `upgrade` | 一键升级(git pull + npm install + 重启) |
| `password` | 交互式修改管理员密码(兼容旧的末尾参数写法) |
| `captcha` | 交互式配置验证码;也支持 `--type``--login``--register``--forum``--failed``--threshold` |
| `config [--json]` | 查看配置,敏感值统一脱敏 |
| `backup` | 创建数据库备份并立即做完整性检查 |
| `backup list [--json]` | 列出备份并检查 SQLite 完整性 |
| `backup prune --keep N [--yes]` | 预览清理旧备份;只有显式 `--yes` 才删除 |
| `backup restore <file> --yes` | 服务停止后恢复指定备份;显式确认才覆盖,旧库会保留 |
| `upgrade` | 升级前备份,检查干净工作区,`git pull --ff-only`、安装、构建并在服务原本运行时重启验活 |
通用选项:`--yes` 跳过确认,`--json` 输出 JSONHTTP 检查可用 `--timeout 100-60000` 设置毫秒超时。密码默认交互输入,不建议在命令行中传递明文密码。
## 技术栈
@@ -214,16 +222,18 @@ npm start
## 升级
```bash
# 方法1: 一键升级(推荐)
# 方法1一键升级(推荐;仅限自托管机器本地执行
node cli.js upgrade
# 方法2: 手动
git pull
# 方法2手动
git pull --ff-only
npm install
npm run build
node cli.js restart
```
`upgrade` 要求 git 工作区干净,只执行 fast-forward 更新;失败会返回非 0,不会假报成功。`backup prune` 默认只预览不删除,`backup restore` 必须同时满足服务已停止和 `--yes`
## 版本
当前版本记录在项目根目录的 `VERSION` 文件中,导航栏标题右侧会显示当前版本号。