Web interfaces
Dashboard
Das Gateway-Dashboard ist die browserbasierte Control UI, die standardmäßig unter / bereitgestellt wird (überschreibbar mit gateway.controlUi.basePath).
Schnellzugriff (lokales Gateway):
- http://127.0.0.1:18789/ (oder http://localhost:18789/)
- Verwenden Sie bei
gateway.tls.enabled: truehttps://127.0.0.1:18789/undwss://127.0.0.1:18789für den WebSocket-Endpunkt.
Wichtige Referenzen:
- Control UI zur Verwendung und zu den UI-Funktionen.
- Tailscale zur Serve-/Funnel-Automatisierung.
- Weboberflächen zu Bindungsmodi und Sicherheitshinweisen.
Die Authentifizierung wird beim WebSocket-Handshake über den konfigurierten Authentifizierungspfad des Gateways erzwungen:
connect.params.auth.tokenconnect.params.auth.password- Tailscale-Serve-Identitätsheader, wenn
gateway.auth.allowTailscale: true - Identitätsheader eines vertrauenswürdigen Proxys, wenn
gateway.auth.mode: "trusted-proxy"
Siehe gateway.auth unter Gateway-Konfiguration.
Schnellster Weg (empfohlen)
- Nach dem Onboarding öffnet die CLI automatisch das Dashboard und gibt einen bereinigten Link (ohne Token) aus.
- Jederzeit erneut öffnen:
openclaw dashboard(kopiert den Link, öffnet nach Möglichkeit einen Browser und gibt bei einem System ohne grafische Oberfläche einen SSH-Hinweis aus). - Falls sowohl die Übergabe an die Zwischenablage als auch an den Browser fehlschlägt, gibt
openclaw dashboarddennoch die bereinigte URL aus und weist Sie an, Ihr Token (ausOPENCLAW_GATEWAY_TOKENodergateway.auth.token) unter dem URL-Fragment-Schlüsseltokenanzuhängen; der Tokenwert wird niemals in Protokollen ausgegeben. - Wenn die UI zur Authentifizierung mit einem gemeinsamen Geheimnis auffordert, fügen Sie das konfigurierte Token oder Passwort in die Einstellungen der Control UI ein.
Grundlagen der Authentifizierung (lokal und remote)
- Localhost: Öffnen Sie
http://127.0.0.1:18789/. - Gateway-TLS: Bei
gateway.tls.enabled: trueverwenden Dashboard-/Statuslinkshttps://und WebSocket-Links der Control UIwss://. - Quelle des Tokens für das gemeinsame Geheimnis:
gateway.auth.token(oderOPENCLAW_GATEWAY_TOKEN).openclaw dashboardkann es für die einmalige Ersteinrichtung über ein URL-Fragment übergeben; die Control UI speichert es für den aktuellen Tab und die ausgewählte Gateway-URL im sessionStorage, nicht im localStorage. - Wenn
gateway.auth.tokenüber SecretRef verwaltet wird, gibtopenclaw dashboardabsichtlich eine URL ohne Token aus, kopiert und öffnet sie, um extern verwaltete Token nicht in Shell-Protokollen, dem Verlauf der Zwischenablage oder Argumenten zum Browserstart offenzulegen. Wenn die Referenz in Ihrer aktuellen Shell nicht aufgelöst werden kann, werden weiterhin die URL ohne Token sowie konkrete Anweisungen zur Einrichtung der Authentifizierung ausgegeben. - Passwort für das gemeinsame Geheimnis: Verwenden Sie das konfigurierte
gateway.auth.password(oderOPENCLAW_GATEWAY_PASSWORD). Das Dashboard speichert Passwörter nicht über Neuladevorgänge hinweg. - Identitätsbasierte Modi: Tailscale Serve erfüllt die Authentifizierungsanforderungen der Control UI und des WebSockets über Identitätsheader, wenn
gateway.auth.allowTailscale: truegilt; ein identitätsfähiger Reverse-Proxy außerhalb der Loopback-Schnittstelle erfüllt sie mitgateway.auth.mode: "trusted-proxy". In keinem der beiden Fälle muss für den WebSocket ein gemeinsames Geheimnis eingefügt werden. - Nicht localhost: Verwenden Sie Tailscale Serve, eine Bindung außerhalb der Loopback-Schnittstelle mit gemeinsamem Geheimnis, einen identitätsfähigen Reverse-Proxy außerhalb der Loopback-Schnittstelle mit
gateway.auth.mode: "trusted-proxy"oder einen SSH-Tunnel. HTTP-APIs verwenden weiterhin die Authentifizierung mit einem gemeinsamen Geheimnis, sofern Sie nicht bewusst den privaten Ingress-Modusgateway.auth.mode: "none"oder die HTTP-Authentifizierung über einen vertrauenswürdigen Proxy einsetzen. Siehe Weboberflächen.
In Telegram öffnen
Telegram-Bots können das Dashboard mit /dashboard als Telegram Mini App öffnen.
Anforderungen:
gateway.tailscale.mode: "serve"oder"funnel", damit Telegram eine HTTPS-URL für die Mini App erhält.- Der Telegram-Absender muss der Bot-Eigentümer sein: eine numerische Telegram-Benutzer-ID in
commands.ownerAllowFromoder im effektivenchannels.telegram.allowFromdes ausgewählten Kontos. - Führen Sie
/dashboardin einer Direktnachricht mit dem Bot aus. Aufrufe in Gruppen weisen Sie lediglich darauf hin, den Befehl in einer Direktnachricht zu öffnen, und enthalten keine Schaltfläche. - Docker-Installationen: Für die Modi Serve/Funnel muss das Gateway neben
tailscaledan die Loopback-Schnittstelle gebunden sein, was Bridge-Netzwerke mit veröffentlichten Ports nicht ermöglichen. Führen Sie den Gateway-Container mitnetwork_mode: hostaus und binden Sie dentailscaled-Socket des Hosts (/var/run/tailscale) sowie dietailscale-CLI in den Container ein.
Die Mini App führt eine einmalige Übergabe durch den Eigentümer aus und leitet mit einem kurzlebigen Bootstrap-Token zur Control UI weiter. Dabei wird kein gemeinsames Gateway-Token in der URL offengelegt.
Nichtziele für v1:
- Der Telegram-Web-iframe wird nicht unterstützt.
- Tailscale Serve/Funnel ist der einzige unterstützte Pfad für eine veröffentlichte URL.
Wenn „unauthorized“ / 1008 angezeigt wird
- Vergewissern Sie sich, dass das Gateway erreichbar ist: lokal mit
openclaw status; remote über den SSH-Tunnelssh -N -L 18789:127.0.0.1:18789 user@gateway-host, öffnen Sie anschließendhttp://127.0.0.1:18789/. - Bei
AUTH_TOKEN_MISMATCHkönnen Clients einen einzigen vertrauenswürdigen Wiederholungsversuch mit einem zwischengespeicherten Geräte-Token durchführen, wenn das Gateway entsprechende Hinweise zurückgibt; dieser Versuch verwendet erneut die zwischengespeicherten genehmigten Geltungsbereiche des Tokens (Aufrufer mit explizitemdeviceToken/scopesbehalten die von ihnen angeforderte Gruppe von Geltungsbereichen bei). Wenn die Authentifizierung danach weiterhin fehlschlägt, beheben Sie die Token-Abweichung manuell. - Bei
AUTH_SCOPE_MISMATCHwurde das Geräte-Token erkannt, besitzt jedoch nicht die angeforderten Geltungsbereiche; koppeln Sie das Gerät erneut oder genehmigen Sie die neue Gruppe von Geltungsbereichen, statt das gemeinsame Gateway-Token zu rotieren. - Außerhalb dieses Wiederholungspfads gilt für die Verbindungs-Authentifizierung folgende Priorität: explizites gemeinsames Token/Passwort, danach explizites
deviceToken, danach gespeichertes Geräte-Token und schließlich Bootstrap-Token. - Im asynchronen Tailscale-Serve-Pfad werden fehlgeschlagene Versuche für dasselbe
{scope, ip}serialisiert, bevor der Begrenzer für fehlgeschlagene Authentifizierungen sie erfasst. Daher kann bei einem zweiten gleichzeitig ausgeführten fehlerhaften Wiederholungsversuch bereitsretry laterangezeigt werden. - Schritte zur Behebung einer Token-Abweichung finden Sie in der Checkliste zur Wiederherstellung bei Token-Abweichungen.
- Rufen Sie das gemeinsame Geheimnis 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. - Über SecretRef verwaltetes Token: Lösen Sie den externen Secret-Provider auf oder exportieren Sie
OPENCLAW_GATEWAY_TOKENin dieser Shell und führen Sieopenclaw dashboarderneut aus. - Kein gemeinsames Geheimnis konfiguriert:
openclaw doctor --generate-gateway-token
- Token:
- Fügen Sie in den Dashboard-Einstellungen das Token oder Passwort in das Authentifizierungsfeld ein und stellen Sie anschließend die Verbindung her.
- Die Sprachauswahl der UI befindet sich unter Settings -> General -> Language, nicht unter Appearance.
Verwandte Themen
Was this useful?