Dashboard (Control UI)

Das Gateway-Dashboard ist die Browser-Control-UI, die standardmäßig unter / bereitgestellt wird (überschreibe mit gateway.controlUi.basePath).

Schnell öffnen (lokales Gateway):

Wichtige Referenzen:

Authentifizierung wird beim WebSocket-Handshake über connect.params.auth (Token oder Passwort) durchgesetzt. Siehe gateway.auth in Gateway-Konfiguration.

Sicherheitshinweis: Die Control UI ist eine Admin-Oberfläche (Chat, Konfiguration, Exec-Genehmigungen). Stelle sie nicht öffentlich bereit. Die UI speichert Dashboard-URL-Tokens in sessionStorage für die aktuelle Browser-Tab-Sitzung und gewählte Gateway-URL und entfernt sie nach dem Laden aus der URL. Bevorzuge localhost, Tailscale Serve oder einen SSH-Tunnel.

Schnellweg (empfohlen)

  • Nach der Einrichtung öffnet die CLI automatisch das Dashboard und gibt einen sauberen (nicht-tokenisierten) Link aus.
  • Jederzeit erneut öffnen: openclaw dashboard (kopiert Link, öffnet Browser wenn möglich, zeigt SSH-Hinweis bei Headless).
  • Wenn die UI nach Auth fragt, füge das Token aus gateway.auth.token (oder OPENCLAW_GATEWAY_TOKEN) in die Control-UI-Einstellungen ein.

Token-Grundlagen (lokal vs. remote)

  • Localhost: Öffne http://127.0.0.1:18789/.
  • Token-Quelle: gateway.auth.token (oder OPENCLAW_GATEWAY_TOKEN); openclaw dashboard kann es über URL-Fragment für einmaliges Bootstrap übergeben, und die Control UI speichert es in sessionStorage für die aktuelle Browser-Tab-Sitzung und gewählte Gateway-URL statt in localStorage.
  • Wenn gateway.auth.token per SecretRef verwaltet wird, gibt openclaw dashboard absichtlich eine nicht-tokenisierte URL aus/kopiert/öffnet sie. Das vermeidet die Offenlegung extern verwalteter Tokens in Shell-Logs, Zwischenablage-Verlauf oder Browser-Startargumenten.
  • Wenn gateway.auth.token als SecretRef konfiguriert ist und in deiner aktuellen Shell nicht aufgelöst werden kann, gibt openclaw dashboard trotzdem eine nicht-tokenisierte URL plus hilfreiche Auth-Setup-Hinweise aus.
  • Nicht localhost: Verwende Tailscale Serve (tokenlos für Control UI/WebSocket wenn gateway.auth.allowTailscale: true, setzt vertrauenswürdigen Gateway-Host voraus; HTTP-APIs brauchen weiterhin Token/Passwort), Tailnet-Bind mit Token oder einen SSH-Tunnel. Siehe Web-Oberflächen.

Wenn du „unauthorized” / 1008 siehst

  • Stelle sicher, dass das Gateway erreichbar ist (lokal: openclaw status; remote: SSH-Tunnel ssh -N -L 18789:127.0.0.1:18789 user@host, dann http://127.0.0.1:18789/ öffnen).
  • Bei AUTH_TOKEN_MISMATCH können Clients einen vertrauenswürdigen Retry mit einem gecachten Geräte-Token durchführen, wenn das Gateway Retry-Hinweise liefert. Wenn Auth nach diesem Retry immer noch fehlschlägt, löse die Token-Drift manuell.
  • Für Token-Drift-Reparaturschritte folge der Token-Drift-Wiederherstellungscheckliste.
  • Token vom Gateway-Host abrufen oder bereitstellen:
    • Klartext-Config: openclaw config get gateway.auth.token
    • SecretRef-verwaltete Config: Löse den externen Secret-Provider auf oder exportiere OPENCLAW_GATEWAY_TOKEN in dieser Shell, dann führe openclaw dashboard erneut aus
    • Kein Token konfiguriert: openclaw doctor --generate-gateway-token
  • Füge im Dashboard-Einstellungen das Token in das Auth-Feld ein und verbinde dich.