diff --git a/src/content/ai.mdx b/src/content/ai.mdx index 20d39fd..673f8f8 100644 --- a/src/content/ai.mdx +++ b/src/content/ai.mdx @@ -44,8 +44,8 @@ curl -fsSL https://raw.githubusercontent.com/monitor-probe/monitor/main/install-hub.sh -o install-hub.sh chmod +x install-hub.sh sudo ./install-hub.sh --yes -装完从日志里取出一次性应急密码给我: - journalctl -u monitor-hub | grep Emergency +装完输出里「密码」那一行就是应急密码,原样给我。 +只有首次安装才有这一行。输出是「升级完成」说明这台机器之前装过 hub,不要重置密码,告诉我即可。 确认服务在跑:systemctl status monitor-hub ### 第三步:配反向代理 diff --git a/src/content/config/auth.mdx b/src/content/config/auth.mdx index 2b7c18d..0d7f11b 100644 --- a/src/content/config/auth.mdx +++ b/src/content/config/auth.mdx @@ -39,13 +39,28 @@ Client Secret 只能写不能读:面板可以设置它,但读不回来,只 ## 应急密码 -首次启动时 hub 生成一个 24 字符的随机密码打印到日志,只打印这一次: +首次启动时 hub 生成一个 24 字符的随机密码。一键脚本装完直接显示在终端里;其余部署方式打印在 hub 的 +标准输出,容器在容器日志里,自己写的 systemd 单元在 journal 里: ```bash -journalctl -u monitor-hub | grep Emergency # 二进制部署 docker logs monitor | grep Emergency # 容器部署 +journalctl -u <单元名> | grep Emergency # 自己写的 systemd 单元 ``` +### 重置应急密码 + +忘了或没记下来就重置一个。旧密码立即失效,所有登录会话被登出,hub 不用重启。提示 `unknown argument` +说明版本太旧,先升级: + +```bash +sudo ./install-hub.sh --reset-password # 一键脚本 +docker exec monitor /monitor-hub --db /data/monitor.db --reset-password # 容器部署 +monitor-hub --db <数据库路径> --reset-password # 手工部署 +``` + +新密码只打印在执行这条命令的终端里。数据库文件必须已经存在,路径写错时直接报错,不会新建空库。 +容器部署重置之后,`docker logs` 里那条首次启动的密码就作废了。 + ### 登录限流 同一来源地址 15 分钟内 5 次失败即锁死,成功登录清零。 diff --git a/src/content/install/docker.mdx b/src/content/install/docker.mdx index 2ecff03..1b9ea43 100644 --- a/src/content/install/docker.mdx +++ b/src/content/install/docker.mdx @@ -10,6 +10,12 @@ docker run -d --name monitor -p 127.0.0.1:28080:28080 \ docker logs monitor | grep Emergency ``` +忘了就重置一个,提示 `unknown argument` 就先换新镜像。重置后日志里那条首次启动的密码作废,以这条命令的输出为准: + +```bash +docker exec monitor /monitor-hub --db /data/monitor.db --reset-password +``` + ## compose ```yaml diff --git a/src/content/install/hub.mdx b/src/content/install/hub.mdx index bb0b92e..397d393 100644 --- a/src/content/install/hub.mdx +++ b/src/content/install/hub.mdx @@ -1,7 +1,7 @@ ## 一键脚本 安装命令在[快速开始](/install/quick-start)。脚本核对 release 的 `sha256sums.txt` 之后才把二进制放进 -`/opt/monitor`,建一个 `monitor` 系统用户,写一个加固过的 systemd 单元,最后打印三种反向代理的配法。 +`/opt/monitor`,建一个 `monitor` 系统用户,写一个加固过的 systemd 单元,最后给出[反向代理](/install/reverse-proxy)文档的地址。 重跑一次就是升级:校验通过才替换,起不来自动回滚到上一版,没写的参数沿用上次的, 所以升级不会把端口和 `--site` 冲掉。 @@ -14,6 +14,7 @@ | `--site ` | 一般不用填,见下面「什么时候需要 `--site`」 | | `--uninstall` | 卸载,数据保留在 `/opt/monitor/data` | | `--purge` | 卸载并删除数据库 | +| `--reset-password` | 重置应急密码,登出所有会话 | | `--yes` / `-y` | 跳过确认 | | `--help` / `-h` | 用法 | @@ -39,7 +40,7 @@ ```bash systemctl status monitor-hub journalctl -u monitor-hub -f -journalctl -u monitor-hub | grep Emergency # 找回首次启动打印的应急密码 +sudo ./install-hub.sh --reset-password # 忘了应急密码时重置 ``` ## 不用脚本 @@ -56,6 +57,7 @@ monitor-hub # 监听 [::]:28080,数据库 ./monitor.db | `--db` | `monitor.db` | SQLite 路径 | | `--site` | 空 | 对外地址,只有个别反代场景需要 | | `--themes` | 数据库同级的 `themes/` | 外部主题目录 | +| `--reset-password` | | 重置应急密码并打印出来,然后退出。数据库必须已存在 | Linux 上一个 v6 socket 通过 v4-mapped 地址同时收两族,双栈机器不用配任何东西;内核禁用了 IPv6 或者 `bindv6only=1` 时自动退回 `0.0.0.0:28080`。 diff --git a/src/content/install/quick-start.mdx b/src/content/install/quick-start.mdx index c1b2e88..38d156a 100644 --- a/src/content/install/quick-start.mdx +++ b/src/content/install/quick-start.mdx @@ -8,7 +8,7 @@ chmod +x install-hub.sh sudo ./install-hub.sh ``` -有终端时脚本给出一个菜单(安装 / 升级、卸载、状态、日志);`curl ... | sh` 读不到回答,直接按默认值安装。 +有终端时脚本给出一个菜单(安装 / 升级、卸载、状态、日志、重置密码);`curl ... | sh` 读不到回答,直接按默认值安装。 参数与目录结构见[安装 hub](/install/hub)。 ### 方式 2:Docker @@ -24,11 +24,12 @@ docker run -d --name monitor -p 127.0.0.1:28080:28080 \ ### 取应急密码 -装完打印一次性的应急密码,记下来。事后也能找回: +一键脚本装完直接显示应急密码,Docker 的在 `docker logs monitor | grep Emergency` 里,记下来。 +忘了就重置一个: ```bash -journalctl -u monitor-hub | grep Emergency # 一键脚本 -docker logs monitor | grep Emergency # Docker +sudo ./install-hub.sh --reset-password # 一键脚本 +docker exec monitor /monitor-hub --db /data/monitor.db --reset-password # Docker ``` diff --git a/src/content/reference/faq.mdx b/src/content/reference/faq.mdx index b105f52..eb4c1bb 100644 --- a/src/content/reference/faq.mdx +++ b/src/content/reference/faq.mdx @@ -7,11 +7,12 @@ ## 应急密码丢了 ```bash -journalctl -u monitor-hub | grep Emergency # 二进制部署 -docker logs monitor | grep Emergency # 容器部署 +sudo ./install-hub.sh --reset-password # 一键脚本 +docker exec monitor /monitor-hub --db /data/monitor.db --reset-password # 容器部署 ``` -它只在首次启动时打印一次,但日志里一直在。 +生成一个新密码,旧的立即失效,已登录的会话全部登出。提示 `unknown argument` +的,一键脚本先重跑安装器升级,容器先换新镜像。 ## 节点一直不上线 diff --git a/src/nav.ts b/src/nav.ts index f021948..d3fba52 100644 --- a/src/nav.ts +++ b/src/nav.ts @@ -27,7 +27,7 @@ export const nav: Section[] = [ { title: "配置", items: [ - { path: "/config/auth", label: "登录与安全", desc: "应急密码与 GitHub 单点登录的配置,以及登录不通时的排查路径。", keywords: "github oauth sso 登录 密码 应急 白名单 callback" }, + { path: "/config/auth", label: "登录与安全", desc: "应急密码与 GitHub 单点登录的配置,以及登录不通时的排查路径。", keywords: "github oauth sso 登录 密码 应急 重置 白名单 callback" }, { path: "/config/notify", label: "通知", desc: "Telegram 与 Webhook 推送掉线、流量、到期和登录,以及常见服务的请求体写法。", keywords: "通知 告警 telegram tg bot webhook discord slack 钉钉 企业微信 飞书 bark ntfy gotify 离线 掉线 到期" }, { path: "/config/traffic", label: "流量统计", desc: "三个流量数字的算法、周期与配额口径,以及和商家对不上的原因。", keywords: "流量 traffic 重置日 月流量 计费 sum max 上行 下行 配额" }, ],