- predefinito:
http://<host>:18789/ - con
gateway.tls.enabled: true:https://<host>:18789/ - prefisso opzionale: 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.
RPC HTTP di amministrazione
RPC HTTP di amministrazione espone metodi selezionati del piano di controllo del Gateway inPOST /api/v1/admin/rpc.
È disattivato per impostazione predefinita e viene registrato solo quando il plugin admin-http-rpc è abilitato.
Vedi RPC HTTP di amministrazione per il modello di autenticazione, i metodi consentiti e il confronto con WebSocket.
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 proxizzi:https://<magicdns>/(o il tuogateway.controlUi.basePathconfigurato)
Binding Tailnet + token
http://<tailscale-ip>:18789/(o il tuogateway.controlUi.basePathconfigurato)
Internet pubblico (Funnel)
Note sulla sicurezza
- L’autenticazione del Gateway è richiesta per impostazione predefinita (token, password, trusted-proxy o intestazioni di identità di Tailscale Serve quando abilitate).
- I binding non-loopback richiedono comunque l’autenticazione del gateway. In pratica questo significa autenticazione tramite token/password o un reverse proxy consapevole dell’identità con
gateway.auth.mode: "trusted-proxy". - La procedura guidata crea l’autenticazione a segreto condiviso per impostazione predefinita e di solito genera un token del gateway (anche su loopback).
- In modalità a 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 pubbliche non-loopback della UI di controllo, imposta
gateway.controlUi.allowedOriginsesplicitamente (origini complete). I caricamenti LAN/Tailnet privati same-origin sono accettati per loopback, RFC1918/link-local,.local,.ts.nete host CGNAT Tailscale. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueabilita la modalità di fallback dell’origine basata sull’intestazione Host, ma è un pericoloso downgrade di 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).
Creazione della UI
Il Gateway serve file statici dadist/control-ui. Creali con: