Web interfaces
Web
De Gateway biedt een kleine browsergebaseerde beheerinterface (Vite + Lit) aan via 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)
De mogelijkheden worden beschreven in Beheerinterface. Deze pagina behandelt bindingsmodi, beveiliging en andere webgerichte oppervlakken.
Configuratie (standaard ingeschakeld)
De beheerinterface is standaard ingeschakeld wanneer assets aanwezig zijn (dist/control-ui):
{ gateway: { controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optioneel },}Webhooks
Wanneer hooks.enabled=true, stelt de Gateway ook een Webhook-eindpunt beschikbaar op dezelfde HTTP-server. Zie hooks in het configuratieoverzicht van de Gateway voor authenticatie en payloads.
HTTP-RPC voor beheer
POST /api/v1/admin/rpc stelt geselecteerde methoden van het Gateway-besturingsvlak beschikbaar via HTTP. Standaard uitgeschakeld; wordt alleen geregistreerd wanneer de Plugin admin-http-rpc is ingeschakeld. Zie HTTP-RPC voor beheer voor het authenticatiemodel, de toegestane methoden en een vergelijking met de WebSocket-API.
Toegang via Tailscale
Geïntegreerde Serve (aanbevolen)
Houd de Gateway op local loopback en laat Tailscale Serve deze als proxy doorgeven:
{ gateway: { bind: "loopback", tailscale: { mode: "serve" }, },}Start de Gateway:
openclaw gatewayOpen https://<magicdns>/ (of uw geconfigureerde gateway.controlUi.basePath).
Tailnet-binding + token
{ gateway: { bind: "tailnet", controlUi: { enabled: true }, auth: { mode: "token", token: "your-token" }, },}Start de Gateway (dit voorbeeld zonder local loopback gebruikt authenticatie met een gedeeld geheim token):
openclaw gatewayOpen http://<tailscale-ip>:18789/ (of uw geconfigureerde gateway.controlUi.basePath).
Openbaar internet (Funnel)
{ gateway: { bind: "loopback", tailscale: { mode: "funnel" }, auth: { mode: "password" }, // of OPENCLAW_GATEWAY_PASSWORD },}tailscale.mode: "funnel" vereist gateway.auth.mode: "password"; zowel Serve als Funnel vereisen gateway.bind: "loopback".
Beveiligingsopmerkingen
- Gateway-authenticatie is standaard vereist: token, wachtwoord, vertrouwde proxy of, indien ingeschakeld, identiteitsheaders van Tailscale Serve.
- Bindingen buiten local loopback vereisen nog steeds Gateway-authenticatie: authenticatie met een token/wachtwoord of een identiteitsbewuste reverse proxy met
gateway.auth.mode: "trusted-proxy". - De onboardingwizard maakt standaard authenticatie met een gedeeld geheim en genereert doorgaans een Gateway-token, zelfs op local loopback.
- In de modus met een gedeeld geheim verzendt de beheerinterface
connect.params.auth.tokenofconnect.params.auth.passwordtijdens de WebSocket-handshake. - Met
gateway.tls.enabled: truegeven lokale helpers voor het dashboard en de statushttps://-URL's enwss://-WebSocket-URL's weer. - In modi die identiteit doorgeven (Tailscale Serve,
trusted-proxy) wordt aan de WebSocket-authenticatiecontrole voldaan via aanvraagheaders in plaats van een gedeeld geheim. - Stel voor openbare implementaties van de beheerinterface buiten local loopback
gateway.controlUi.allowedOriginsexpliciet in (volledige origins). Privéaanvragen van dezelfde origin worden zonder deze instelling geaccepteerd voor local loopback, RFC1918/link-local,.local,.ts.neten Tailscale-CGNAT-hosts. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback: trueschakelt origin-terugval op basis van de Host-header in; dit is een gevaarlijke verlaging van de beveiliging.- Met Serve voldoen Tailscale-identiteitsheaders aan de authenticatie voor de beheerinterface/WebSocket wanneer
gateway.auth.allowTailscale: true(geen token/wachtwoord vereist). HTTP-API-eindpunten gebruiken geen Tailscale-identiteitsheaders; ze volgen altijd de normale HTTP-authenticatiemodus van de Gateway. Stelgateway.auth.allowTailscale: falsein om zelfs via Serve expliciete inloggegevens te vereisen. Deze tokenloze werkwijze veronderstelt dat de Gateway-host zelf wordt vertrouwd. Zie Tailscale en Beveiliging.
De beheerinterface bouwen
De Gateway biedt statische bestanden aan vanuit dist/control-ui:
pnpm ui:build