- 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.
RPC HTTP de administração
O RPC HTTP de administração expõe métodos selecionados do plano de controle do Gateway emPOST /api/v1/admin/rpc.
Ele fica desativado por padrão e é registrado somente quando o plugin admin-http-rpc está habilitado.
Consulte RPC HTTP de administração para o modelo de autenticação, os métodos permitidos e a comparação com WebSocket.
Configuração (ativada por padrão)
A UI de controle é habilitada por padrão quando os assets estão presentes (dist/control-ui).
Você pode controlá-la via configuração:
Acesso via Tailscale
Serve integrado (recomendado)
Mantenha o Gateway no loopback e deixe o Tailscale Serve fazer proxy dele:https://<magicdns>/(ou seugateway.controlUi.basePathconfigurado)
Vínculo de Tailnet + token
http://<tailscale-ip>:18789/(ou seugateway.controlUi.basePathconfigurado)
Internet pública (Funnel)
Observações de segurança
- A autenticação do Gateway é exigida por padrão (token, senha, proxy confiável ou cabeçalhos de identidade do Tailscale Serve quando habilitados).
- Vínculos 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 do 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 do dashboard comhttps://e URLs de WebSocket comwss://. - Em modos com identidade, como Tailscale Serve ou
trusted-proxy, a verificação de autenticação do WebSocket é satisfeita pelos cabeçalhos da requisição. - Para implantações públicas sem loopback da UI de controle, defina
gateway.controlUi.allowedOriginsexplicitamente (origens completas). Carregamentos privados de LAN/Tailnet na mesma origem são aceitos para loopback, RFC1918/link-local,.local,.ts.nete hosts CGNAT do Tailscale. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=truehabilita o modo de fallback de origem por cabeçalho Host, mas é uma degradação de segurança perigosa.- Com Serve, os cabeçalhos de identidade do Tailscale podem satisfazer a autenticação da UI 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).
Como criar a UI
O Gateway serve arquivos estáticos dedist/control-ui. Crie-os com: