仪表盘(控制面板)

Gateway 仪表盘就是浏览器控制面板,默认在 / 路径提供服务(可通过 gateway.controlUi.basePath 覆盖)。

快速打开(本地 Gateway):

关键参考:

认证在 WebSocket 握手时通过 connect.params.auth(token 或密码)执行。详见 Gateway 配置 中的 gateway.auth

安全提示:控制面板是一个管理界面(聊天、配置、执行审批)。不要将其公开暴露。UI 将仪表盘 URL token 保存在当前浏览器标签页会话和选定 gateway URL 的 sessionStorage 中,加载后从 URL 中剥离。建议使用 localhost、Tailscale Serve 或 SSH 隧道。

快速上手(推荐)

  • 完成引导向导后,CLI 自动打开仪表盘并打印一个干净的(不含 token 的)链接。
  • 随时重新打开:openclaw dashboard(复制链接、尽可能打开浏览器、无头环境显示 SSH 提示)。
  • 如果 UI 提示认证,从 gateway.auth.token(或 OPENCLAW_GATEWAY_TOKEN)获取 token,粘贴到控制面板设置中。

Token 基础(本地 vs 远程)

  • 本地:打开 http://127.0.0.1:18789/
  • Token 来源gateway.auth.token(或 OPENCLAW_GATEWAY_TOKEN);openclaw dashboard 可通过 URL fragment 传递 token 用于一次性引导,控制面板将其保存在当前浏览器标签页会话和选定 gateway URL 的 sessionStorage 中,而非 localStorage。
  • 如果 gateway.auth.token 是 SecretRef 管理的,openclaw dashboard 有意打印/复制/打开不含 token 的 URL,避免外部管理的 token 出现在 shell 日志、剪贴板历史或浏览器启动参数中。
  • 如果 gateway.auth.token 配置为 SecretRef 且在当前 shell 中未解析,openclaw dashboard 仍然打印不含 token 的 URL,并附带可操作的认证配置指引。
  • 非本地:使用 Tailscale Serve(当 gateway.auth.allowTailscale: true 时,控制面板/WebSocket 无需 token,假设 gateway 主机可信;HTTP API 仍需 token/密码)、tailnet 绑定带 token,或 SSH 隧道。详见 Web 界面

看到 “unauthorized” / 1008 时

  • 确保 gateway 可达(本地:openclaw status;远程:SSH 隧道 ssh -N -L 18789:127.0.0.1:18789 user@host 然后打开 http://127.0.0.1:18789/)。
  • 遇到 AUTH_TOKEN_MISMATCH 时,客户端可能会在 gateway 返回重试提示时使用缓存的设备 token 做一次可信重试。如果重试后仍然认证失败,需要手动解决 token 漂移。
  • Token 漂移修复步骤见 Token 漂移恢复清单
  • 从 gateway 主机获取或提供 token:
    • 明文配置:openclaw config get gateway.auth.token
    • SecretRef 管理的配置:解析外部密钥提供者或在当前 shell 中 export OPENCLAW_GATEWAY_TOKEN,然后重新运行 openclaw dashboard
    • 未配置 token:openclaw doctor --generate-gateway-token
  • 在仪表盘设置中,将 token 粘贴到认证字段,然后连接。