Web 控制台
Bridge 端口(默认 13000)除了承担 OneBot/LLOneBot 协议之外,还内置一个基于 Waylay 设计系统的浏览器控制台。无需额外服务、无需打包构建,直接由 Bridge 进程提供静态资源。
容器启动后浏览器访问 http://<host>:13000/ 即可。BRIDGE_HOST 默认为 0.0.0.0,监听全部网卡。
路径一览
| 路径 | 说明 |
|---|---|
GET / | 落地页:品牌 / 实时状态 / 架构 / 延迟对比表(浏览器请求 → HTML,其它请求 → JSON) |
GET /qrcode | 登录壳层:嵌入二维码 + 状态徽标,自动轮询登录态 |
GET /qrcode.png | 始终返回原始 QR 图片,便于脚本消费(保持与旧版兼容) |
GET /api/status | 实时状态 JSON:版本、运行时长、登录信息、各协议适配器与连接数 |
GET /docs | 302 重定向到本 wiki(默认 https://github.com/Micuks/waylay-docs,可用 WAYLAY_WIKI_URL 覆盖) |
GET /static/* GET /assets/* | 设计系统 CSS/JS/SVG 静态资源 |
控制台不重复存放指南、协议参考、Action 列表、对接框架等长篇文档 —— 这些统一交给本 wiki 维护,避免双份内容漂移。控制台只承载和"当前实例"绑定的运营信息(版本、登录态、适配器连接数、登录二维码)。
启动时日志会打印这些 URL:
text
[server] Listening on 0.0.0.0:13000
[ui] Web console available on 0.0.0.0 (all interfaces):
[ui] landing → http://0.0.0.0:13000/
[ui] docs → http://0.0.0.0:13000/docs
[ui] login QR → http://0.0.0.0:13000/qrcode
[ui] status → http://0.0.0.0:13000/api/status/api/status 字段
json
{
"status": "ok",
"version": "qq-bridge/0.4.1",
"uptime_sec": 12,
"logged_in": true,
"uin": "3597656306",
"nickname": "demo",
"qrcode_available": true,
"bridge_port": 13000,
"bridge_host": "0.0.0.0",
"bridge_ws_clients": 1,
"onebot": { "enabled": true, "ws_port": 3001, "reverse_urls": 1, "clients": 2 },
"milky": { "enabled": false, "port": 0, "ws_clients": 0, "sse_clients": 0, "webhook_urls": 0 }
}落地页和 /qrcode 页面都会以 4s / 3s 周期轮询此端点。第三方监控可以直接 scrape。
语言与主题
界面默认中文,跟随用户偏好可切换:
- 语言:默认
zh,标头按钮在中/EN之间切换;首次访问时若浏览器语言以en开头会自动选择英文。 - 主题:浅色 (Parchment) / 深色 (Obsidian),默认跟随系统
prefers-color-scheme,标头按钮手动切换。 - 所有偏好都写入
localStorage;URL 上加?lang=en/?theme=dark也可强制覆盖。
界面预览
落地页 — Parchment / Obsidian(中文)


落地页 — English

登录页


安全提示
- 控制台与 Bridge WebSocket 共享
BRIDGE_PORT。若该端口暴露到公网,请前置反向代理或限制源 IP。 /api/status不包含敏感字段(仅元数据 + 登录 uin)。如需进一步隐藏,可通过反代屏蔽该路径。- WebUI 不写任何客户端凭据,QR 登录全程由 NTQQ 内核处理。
设计系统
视觉规范参考 Waylay Design System 与 src/web/static/design.css:终端化、等宽优先、单一暖琥珀色强调。所有 token 都集中在一个 CSS 文件,主题切换通过 data-theme="dark" 属性触发。