Web (Gateway)¶
El Gateway ofrece una pequeña IU de Control en el navegador (Vite + Lit) desde el mismo puerto que el WebSocket del Gateway:
- predeterminado:
http://<host>:18789/ - prefijo opcional: configure
gateway.controlUi.basePath(p. ej.,/openclaw)
Las capacidades se describen en Control UI. Esta página se centra en los modos de enlace, la seguridad y las superficies expuestas en la web.
Webhooks¶
Cuando hooks.enabled=true, el Gateway también expone un pequeño endpoint de webhook en el mismo servidor HTTP.
Consulte Configuración del Gateway → hooks para autenticación y cargas útiles.
Configuración (activada por defecto)¶
La IU de Control está habilitada de forma predeterminada cuando los recursos están presentes (dist/control-ui).
Puede controlarla mediante la configuración:
{
gateway: {
controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional
},
}
Acceso con Tailscale¶
Serve integrado (recomendado)¶
Mantenga el Gateway en loopback y deje que Tailscale Serve lo proxifique:
{
gateway: {
bind: "loopback",
tailscale: { mode: "serve" },
},
}
Luego inicie el gateway:
openclaw gateway
Abra:
https://<magicdns>/(o sugateway.controlUi.basePathconfigurado)
Enlace al tailnet + token¶
{
gateway: {
bind: "tailnet",
controlUi: { enabled: true },
auth: { mode: "token", token: "your-token" },
},
}
Luego inicie el gateway (se requiere token para enlaces que no sean loopback):
openclaw gateway
Abra:
http://<tailscale-ip>:18789/(o sugateway.controlUi.basePathconfigurado)
Internet público (Funnel)¶
{
gateway: {
bind: "loopback",
tailscale: { mode: "funnel" },
auth: { mode: "password" }, // or OPENCLAW_GATEWAY_PASSWORD
},
}
Notas de seguridad¶
- La autenticación del Gateway es obligatoria de forma predeterminada (token/contraseña o encabezados de identidad de Tailscale).
- Los enlaces que no sean loopback siguen requiriendo un token/contraseña compartido (
gateway.autho variable de entorno). - El asistente genera un token del gateway de forma predeterminada (incluso en loopback).
- La IU envía
connect.params.auth.tokenoconnect.params.auth.password. - La IU de Control envía encabezados anti–clickjacking y solo acepta conexiones WebSocket del navegador del mismo origen, a menos que se configure
gateway.controlUi.allowedOrigins. - Con Serve, los encabezados de identidad de Tailscale pueden satisfacer la autenticación cuando
gateway.auth.allowTailscaleestrue(no se requiere token/contraseña). Configuregateway.auth.allowTailscale: falsepara exigir credenciales explícitas. Consulte Tailscale y Seguridad. gateway.tailscale.mode: "funnel"requieregateway.auth.mode: "password"(contraseña compartida).
Construcción de la UI¶
El Gateway sirve archivos estáticos desde dist/control-ui. Compílelos con:
pnpm ui:build # auto-installs UI deps on first run