- valor predeterminado:
http://<host>:18789/ - con
gateway.tls.enabled: true:https://<host>:18789/ - prefijo opcional: define
gateway.controlUi.basePath(p. ej.,/openclaw)
Configuración (activada por defecto)
Control UI está activada por defecto cuando los recursos están presentes (dist/control-ui):
Webhooks
Cuandohooks.enabled=true, el Gateway también expone un endpoint de Webhook en el mismo servidor HTTP. Consulta hooks en la referencia de configuración del Gateway para la autenticación y las cargas útiles.
RPC HTTP de administración
POST /api/v1/admin/rpc expone métodos seleccionados del plano de control del Gateway por HTTP. Desactivado por defecto; se registra solo cuando el plugin admin-http-rpc está activado. Consulta RPC HTTP de administración para ver el modelo de autenticación, los métodos permitidos y la comparación con la API WebSocket.
Acceso con Tailscale
- Integrated Serve (recommended)
- Tailnet bind + token
- Public internet (Funnel)
Mantén el Gateway en loopback y deja que Tailscale Serve actúe como proxy:Inicia el gateway:Abre
https://<magicdns>/ (o tu gateway.controlUi.basePath configurado).Notas de seguridad
- La autenticación del Gateway es obligatoria por defecto: token, contraseña, proxy de confianza o encabezados de identidad de Tailscale Serve cuando estén activados.
- Los enlaces no loopback siguen requiriendo autenticación del gateway: autenticación por token/contraseña o un proxy inverso con identidad con
gateway.auth.mode: "trusted-proxy". - El asistente de incorporación crea autenticación de secreto compartido por defecto y normalmente genera un token de gateway, incluso en loopback.
- En modo de secreto compartido, la UI envía
connect.params.auth.tokenoconnect.params.auth.passworddurante el handshake de WebSocket. - Con
gateway.tls.enabled: true, los ayudantes locales de panel/estado muestran URLhttps://y URL WebSocketwss://. - En modos con identidad (Tailscale Serve,
trusted-proxy), la comprobación de autenticación de WebSocket se satisface desde los encabezados de la solicitud en lugar de un secreto compartido. - Para despliegues públicos no loopback de Control UI, define
gateway.controlUi.allowedOriginsexplícitamente (orígenes completos). Las cargas privadas del mismo origen se aceptan sin esto para loopback, RFC1918/link-local,.local,.ts.nety hosts CGNAT de Tailscale. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback: trueactiva el fallback de origen por encabezado Host; esto es una degradación de seguridad peligrosa.- Con Serve, los encabezados de identidad de Tailscale satisfacen la autenticación de Control UI/WebSocket cuando
gateway.auth.allowTailscale: true(no se requiere token/contraseña). Los endpoints de la API HTTP no usan encabezados de identidad de Tailscale; siempre siguen el modo de autenticación HTTP normal del gateway. Definegateway.auth.allowTailscale: falsepara requerir credenciales explícitas incluso mediante Serve. Este flujo sin token asume que el propio host del gateway es de confianza. Consulta Tailscale y Seguridad.
Compilar la UI
El Gateway sirve archivos estáticos desdedist/control-ui: