Web interfaces
Web
Der Gateway stellt eine kleine browserbasierte Control UI (Vite + Lit) über denselben Port wie der Gateway-WebSocket bereit:
- Standard:
http://<host>:18789/ - mit
gateway.tls.enabled: true:https://<host>:18789/ - optionales Präfix: Legen Sie
gateway.controlUi.basePathfest (z. B./openclaw)
Die Funktionen sind unter Control UI beschrieben. Diese Seite behandelt Bindungsmodi, Sicherheit und weitere Web-Schnittstellen.
Konfiguration (standardmäßig aktiviert)
Die Control UI ist standardmäßig aktiviert, wenn Assets vorhanden sind (dist/control-ui):
{ gateway: { controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional },}Webhooks
Bei hooks.enabled=true stellt der Gateway außerdem einen Webhook-Endpunkt auf demselben HTTP-Server bereit. Informationen zu Authentifizierung und Payloads finden Sie unter hooks in der Gateway-Konfigurationsreferenz.
Admin-HTTP-RPC
POST /api/v1/admin/rpc stellt ausgewählte Methoden der Gateway-Steuerungsebene über HTTP bereit. Standardmäßig deaktiviert; wird nur registriert, wenn das Plugin admin-http-rpc aktiviert ist. Informationen zum Authentifizierungsmodell, zu den zulässigen Methoden und zum Vergleich mit der WebSocket-API finden Sie unter Admin-HTTP-RPC.
Tailscale-Zugriff
Integriertes Serve (empfohlen)
Belassen Sie den Gateway auf Loopback und lassen Sie ihn durch Tailscale Serve als Proxy weiterleiten:
{ gateway: { bind: "loopback", tailscale: { mode: "serve" }, },}Starten Sie den Gateway:
openclaw gatewayÖffnen Sie https://<magicdns>/ (oder Ihren konfigurierten gateway.controlUi.basePath).
Tailnet-Bindung + Token
{ gateway: { bind: "tailnet", controlUi: { enabled: true }, auth: { mode: "token", token: "your-token" }, },}Starten Sie den Gateway (dieses Nicht-Loopback-Beispiel verwendet die Authentifizierung mit einem Shared-Secret-Token):
openclaw gatewayÖffnen Sie http://<tailscale-ip>:18789/ (oder Ihren konfigurierten gateway.controlUi.basePath).
Öffentliches Internet (Funnel)
{ gateway: { bind: "loopback", tailscale: { mode: "funnel" }, auth: { mode: "password" }, // or OPENCLAW_GATEWAY_PASSWORD },}tailscale.mode: "funnel" erfordert gateway.auth.mode: "password"; sowohl Serve als auch Funnel erfordern gateway.bind: "loopback".
Sicherheitshinweise
- Die Gateway-Authentifizierung ist standardmäßig erforderlich: Token, Passwort, vertrauenswürdiger Proxy oder – sofern aktiviert – Tailscale-Serve-Identitätsheader.
- Nicht-Loopback-Bindungen erfordern weiterhin eine Gateway-Authentifizierung: Token-/Passwortauthentifizierung oder einen identitätsbewussten Reverse-Proxy mit
gateway.auth.mode: "trusted-proxy". - Der Einrichtungsassistent erstellt standardmäßig eine Shared-Secret-Authentifizierung und generiert üblicherweise ein Gateway-Token, selbst bei Loopback.
- Im Shared-Secret-Modus sendet die UI während des WebSocket-Handshakes
connect.params.auth.tokenoderconnect.params.auth.password. - Mit
gateway.tls.enabled: trueerzeugen lokale Dashboard-/Status-Hilfsfunktionenhttps://-URLs undwss://-WebSocket-URLs. - In identitätsführenden Modi (Tailscale Serve,
trusted-proxy) wird die WebSocket-Authentifizierungsprüfung anhand von Anfrageheadern statt eines Shared Secrets erfüllt. - Legen Sie für öffentliche Nicht-Loopback-Bereitstellungen der Control UI
gateway.controlUi.allowedOriginsexplizit fest (vollständige Ursprünge). Private Ladevorgänge mit demselben Ursprung werden ohne diese Einstellung für Loopback-, RFC1918-/Link-Local-,.local-,.ts.net- und Tailscale-CGNAT-Hosts akzeptiert. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback: trueaktiviert den Host-Header-Ursprungs-Fallback; dies stellt eine gefährliche Herabstufung der Sicherheit dar.- Bei Serve erfüllen Tailscale-Identitätsheader die Authentifizierung für Control UI/WebSocket, wenn
gateway.auth.allowTailscale: true(kein Token/Passwort erforderlich). HTTP-API-Endpunkte verwenden keine Tailscale-Identitätsheader; sie folgen immer dem normalen HTTP-Authentifizierungsmodus des Gateways. Legen Siegateway.auth.allowTailscale: falsefest, um auch über Serve explizite Anmeldedaten zu verlangen. Dieser tokenlose Ablauf setzt voraus, dass der Gateway-Host selbst vertrauenswürdig ist. Weitere Informationen finden Sie unter Tailscale und Sicherheit.
Erstellen der UI
Der Gateway stellt statische Dateien aus dist/control-ui bereit:
pnpm ui:build