Web
Web (Gateway)
Sección titulada «Web (Gateway)»El Gateway sirve una pequeña Interfaz de usuario de control del navegador (Vite + Lit) desde el mismo puerto que el WebSocket del Gateway:
- predeterminado:
http://<host>:18789/ - prefijo opcional: configure
gateway.controlUi.basePath(por ejemplo,/openclaw)
Las capacidades residen en Control UI. Esta página se centra en los modos de enlace, seguridad y superficies web.
Webhooks
Sección titulada «Webhooks»Cuando hooks.enabled=true, el Gateway también expone un pequeño endpoint de webhook en el mismo servidor HTTP.
Consulte Gateway configuration → hooks para obtener información sobre la autenticación y las cargas útiles.
Configuración (activada de forma predeterminada)
Sección titulada «Configuración (activada de forma predeterminada)»La interfaz de usuario de control está activada de forma predeterminada cuando los activos están presentes (dist/control-ui).
Puede controlarla mediante la configuración:
{ gateway: { controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional },}Acceso a Tailscale
Sección titulada «Acceso a Tailscale»Servicio integrado (recomendado)
Sección titulada «Servicio integrado (recomendado)»Mantenga el Gateway en loopback y deje que Tailscale Serve actúe como proxy:
{ gateway: { bind: "loopback", tailscale: { mode: "serve" }, },}Luego inicie el gateway:
openclaw gatewayAbrir:
https://<magicdns>/(o sugateway.controlUi.basePathconfigurado)
Enlace a Tailnet + token
Sección titulada «Enlace a Tailnet + token»{ gateway: { bind: "tailnet", controlUi: { enabled: true }, auth: { mode: "token", token: "your-token" }, },}Luego inicie el gateway (se requiere token para enlaces no loopback):
openclaw gatewayAbrir:
http://<tailscale-ip>:18789/(o sugateway.controlUi.basePathconfigurado)
Internet público (Funnel)
Sección titulada «Internet público (Funnel)»{ gateway: { bind: "loopback", tailscale: { mode: "funnel" }, auth: { mode: "password" }, // or OPENCLAW_GATEWAY_PASSWORD },}Notas de seguridad
Sección titulada «Notas de seguridad»- La autenticación del Gateway se requiere de forma predeterminada (token/contraseña o encabezados de identidad de Tailscale).
- Los enlaces no loopback todavía requieren un token/contraseña compartido (
gateway.autho variable de entorno). - El asistente genera un token de gateway de forma predeterminada (incluso en loopback).
- La interfaz de usuario envía
connect.params.auth.tokenoconnect.params.auth.password. - Para implementaciones de interfaz de usuario de control no loopback, configure
gateway.controlUi.allowedOriginsexplícitamente (orígenes completos). Sin esto, el inicio del gateway se rechaza de forma predeterminada. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=truehabilita el modo de reserva de origen del encabezado Host, pero es una degradación de seguridad peligrosa.- Con Serve, los encabezados de identidad de Tailscale pueden satisfacer la autenticación de la interfaz de usuario de control/WebSocket
cuando
gateway.auth.allowTailscaleestrue(no se requiere token/contraseña). Los endpoints de la API HTTP aún requieren token/contraseña. Establezcagateway.auth.allowTailscale: falsepara requerir credenciales explícitas. Consulte Tailscale y Seguridad. Este flujo sin token asume que el host de la puerta de enlace es confiable. gateway.tailscale.mode: "funnel"requieregateway.auth.mode: "password"(contraseña compartida).
Construcción de la interfaz de usuario
Sección titulada «Construcción de la interfaz de usuario»La Gateway sirve archivos estáticos desde dist/control-ui. Constrúyalos con:
pnpm ui:build # auto-installs UI deps on first run