- Standard:
http://<host>:18789/ - mit
gateway.tls.enabled: true:https://<host>:18789/ - optionales Präfix: Legen Sie
gateway.controlUi.basePathfest (z. B./openclaw)
Konfiguration (standardmäßig aktiviert)
Die Control UI ist standardmäßig aktiviert, wenn Assets vorhanden sind (dist/control-ui):
Webhooks
Beihooks.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)
- Tailnet-Bindung + Token
- Öffentliches Internet (Funnel)
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.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 ausdist/control-ui bereit: