Files
AstrBot/docs/zh/use/webui.md
鸦羽 e8d13af5b9 feat: add TOTP two-factor authentication for dashboard login (#8189)
* feat: add TOTP two-factor authentication for dashboard login

* fix: ensure TOTP verification uses UTC for accurate time comparison

* fix: update recovery code validation logic for disabling TOTP

* test: add unit tests for TOTP functionality and recovery code validation

* chore: format

* feat: add trust_proxy_headers switch for auth rate-limit IP source

* feat: make dashboard auth rate-limit configurable via system settings

Add auth_rate_limit config block to dashboard settings with enable
(default: true), average_interval (default: 1.0s), and max_burst
(default: 3) options. The dashboard auth middleware now reads from
config instead of using hardcoded values. The average_interval and
max_burst fields are conditionally shown only when rate limiting is
enabled.

* fix: normalize dashboard client IP from trusted proxy headers

* refactor: encapsulate rate limiter state into registry, add TTL

* feat: show dynamic page title during two-factor verification

* fix: require two-factor verification for protected config saves

* chore: format

* refactor: reorganize TOTP verification UI components for better layout

* refactor: clean up recovery stage UI by removing unused styles and improving label handling

* docs: add TOTP two-factor authentication documentation for WebUI

---------

Co-authored-by: Soulter <905617992@qq.com>
2026-06-01 16:40:29 +08:00

122 lines
6.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# WebUI
AstrBot 管理面板具有管理插件、查看日志、可视化配置、查看统计信息等功能。
![image](https://files.astrbot.app/docs/source/images/webui/image-4.png)
## 管理面板的访问
当启动 AstrBot 之后,你可以通过浏览器访问 `http://localhost:6185` 来访问管理面板。
> [!TIP]
> - 如果你正在云服务器上部署 AstrBot需要将 `localhost` 替换为你的服务器 IP 地址。
## 登录
新用户首次登录时AstrBot 会生成一个随机初始密码并写入启动日志。请先在启动日志中查找并使用该密码登录(用户名通常为 `astrbot`),登录后请立即修改密码。
## 双因素认证
AstrBot WebUI支持基于 TOTPTime-based One-Time Password的双因素认证。
### 开启双因素认证
1. 在左侧菜单中依次点击 配置文件 → 系统配置。
2. 打开“启用 WebUI TOTP 双因素认证”开关WebUI将显示二维码。
3. 使用任意支持 TOTP 的验证器应用(如 Google Authenticator 等)扫描二维码。
4. 输入验证器应用生成的 6 位验证码完成验证。
5. 系统会生成恢复码,用于丢失验证器设备后的登录。请务必妥善保存。
如需更换 TOTP 密钥,可在 TOTP 管理弹窗中操作,更换时需要先验证当前的 TOTP 验证码。
### 恢复码相关
- 恢复码仅可使用一次。使用恢复码登录后,双因素认证会被自动关闭,需要重新设置。
- 在 TOTP 管理弹窗中可以重新生成恢复码。
- 若恢复码丢失,将无法通过常规途径恢复账户访问权限,需要手动编辑 `data/cmd_config.json`,将 `dashboard.totp.enable` 设为 `false` 并手动清空 `dashboard.totp.secret``dashboard.totp.recovery_code_hash` 以关闭双因素认证。
### 安全性相关
- 启用双因素认证后,修改 TOTP 相关配置时需要先验证当前的 TOTP 验证码,以防止未经授权的修改。
- 修改管理面板密码会撤销所有受信任设备。
## ChatUI
AstrBot 内置 ChatUI可在浏览器中直接与已配置的模型对话。
ChatUI 支持以下常用能力:
- 创建、重命名、删除对话,并在左侧会话列表中切换历史对话。
- 在聊天页选择配置文件、模型提供商与模型;如果启用了 Provider 会话隔离,也可以为当前会话单独选择模型。
- 发送文本、图片、文件与语音输入;上传附件时会展示预览,并根据文件签名辅助识别文件类型。
- 查看模型思考过程、工具调用状态、知识库或网页搜索引用来源,以及每条回复的 Token 和耗时统计。
- 对已有回复执行复制、重新生成,或使用其他模型重新生成。
- 编辑用户消息后从该消息继续生成,也可以针对某段内容开启分支追问。
- 切换流式/普通响应模式,以及 SSE/WebSocket 通信模式。
> [!NOTE]
> 为保证消息接收顺序,同一浏览器会话建议只保留一个 ChatUI 页面。如果你在多个标签页中同时打开聊天页面,系统可能会提示需要重新建立连接。
## 可视化配置
在管理面板中,你可以通过可视化配置来配置 AstrBot 的插件。点击左栏 `配置` 即可进入配置页面。
![image](https://files.astrbot.app/docs/source/images/webui/image-3.png)
当修改完配置后,你需要点击右下角 `保存` 按钮才能成功保存配置。
使用右下角第一个圆形按钮可以切换至 `代码编辑配置`。在 `代码编辑配置` 中,你可以直接编辑配置文件。
编辑完后首先点击`应用此配置`,此时配置将应用到可视化配置中,然后再点击右下角`保存`按钮来保存配置。如果你不点击`应用此配置`,那么你的修改将不会生效。
![alt text](https://files.astrbot.app/docs/source/images/webui/image-5.png)
## 插件
在管理面板中,你可以通过左栏的 `插件` 来查看已安装的插件,以及安装新插件。
点击插件市场标签栏,你可以浏览由 AstrBot 官方上架的插件。
![image](https://files.astrbot.app/docs/source/images/webui/image-1.png)
你也可以点击右下角 + 按钮,以 URL / 文件上传的方式手动安装插件。
> 由于插件更新机制AstrBot Team 无法完全保证插件市场中插件的安全性请您仔细甄别。因为插件原因造成损失的AstrBot Team 不予负责。
### 插件加载失败处理
如果插件加载失败,管理面板会显示错误信息,并提供 **“尝试一键重载修复”** 按钮。这允许你在修复环境(如安装缺失依赖)或修改代码后,无需重启整个程序即可快速重新加载插件。
## 指令管理
通过左侧菜单 `指令管理`,可以集中管理所有已注册的指令,默认不显示系统插件。
支持按插件、类型(指令 / 指令组 / 子指令)、权限与状态过滤,配合搜索框快速定位。指令组行可展开查看子指令,徽章显示子指令数量,子指令行会缩进区分层级。
可以对每个指令 启用/禁用、重命名。
## 追踪 (Trace)
在管理面板的 `Trace` 页面中,你可以实时查看 AstrBot 的运行追踪记录。这对于调试模型调用路径、工具调用过程等非常有用。
你可以通过页面顶部的开关来启用或禁用追踪记录。
> [!NOTE]
> 当前仅记录部分 AstrBot 主 Agent 的模型调用路径,后续会不断完善。
## 更新管理面板
在 AstrBot 启动时,会自动检查管理面板是否需要更新,如果需要,第一条日志(黄色)会进行提示。
使用 `/dashboard_update` 命令可以手动更新管理面板(管理员指令)。
管理面板文件在 data/dist 目录下。如果需要手动替换,请在 https://github.com/AstrBotDevs/AstrBot/releases/ 下载 `dist.zip` 然后解压到 data 目录下。
## 自定义 WebUI 端口
修改 data/cmd_config.json 文件内 `dashboard` 配置中的 `port`
## 忘记密码
修改 data/cmd_config.json 文件内 `dashboard` 配置中的 `password`,将 password 整个键值对删除。