Il Gateway serve una piccola UI di controllo nel browser (Vite + Lit) dalla stessa porta del WebSocket del Gateway:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- predefinito:
http://<host>:18789/ - con
gateway.tls.enabled: true:https://<host>:18789/ - prefisso facoltativo: imposta
gateway.controlUi.basePath(ad es./openclaw)
Webhook
Quandohooks.enabled=true, il Gateway espone anche un piccolo endpoint Webhook sullo stesso server HTTP.
Vedi configurazione del Gateway → hooks per autenticazione + payload.
Configurazione (attiva per impostazione predefinita)
La UI di controllo è abilitata per impostazione predefinita quando gli asset sono presenti (dist/control-ui).
Puoi controllarla tramite configurazione:
Accesso Tailscale
Serve integrato (consigliato)
Mantieni il Gateway su loopback e lascia che Tailscale Serve lo esponga tramite proxy:https://<magicdns>/(o il tuogateway.controlUi.basePathconfigurato)
Bind Tailnet + token
http://<tailscale-ip>:18789/(o il tuogateway.controlUi.basePathconfigurato)
Internet pubblico (Funnel)
Note di sicurezza
- L’autenticazione del Gateway è richiesta per impostazione predefinita (token, password, trusted-proxy o intestazioni di identità di Tailscale Serve quando abilitate).
- I bind non loopback richiedono comunque l’autenticazione del gateway. In pratica, questo significa autenticazione con token/password oppure un reverse proxy consapevole dell’identità con
gateway.auth.mode: "trusted-proxy". - La procedura guidata crea l’autenticazione con segreto condiviso per impostazione predefinita e di solito genera un token gateway (anche su loopback).
- In modalità con segreto condiviso, la UI invia
connect.params.auth.tokenoconnect.params.auth.password. - Quando
gateway.tls.enabled: true, la dashboard locale e gli helper di stato mostrano URL della dashboardhttps://e URL WebSocketwss://. - Nelle modalità con identità, come Tailscale Serve o
trusted-proxy, il controllo di autenticazione WebSocket viene invece soddisfatto dalle intestazioni della richiesta. - Per distribuzioni della UI di controllo non loopback, imposta esplicitamente
gateway.controlUi.allowedOrigins(origini complete). Senza questa impostazione, l’avvio del gateway viene rifiutato per impostazione predefinita. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueabilita la modalità di fallback dell’origine basata sull’intestazione Host, ma è una pericolosa riduzione della sicurezza.- Con Serve, le intestazioni di identità Tailscale possono soddisfare l’autenticazione della UI di controllo/WebSocket quando
gateway.auth.allowTailscaleètrue(nessun token/password richiesto). Gli endpoint API HTTP non usano quelle intestazioni di identità Tailscale; seguono invece la normale modalità di autenticazione HTTP del gateway. Impostagateway.auth.allowTailscale: falseper richiedere credenziali esplicite. Vedi Tailscale e Sicurezza. Questo flusso senza token presuppone che l’host del gateway sia attendibile. gateway.tailscale.mode: "funnel"richiedegateway.auth.mode: "password"(password condivisa).
Compilazione della UI
Il Gateway serve file statici dadist/control-ui. Compilali con: