Skip to main content
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.basePath fest (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):

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

Belassen Sie den Gateway auf Loopback und lassen Sie ihn durch Tailscale Serve als Proxy weiterleiten:
Starten Sie den Gateway:
Öffnen Sie https://<magicdns>/ (oder Ihren konfigurierten gateway.controlUi.basePath).

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.token oder connect.params.auth.password.
  • Mit gateway.tls.enabled: true erzeugen lokale Dashboard-/Status-Hilfsfunktionen https://-URLs und wss://-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.allowedOrigins explizit 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: true aktiviert 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 Sie gateway.auth.allowTailscale: false fest, 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: