Skip to content

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 /docs302 重定向到本 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(中文)

Landing — light · zh

Landing — dark · zh

落地页 — English

Landing — light · en

登录页

QR — waiting

QR — logged in

安全提示

  • 控制台与 Bridge WebSocket 共享 BRIDGE_PORT。若该端口暴露到公网,请前置反向代理或限制源 IP。
  • /api/status 不包含敏感字段(仅元数据 + 登录 uin)。如需进一步隐藏,可通过反代屏蔽该路径。
  • WebUI 不写任何客户端凭据,QR 登录全程由 NTQQ 内核处理。

设计系统

视觉规范参考 Waylay Design Systemsrc/web/static/design.css:终端化、等宽优先、单一暖琥珀色强调。所有 token 都集中在一个 CSS 文件,主题切换通过 data-theme="dark" 属性触发。

Released under the Apache 2.0 License.