Web interfaces
Übersicht
Das Gateway-Dashboard ist die browserbasierte Control UI, die standardmäßig unter / bereitgestellt wird
(überschreiben mit gateway.controlUi.basePath).
Schnell öffnen (lokales Gateway):
- http://127.0.0.1:18789/ (oder http://localhost:18789/)
- Mit
gateway.tls.enabled: trueverwenden Siehttps://127.0.0.1:18789/undwss://127.0.0.1:18789für den WebSocket-Endpunkt.
Wichtige Referenzen:
- Control UI für Nutzung und UI-Funktionen.
- Tailscale für Serve/Funnel-Automatisierung.
- Web-Oberflächen für Bind-Modi und Sicherheitshinweise.
Die Authentifizierung wird beim WebSocket-Handshake über den konfigurierten Gateway- Authentifizierungspfad erzwungen:
connect.params.auth.tokenconnect.params.auth.password- Tailscale Serve-Identitäts-Header, wenn
gateway.auth.allowTailscale: true - Trusted-Proxy-Identitäts-Header, wenn
gateway.auth.mode: "trusted-proxy"
Siehe gateway.auth in der Gateway-Konfiguration.
Sicherheitshinweis: Die Control UI ist eine Admin-Oberfläche (Chat, Konfiguration, Ausführungsgenehmigungen). Machen Sie sie nicht öffentlich zugänglich. Die UI speichert Dashboard-URL-Tokens in sessionStorage für die aktuelle Browser-Tab-Sitzung und die ausgewählte Gateway-URL und entfernt sie nach dem Laden aus der URL. Bevorzugen Sie localhost, Tailscale Serve oder einen SSH-Tunnel.
Schneller Weg (empfohlen)
- Nach dem Onboarding öffnet die CLI automatisch das Dashboard und gibt einen sauberen (nicht tokenisierten) Link aus.
- Jederzeit erneut öffnen:
openclaw dashboard(kopiert den Link, öffnet wenn möglich den Browser, zeigt bei Headless-Umgebungen einen SSH-Hinweis). - Wenn Zwischenablage und Browser-Übergabe fehlschlagen, gibt
openclaw dashboardtrotzdem die saubere URL aus und weist Sie an, das Token ausOPENCLAW_GATEWAY_TOKENodergateway.auth.tokenals URL-Fragment-Schlüsseltokenzu verwenden; Token- Werte werden nicht in Logs ausgegeben. - Wenn die UI zur Shared-Secret-Authentifizierung auffordert, fügen Sie das konfigurierte Token oder Passwort in die Einstellungen der Control UI ein.
Auth-Grundlagen (lokal vs. remote)
- Localhost: Öffnen Sie
http://127.0.0.1:18789/. - Gateway-TLS: Wenn
gateway.tls.enabled: true, verwenden Dashboard-/Statuslinkshttps://und WebSocket-Links der Control UIwss://. - Shared-Secret-Token-Quelle:
gateway.auth.token(oderOPENCLAW_GATEWAY_TOKEN);openclaw dashboardkann es für ein einmaliges Bootstrap über das URL-Fragment übergeben, und die Control UI speichert es in sessionStorage für die aktuelle Browser-Tab-Sitzung und die ausgewählte Gateway-URL statt in localStorage. - Wenn
gateway.auth.tokenSecretRef-verwaltet ist, gibtopenclaw dashboardabsichtlich eine nicht tokenisierte URL aus/kopiert/öffnet sie. Dadurch wird vermieden, extern verwaltete Tokens in Shell-Logs, dem Verlauf der Zwischenablage oder Browser-Startargumenten offenzulegen. - Wenn
gateway.auth.tokenals SecretRef konfiguriert ist und in Ihrer aktuellen Shell nicht aufgelöst ist, gibtopenclaw dashboardtrotzdem eine nicht tokenisierte URL plus umsetzbare Hinweise zur Auth-Einrichtung aus. - Shared-Secret-Passwort: Verwenden Sie das konfigurierte
gateway.auth.password(oderOPENCLAW_GATEWAY_PASSWORD). Das Dashboard speichert Passwörter nicht über Neuladevorgänge hinweg. - Identitätstragende Modi: Tailscale Serve kann die Authentifizierung für Control UI/WebSocket
über Identitäts-Header erfüllen, wenn
gateway.auth.allowTailscale: true, und ein nicht auf loopback beschränkter identitätsbewusster Reverse Proxy kanngateway.auth.mode: "trusted-proxy"erfüllen. In diesen Modi benötigt das Dashboard kein eingefügtes Shared Secret für den WebSocket. - Nicht localhost: Verwenden Sie Tailscale Serve, eine nicht auf loopback beschränkte Shared-Secret-Bindung, einen
nicht auf loopback beschränkten identitätsbewussten Reverse Proxy mit
gateway.auth.mode: "trusted-proxy"oder einen SSH-Tunnel. HTTP-APIs verwenden weiterhin Shared-Secret-Authentifizierung, sofern Sie nicht bewusst den Private-Ingress-Modusgateway.auth.mode: "none"oder Trusted-Proxy-HTTP-Auth verwenden. Siehe Web-Oberflächen.
Wenn Sie „unauthorized“ / 1008 sehen
- Stellen Sie sicher, dass das Gateway erreichbar ist (lokal:
openclaw status; remote: SSH-Tunnelssh -N -L 18789:127.0.0.1:18789 user@host, dannhttp://127.0.0.1:18789/öffnen). - Bei
AUTH_TOKEN_MISMATCHkönnen Clients einen vertrauenswürdigen Wiederholungsversuch mit einem zwischengespeicherten Geräte-Token durchführen, wenn das Gateway Wiederholungshinweise zurückgibt. Dieser Wiederholungsversuch mit zwischengespeichertem Token verwendet die zwischengespeicherten genehmigten Scopes des Tokens wieder; Aufrufer mit explizitemdeviceToken/ explizitenscopesbehalten ihren angeforderten Scope-Satz. Wenn die Authentifizierung nach diesem Wiederholungsversuch weiterhin fehlschlägt, beheben Sie die Token-Abweichung manuell. - Außerhalb dieses Wiederholungspfads gilt für die Verbindungs-Authentifizierung diese Priorität: zuerst explizites Shared Token/Passwort, dann explizites
deviceToken, dann gespeichertes Geräte-Token, dann Bootstrap-Token. - Auf dem asynchronen Tailscale Serve-Control-UI-Pfad werden fehlgeschlagene Versuche für dieselbe
{scope, ip}serialisiert, bevor der Failed-Auth-Limiter sie aufzeichnet, sodass der zweite gleichzeitig fehlerhafte Wiederholungsversuch bereitsretry lateranzeigen kann. - Schritte zur Reparatur von Token-Abweichungen finden Sie in der Checkliste zur Wiederherstellung bei Token-Abweichung.
- Rufen Sie das Shared Secret vom Gateway-Host ab oder stellen Sie es dort bereit:
- Token:
openclaw config get gateway.auth.token - Passwort: Lösen Sie das konfigurierte
gateway.auth.passwordoderOPENCLAW_GATEWAY_PASSWORDauf - SecretRef-verwaltetes Token: Lösen Sie den externen Secret-Provider auf oder exportieren Sie
OPENCLAW_GATEWAY_TOKENin dieser Shell und führen Sie dannopenclaw dashboarderneut aus - Kein Shared Secret konfiguriert:
openclaw doctor --generate-gateway-token
- Token:
- Fügen Sie in den Dashboard-Einstellungen das Token oder Passwort in das Auth-Feld ein, und verbinden Sie sich dann.
- Die Sprachauswahl der UI befindet sich unter Übersicht -> Gateway-Zugriff -> Sprache. Sie ist Teil der Zugriffskarte, nicht des Bereichs Darstellung.