Web interfaces
Panel de control
El panel del Gateway es la UI de control en el navegador servida en / de forma predeterminada
(se puede sobrescribir con gateway.controlUi.basePath).
Apertura rápida (Gateway local):
- http://127.0.0.1:18789/ (o http://localhost:18789/)
- Con
gateway.tls.enabled: true, usahttps://127.0.0.1:18789/ywss://127.0.0.1:18789para el endpoint WebSocket.
Referencias clave:
- UI de control para el uso y las capacidades de la UI.
- Tailscale para la automatización de Serve/Funnel.
- Superficies web para los modos de enlace y las notas de seguridad.
La autenticación se aplica en el handshake WebSocket mediante la ruta de autenticación del gateway configurada:
connect.params.auth.tokenconnect.params.auth.password- Encabezados de identidad de Tailscale Serve cuando
gateway.auth.allowTailscale: true - encabezados de identidad de proxy de confianza cuando
gateway.auth.mode: "trusted-proxy"
Consulta gateway.auth en configuración del Gateway.
Nota de seguridad: la UI de control es una superficie de administración (chat, configuración, aprobaciones de exec). No la expongas públicamente. La UI conserva los tokens de URL del panel en sessionStorage para la sesión actual de la pestaña del navegador y la URL del gateway seleccionada, y los elimina de la URL después de cargar. Prefiere localhost, Tailscale Serve o un túnel SSH.
Ruta rápida (recomendada)
- Después del onboarding, la CLI abre automáticamente el panel e imprime un enlace limpio (sin token).
- Vuelve a abrirlo en cualquier momento:
openclaw dashboard(copia el enlace, abre el navegador si es posible, muestra una sugerencia de SSH si no hay interfaz gráfica). - Si fallan el portapapeles y la entrega al navegador,
openclaw dashboardigualmente imprime la URL limpia y te indica que uses el token deOPENCLAW_GATEWAY_TOKENogateway.auth.tokencomo clave de fragmento de URLtoken; no imprime valores de token en los registros. - Si la UI solicita autenticación con secreto compartido, pega el token o la contraseña configurados en la configuración de la UI de control.
Conceptos básicos de autenticación (local vs. remoto)
- Localhost: abre
http://127.0.0.1:18789/. - TLS del Gateway: cuando
gateway.tls.enabled: true, los enlaces de panel/estado usanhttps://y los enlaces WebSocket de la UI de control usanwss://. - Origen del token de secreto compartido:
gateway.auth.token(oOPENCLAW_GATEWAY_TOKEN);openclaw dashboardpuede pasarlo mediante fragmento de URL para el arranque inicial de una sola vez, y la UI de control lo conserva en sessionStorage para la sesión actual de la pestaña del navegador y la URL del gateway seleccionada en lugar de localStorage. - Si
gateway.auth.tokenestá gestionado por SecretRef,openclaw dashboardimprime/copia/abre una URL sin token por diseño. Esto evita exponer tokens gestionados externamente en registros de shell, historial del portapapeles o argumentos de lanzamiento del navegador. - Si
gateway.auth.tokenestá configurado como SecretRef y no se resuelve en tu shell actual,openclaw dashboardigualmente imprime una URL sin token más orientación práctica para configurar la autenticación. - Contraseña de secreto compartido: usa la
gateway.auth.passwordconfigurada (oOPENCLAW_GATEWAY_PASSWORD). El panel no conserva contraseñas entre recargas. - Modos con identidad: Tailscale Serve puede satisfacer la autenticación de la UI de control/WebSocket
mediante encabezados de identidad cuando
gateway.auth.allowTailscale: true, y un proxy inverso con reconocimiento de identidad que no sea loopback puede satisfacergateway.auth.mode: "trusted-proxy". En esos modos el panel no necesita un secreto compartido pegado para el WebSocket. - No localhost: usa Tailscale Serve, un enlace de secreto compartido que no sea loopback, un
proxy inverso con reconocimiento de identidad que no sea loopback con
gateway.auth.mode: "trusted-proxy", o un túnel SSH. Las API HTTP siguen usando autenticación con secreto compartido a menos que ejecutes intencionalmentegateway.auth.mode: "none"para ingreso privado o autenticación HTTP trusted-proxy. Consulta Superficies web.
Si ves "unauthorized" / 1008
- Asegúrate de que el gateway sea accesible (local:
openclaw status; remoto: túnel SSHssh -N -L 18789:127.0.0.1:18789 user@hosty luego abrehttp://127.0.0.1:18789/). - Para
AUTH_TOKEN_MISMATCH, los clientes pueden hacer un reintento de confianza con un token de dispositivo en caché cuando el gateway devuelve sugerencias de reintento. Ese reintento con token en caché reutiliza los ámbitos aprobados en caché del token; los llamadores condeviceTokenexplícito /scopesexplícitos conservan su conjunto de ámbitos solicitado. Si la autenticación sigue fallando después de ese reintento, resuelve manualmente la divergencia del token. - Fuera de esa ruta de reintento, la precedencia de autenticación de conexión es primero token/contraseña compartidos explícitos, luego
deviceTokenexplícito, luego token de dispositivo almacenado y luego token de arranque. - En la ruta asíncrona de la UI de control de Tailscale Serve, los intentos fallidos para el mismo
{scope, ip}se serializan antes de que el limitador de autenticación fallida los registre, por lo que el segundo reintento incorrecto concurrente ya puede mostrarretry later. - Para los pasos de reparación de divergencia de token, sigue la lista de verificación de recuperación de divergencia de token.
- Recupera o suministra el secreto compartido desde el host del gateway:
- Token:
openclaw config get gateway.auth.token - Contraseña: resuelve la
gateway.auth.passwordconfigurada oOPENCLAW_GATEWAY_PASSWORD - Token gestionado por SecretRef: resuelve el proveedor de secretos externo o exporta
OPENCLAW_GATEWAY_TOKENen este shell, y luego vuelve a ejecutaropenclaw dashboard - Sin secreto compartido configurado:
openclaw doctor --generate-gateway-token
- Token:
- En la configuración del panel, pega el token o la contraseña en el campo de autenticación, y luego conecta.
- El selector de idioma de la UI está en Overview -> Gateway Access -> Language. Forma parte de la tarjeta de acceso, no de la sección Appearance.