Web interfaces
Web
De Gateway serveert een kleine browser-Control UI (Vite + Lit) vanaf dezelfde poort als de Gateway WebSocket:
- standaard:
http://<host>:18789/ - met
gateway.tls.enabled: true:https://<host>:18789/ - optioneel voorvoegsel: stel
gateway.controlUi.basePathin (bijv./openclaw)
Mogelijkheden staan in Control UI. De rest van deze pagina richt zich op bind-modi, beveiliging en webgerichte oppervlakken.
Webhooks
Wanneer hooks.enabled=true, stelt de Gateway ook een klein webhook-eindpunt beschikbaar op dezelfde HTTP-server.
Zie Gateway-configuratie → hooks voor authenticatie + payloads.
Configuratie (standaard aan)
De Control UI is standaard ingeschakeld wanneer assets aanwezig zijn (dist/control-ui).
Je kunt dit via configuratie beheren:
{
gateway: {
controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional
},
}
Tailscale-toegang
Geïntegreerde Serve (aanbevolen)
Houd de Gateway op loopback en laat Tailscale Serve deze proxyen:
{
gateway: {
bind: "loopback",
tailscale: { mode: "serve" },
},
}
Start daarna de gateway:
openclaw gateway
Open:
https://<magicdns>/(of je geconfigureerdegateway.controlUi.basePath)
Tailnet-bind + token
{
gateway: {
bind: "tailnet",
controlUi: { enabled: true },
auth: { mode: "token", token: "your-token" },
},
}
Start daarna de gateway (dit niet-loopbackvoorbeeld gebruikt shared-secret-tokenauthenticatie):
openclaw gateway
Open:
http://<tailscale-ip>:18789/(of je geconfigureerdegateway.controlUi.basePath)
Publiek internet (Funnel)
{
gateway: {
bind: "loopback",
tailscale: { mode: "funnel" },
auth: { mode: "password" }, // or OPENCLAW_GATEWAY_PASSWORD
},
}
Beveiligingsnotities
- Gateway-authenticatie is standaard vereist (token, wachtwoord, trusted-proxy of Tailscale Serve-identiteitsheaders wanneer ingeschakeld).
- Niet-loopbackbinds vereisen nog steeds gateway-authenticatie. In de praktijk betekent dat token-/wachtwoordauthenticatie of een identiteitsbewuste reverse proxy met
gateway.auth.mode: "trusted-proxy". - De wizard maakt standaard shared-secret-authenticatie aan en genereert meestal een gateway-token (zelfs op loopback).
- In shared-secret-modus verstuurt de UI
connect.params.auth.tokenofconnect.params.auth.password. - Wanneer
gateway.tls.enabled: true, renderen lokale dashboard- en statushelpershttps://-dashboard-URL's enwss://-WebSocket-URL's. - In identiteitsdragende modi zoals Tailscale Serve of
trusted-proxywordt de WebSocket-authenticatiecontrole in plaats daarvan voldaan via requestheaders. - Stel voor niet-loopback Control UI-implementaties
gateway.controlUi.allowedOriginsexpliciet in (volledige origins). Zonder deze instelling wordt het starten van de gateway standaard geweigerd. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueschakelt de Host-header-originfallbackmodus in, maar is een gevaarlijke beveiligingsverlaging.- Met Serve kunnen Tailscale-identiteitsheaders voldoen aan Control UI-/WebSocket-authenticatie wanneer
gateway.auth.allowTailscaletrueis (geen token/wachtwoord vereist). HTTP API-eindpunten gebruiken die Tailscale-identiteitsheaders niet; ze volgen in plaats daarvan de normale HTTP-authenticatiemodus van de gateway. Stelgateway.auth.allowTailscale: falsein om expliciete aanmeldgegevens te vereisen. Zie Tailscale en Beveiliging. Deze tokenloze stroom gaat ervan uit dat de gateway-host vertrouwd is. gateway.tailscale.mode: "funnel"vereistgateway.auth.mode: "password"(gedeeld wachtwoord).
De UI bouwen
De Gateway serveert statische bestanden vanuit dist/control-ui. Bouw ze met:
pnpm ui:build