- par défaut :
http://<host>:18789/ - avec
gateway.tls.enabled: true:https://<host>:18789/ - préfixe facultatif : définissez
gateway.controlUi.basePath(par ex./openclaw)
Webhooks
Lorsquehooks.enabled=true, le Gateway expose également un petit point de terminaison webhook sur le même serveur HTTP.
Consultez Configuration du Gateway → hooks pour l’authentification et les charges utiles.
RPC HTTP d’administration
Le RPC HTTP d’administration expose certaines méthodes du plan de contrôle du Gateway àPOST /api/v1/admin/rpc.
Il est désactivé par défaut et n’est enregistré que lorsque le plugin admin-http-rpc est activé.
Consultez RPC HTTP d’administration pour le modèle d’authentification, les méthodes autorisées et la comparaison avec WebSocket.
Configuration (activée par défaut)
La Control UI est activée par défaut lorsque les ressources sont présentes (dist/control-ui).
Vous pouvez la contrôler via la configuration :
Accès Tailscale
Serve intégré (recommandé)
Gardez le Gateway sur local loopback et laissez Tailscale Serve le mandater :https://<magicdns>/(ou votregateway.controlUi.basePathconfiguré)
Liaison Tailnet + jeton
http://<tailscale-ip>:18789/(ou votregateway.controlUi.basePathconfiguré)
Internet public (Funnel)
Notes de sécurité
- L’authentification du Gateway est requise par défaut (jeton, mot de passe, proxy de confiance ou en-têtes d’identité Tailscale Serve lorsqu’ils sont activés).
- Les liaisons non-loopback nécessitent toujours l’authentification du Gateway. En pratique, cela signifie une authentification par jeton/mot de passe ou un proxy inverse sensible à l’identité avec
gateway.auth.mode: "trusted-proxy". - L’assistant crée par défaut une authentification à secret partagé et génère généralement un jeton de Gateway (même sur local loopback).
- En mode secret partagé, l’UI envoie
connect.params.auth.tokenouconnect.params.auth.password. - Lorsque
gateway.tls.enabled: true, les assistants locaux de tableau de bord et d’état affichent des URL de tableau de bordhttps://et des URL WebSocketwss://. - Dans les modes porteurs d’identité tels que Tailscale Serve ou
trusted-proxy, la vérification d’authentification WebSocket est satisfaite à partir des en-têtes de requête à la place. - Pour les déploiements publics non-loopback de la Control UI, définissez explicitement
gateway.controlUi.allowedOrigins(origines complètes). Les chargements LAN/Tailnet privés de même origine sont acceptés pour local loopback, RFC1918/link-local,.local,.ts.netet les hôtes CGNAT Tailscale. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueactive le mode de repli d’origine via l’en-tête Host, mais constitue un abaissement dangereux du niveau de sécurité.- Avec Serve, les en-têtes d’identité Tailscale peuvent satisfaire l’authentification Control UI/WebSocket
lorsque
gateway.auth.allowTailscalevauttrue(aucun jeton/mot de passe requis). Les points de terminaison d’API HTTP n’utilisent pas ces en-têtes d’identité Tailscale ; ils suivent plutôt le mode d’authentification HTTP normal du Gateway. Définissezgateway.auth.allowTailscale: falsepour exiger des identifiants explicites. Consultez Tailscale et Sécurité. Ce flux sans jeton suppose que l’hôte du Gateway est fiable. gateway.tailscale.mode: "funnel"nécessitegateway.auth.mode: "password"(mot de passe partagé).
Construire l’UI
Le Gateway sert les fichiers statiques depuisdist/control-ui. Construisez-les avec :