Web interfaces

Web

Der Gateway stellt eine kleine Browser-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 werden unter Control UI beschrieben. Diese Seite behandelt Bindungsmodi, Sicherheit und weitere webseitige Schnittstellen.

Konfiguration (standardmäßig aktiviert)

Die Control UI ist standardmäßig aktiviert, wenn die Assets vorhanden sind (dist/control-ui):

json5
{  gateway: {    controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional  },}

Webhooks

Wenn hooks.enabled=true festgelegt ist, stellt der Gateway außerdem einen Webhook-Endpunkt auf demselben HTTP-Server bereit. Informationen zu Authentifizierung und Nutzdaten finden Sie unter hooks in der Referenz zur Gateway-Konfiguration.

Administrator-HTTP-RPC

POST /api/v1/admin/rpc stellt ausgewählte Methoden der Gateway-Steuerungsebene über HTTP bereit. Die Funktion ist standardmäßig deaktiviert und 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 Administrator-HTTP-RPC.

Zugriff über Tailscale

Integriertes Serve (empfohlen)

Belassen Sie den Gateway auf local loopback und lassen Sie ihn durch Tailscale Serve als Proxy weiterleiten:

json5
{  gateway: {    bind: "loopback",    tailscale: { mode: "serve" },  },}

Starten Sie den Gateway:

bash
openclaw gateway

Öffnen Sie https://<magicdns>/ (oder Ihren konfigurierten gateway.controlUi.basePath).

Tailnet-Bindung + Token

json5
{  gateway: {    bind: "tailnet",    controlUi: { enabled: true },    auth: { mode: "token", token: "your-token" },  },}

Starten Sie den Gateway (dieses Beispiel ohne local loopback verwendet die Authentifizierung mit einem Shared-Secret-Token):

bash
openclaw gateway

Öffnen Sie http://<tailscale-ip>:18789/ (oder Ihren konfigurierten gateway.controlUi.basePath).

Öffentliches Internet (Funnel)

json5
{  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, Identitätsheader von Tailscale Serve.
  • Bindungen außerhalb von local loopback erfordern weiterhin eine Gateway-Authentifizierung: Token-/Passwortauthentifizierung oder einen identitätsbewussten Reverse-Proxy mit gateway.auth.mode: "trusted-proxy".
  • Der Onboarding-Assistent erstellt standardmäßig eine Shared-Secret-Authentifizierung und generiert üblicherweise ein Gateway-Token, selbst bei local 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 stellen lokale Dashboard-/Status-Hilfsfunktionen URLs mit https:// und WebSocket-URLs mit wss:// dar.
  • In identitätsbasierten Modi (Tailscale Serve, trusted-proxy) wird die WebSocket-Authentifizierungsprüfung anhand der Anfrageheader statt anhand eines gemeinsamen Geheimnisses erfüllt.
  • Legen Sie für öffentliche Control-UI-Bereitstellungen außerhalb von local loopback gateway.controlUi.allowedOrigins explizit fest (vollständige Ursprünge). Private Ladevorgänge mit demselben Ursprung werden für local loopback, RFC1918-/Link-Local-, .local-, .ts.net- und Tailscale-CGNAT-Hosts auch ohne diese Einstellung akzeptiert.
  • gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback: true aktiviert den Ursprungs-Fallback über den Host-Header; dies stellt eine gefährliche Herabstufung der Sicherheit dar.
  • Bei Serve erfüllen Tailscale-Identitätsheader die Authentifizierungsanforderungen der Control UI und des WebSockets, wenn gateway.auth.allowTailscale: true festgelegt ist (kein Token oder Passwort erforderlich). HTTP-API-Endpunkte verwenden keine Tailscale-Identitätsheader; sie folgen stets 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. Siehe Tailscale und Sicherheit.

Erstellen der UI

Der Gateway stellt statische Dateien aus dist/control-ui bereit:

bash
pnpm ui:build
Was this useful?
On this page

On this page