O Gateway serve uma pequena Interface de Controle no navegador (Vite + Lit) pela mesma porta que o WebSocket do 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.
- padrão:
http://<host>:18789/ - com
gateway.tls.enabled: true:https://<host>:18789/ - prefixo opcional: defina
gateway.controlUi.basePath(por exemplo,/openclaw)
Webhooks
Quandohooks.enabled=true, o Gateway também expõe um pequeno endpoint de webhook no mesmo servidor HTTP.
Consulte configuração do Gateway → hooks para autenticação + payloads.
Configuração (ativada por padrão)
A Interface de Controle fica ativada por padrão quando os assets estão presentes (dist/control-ui).
Você pode controlá-la pela configuração:
Acesso via Tailscale
Serve integrado (recomendado)
Mantenha o Gateway em loopback e deixe o Tailscale Serve fazer proxy dele:https://<magicdns>/(ou ogateway.controlUi.basePathconfigurado)
Bind tailnet + token
http://<tailscale-ip>:18789/(ou ogateway.controlUi.basePathconfigurado)
Internet pública (Funnel)
Notas de segurança
- A autenticação do Gateway é exigida por padrão (token, senha, trusted-proxy ou cabeçalhos de identidade do Tailscale Serve quando ativados).
- Binds sem loopback ainda exigem autenticação do gateway. Na prática, isso significa autenticação por token/senha ou um proxy reverso com reconhecimento de identidade usando
gateway.auth.mode: "trusted-proxy". - O assistente cria autenticação por segredo compartilhado por padrão e geralmente gera um token de gateway (mesmo em loopback).
- No modo de segredo compartilhado, a UI envia
connect.params.auth.tokenouconnect.params.auth.password. - Quando
gateway.tls.enabled: true, o dashboard local e os auxiliares de status renderizam URLs de dashboardhttps://e URLs de WebSocketwss://. - Em modos com identidade, como Tailscale Serve ou
trusted-proxy, a verificação de autenticação do WebSocket é satisfeita pelos cabeçalhos da solicitação. - Para implantações da Interface de Controle sem loopback, defina
gateway.controlUi.allowedOriginsexplicitamente (origens completas). Sem isso, a inicialização do gateway é recusada por padrão. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueativa o modo de fallback de origem pelo cabeçalho Host, mas é uma redução perigosa de segurança.- Com Serve, os cabeçalhos de identidade do Tailscale podem satisfazer a autenticação da Interface de Controle/WebSocket
quando
gateway.auth.allowTailscaleétrue(sem necessidade de token/senha). Endpoints de API HTTP não usam esses cabeçalhos de identidade do Tailscale; eles seguem o modo normal de autenticação HTTP do gateway. Definagateway.auth.allowTailscale: falsepara exigir credenciais explícitas. Consulte Tailscale e Segurança. Este fluxo sem token pressupõe que o host do gateway é confiável. gateway.tailscale.mode: "funnel"exigegateway.auth.mode: "password"(senha compartilhada).
Construindo a UI
O Gateway serve arquivos estáticos dedist/control-ui. Construa-os com: