Web interfaces
儀表板
Gateway 儀表板是預設由 / 提供的瀏覽器版控制 UI
(可用 gateway.controlUi.basePath 覆寫)。
快速開啟(本機 Gateway):
- http://127.0.0.1:18789/(或 http://localhost:18789/)
- 使用
gateway.tls.enabled: true時,請使用https://127.0.0.1:18789/,並將wss://127.0.0.1:18789作為 WebSocket 端點。
主要參考:
驗證會透過已設定的 gateway 驗證路徑,在 WebSocket 握手時強制執行:
connect.params.auth.tokenconnect.params.auth.passwordgateway.auth.allowTailscale: true時的 Tailscale Serve 身分標頭gateway.auth.mode: "trusted-proxy"時的 trusted-proxy 身分標頭
請參閱 Gateway 設定中的 gateway.auth。
安全性注意事項:控制 UI 是管理介面(聊天、設定、exec 核准)。 請勿公開曝露。UI 會針對目前瀏覽器分頁工作階段與所選 gateway URL,將儀表板 URL token 保存在 sessionStorage, 並在載入後從 URL 中移除它們。 建議使用 localhost、Tailscale Serve 或 SSH 通道。
快速路徑(建議)
- 完成 onboarding 後,CLI 會自動開啟儀表板,並印出乾淨的(未 token 化)連結。
- 隨時重新開啟:
openclaw dashboard(複製連結,可能時開啟瀏覽器,若為 headless 則顯示 SSH 提示)。 - 如果剪貼簿與瀏覽器傳遞都失敗,
openclaw dashboard仍會印出 乾淨的 URL,並告訴你使用OPENCLAW_GATEWAY_TOKEN或gateway.auth.token中的 token 作為 URL fragment keytoken;它不會在日誌中印出 token 值。 - 如果 UI 提示 shared-secret 驗證,請將已設定的 token 或 password 貼到控制 UI 設定中。
驗證基礎(本機與遠端)
- Localhost:開啟
http://127.0.0.1:18789/。 - Gateway TLS:當
gateway.tls.enabled: true時,儀表板/狀態連結會使用https://,控制 UI WebSocket 連結會使用wss://。 - Shared-secret token 來源:
gateway.auth.token(或OPENCLAW_GATEWAY_TOKEN);openclaw dashboard可透過 URL fragment 傳遞它 以進行一次性 bootstrap,而控制 UI 會針對目前瀏覽器分頁工作階段與所選 gateway URL,將其保存在 sessionStorage, 而不是 localStorage。 - 如果
gateway.auth.token由 SecretRef 管理,openclaw dashboard會依設計印出/複製/開啟未 token 化的 URL。這可避免將 外部管理的 token 暴露在 shell 日誌、剪貼簿歷史或瀏覽器啟動 引數中。 - 如果
gateway.auth.token設定為 SecretRef,且在你 目前的 shell 中未解析,openclaw dashboard仍會印出未 token 化的 URL,以及 可執行的驗證設定指引。 - Shared-secret password:使用已設定的
gateway.auth.password(或OPENCLAW_GATEWAY_PASSWORD)。儀表板不會在重新載入後保留 password。 - 帶有身分的模式:當
gateway.auth.allowTailscale: true時,Tailscale Serve 可透過身分標頭滿足控制 UI/WebSocket 驗證,而具備身分感知能力的非 loopback 反向代理可滿足gateway.auth.mode: "trusted-proxy"。在這些模式中,儀表板不需要 貼上的 shared secret 即可使用 WebSocket。 - 非 localhost:使用 Tailscale Serve、非 loopback shared-secret 綁定、
具備身分感知能力且使用
gateway.auth.mode: "trusted-proxy"的非 loopback 反向代理,或 SSH 通道。HTTP API 仍會使用 shared-secret 驗證,除非你刻意執行 private-ingressgateway.auth.mode: "none"或 trusted-proxy HTTP 驗證。請參閱 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 回傳重試提示時,client 可以使用快取的裝置 token 進行一次受信任重試。該快取 token 重試會重用 token 的快取已核准 scope;明確deviceToken/ 明確scopes的呼叫者會保留其請求的 scope 集合。如果該次重試後驗證仍失敗,請手動解決 token 漂移。 - 在該重試路徑之外,連線驗證優先順序為先使用明確 shared token/password,接著是明確
deviceToken,再來是已儲存的裝置 token,最後是 bootstrap token。 - 在非同步 Tailscale Serve 控制 UI 路徑上,相同
{scope, ip}的失敗嘗試會在 failed-auth limiter 記錄之前被序列化,因此 第二個並行的不良重試可能已經顯示retry later。 - 如需 token 漂移修復步驟,請依照 Token 漂移復原檢查清單。
- 從 gateway 主機擷取或提供 shared secret:
- Token:
openclaw config get gateway.auth.token - Password:解析已設定的
gateway.auth.password或OPENCLAW_GATEWAY_PASSWORD - SecretRef 管理的 token:解析外部 secret provider,或在此 shell 中匯出
OPENCLAW_GATEWAY_TOKEN,然後重新執行openclaw dashboard - 未設定 shared secret:
openclaw doctor --generate-gateway-token
- Token:
- 在儀表板設定中,將 token 或 password 貼到驗證欄位, 然後連線。
- UI 語言選擇器位於 Overview -> Gateway Access -> Language。 它是存取卡片的一部分,不是 Appearance 區段。