Web interfaces
Web
O Gateway disponibiliza uma pequena UI de Controle no navegador (Vite + Lit) pela mesma porta que o WebSocket do Gateway:
- padrão:
http://<host>:18789/ - com
gateway.tls.enabled: true:https://<host>:18789/ - prefixo opcional: defina
gateway.controlUi.basePath(por exemplo,/openclaw)
Os recursos estão descritos em UI de Controle. Esta página aborda modos de vinculação, segurança e outras superfícies voltadas para a web.
Configuração (ativada por padrão)
A UI de Controle fica ativada por padrão quando os ativos estão presentes (dist/control-ui):
{ gateway: { controlUi: { enabled: true, basePath: "/openclaw" }, // basePath opcional },}Webhooks
Quando hooks.enabled=true, o Gateway também expõe um endpoint de Webhook no mesmo servidor HTTP. Consulte hooks na referência de configuração do Gateway para saber mais sobre autenticação e cargas úteis.
RPC HTTP administrativo
POST /api/v1/admin/rpc expõe métodos selecionados do plano de controle do Gateway por HTTP. Fica desativado por padrão e só é registrado quando o Plugin admin-http-rpc está ativado. Consulte RPC HTTP administrativo para conhecer o modelo de autenticação, os métodos permitidos e a comparação com a API WebSocket.
Acesso pelo Tailscale
Serve integrado (recomendado)
Mantenha o Gateway no local loopback e permita que o Tailscale Serve atue como proxy:
{ gateway: { bind: "loopback", tailscale: { mode: "serve" }, },}Inicie o Gateway:
openclaw gatewayAbra https://<magicdns>/ (ou o gateway.controlUi.basePath configurado).
Vinculação à tailnet + token
{ gateway: { bind: "tailnet", controlUi: { enabled: true }, auth: { mode: "token", token: "your-token" }, },}Inicie o Gateway (este exemplo fora do local loopback usa autenticação por token de segredo compartilhado):
openclaw gatewayAbra http://<tailscale-ip>:18789/ (ou o gateway.controlUi.basePath configurado).
Internet pública (Funnel)
{ gateway: { bind: "loopback", tailscale: { mode: "funnel" }, auth: { mode: "password" }, // ou OPENCLAW_GATEWAY_PASSWORD },}tailscale.mode: "funnel" exige gateway.auth.mode: "password"; tanto o Serve quanto o Funnel exigem gateway.bind: "loopback".
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 ativados.
- Vinculações fora do local loopback ainda exigem autenticação do Gateway: autenticação por token/senha ou um proxy reverso com reconhecimento de identidade usando
gateway.auth.mode: "trusted-proxy". - O assistente de integração cria autenticação por segredo compartilhado por padrão e geralmente gera um token do Gateway, mesmo no local loopback.
- No modo de segredo compartilhado, a UI envia
connect.params.auth.tokenouconnect.params.auth.passworddurante o handshake do WebSocket. - Com
gateway.tls.enabled: true, os auxiliares locais de painel/status renderizam URLshttps://e URLs de WebSocketwss://. - Nos modos que incluem identidade (Tailscale Serve,
trusted-proxy), a verificação de autenticação do WebSocket é atendida pelos cabeçalhos da solicitação, em vez de um segredo compartilhado. - Para implantações públicas da UI de Controle fora do local loopback, defina
gateway.controlUi.allowedOriginsexplicitamente (origens completas). Carregamentos privados da mesma origem são aceitos sem essa configuração para hosts de local loopback, RFC1918/link-local,.local,.ts.nete CGNAT do Tailscale. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback: trueativa o fallback de origem pelo cabeçalho Host; isso representa uma redução perigosa da segurança.- Com o Serve, os cabeçalhos de identidade do Tailscale atendem à autenticação da UI de Controle/WebSocket quando
gateway.auth.allowTailscale: true(nenhum token ou senha é necessário). Os endpoints da API HTTP não usam cabeçalhos de identidade do Tailscale; eles sempre seguem o modo normal de autenticação HTTP do Gateway. Definagateway.auth.allowTailscale: falsepara exigir credenciais explícitas mesmo pelo Serve. Esse fluxo sem token pressupõe que o próprio host do Gateway seja confiável. Consulte Tailscale e Segurança.
Compilação da UI
O Gateway disponibiliza arquivos estáticos de dist/control-ui:
pnpm ui:build