Cinq signatures mal comprises sous Windows et WSL2
OpenClaw couvre en 2026 macOS, Linux et Windows (souvent via WSL2). Les incidents Windows superposent trois couches : version Node, session utilisateur systemd capable de lancer le Gateway et occupation fantôme du port 18789. Les réduire à « réinstaller » provoque des boucles de crash de 30 à 50 secondes sur des builds comme 2026.4.24 alors que le blocage réel reste la double inscription Gateway au niveau utilisateur et système. Classez d'abord le ticket par signature avant de libérer des ports, de rétrograder un dist-tag ou de déplacer le Gateway de production vers un Mac cloud.
WSL ping le Mac cloud donc le Gateway est sain : l'accessibilité réseau n'équivaut pas à openclaw gateway status active. Une URL remote incorrecte sur le Node laisse Windows en boucle de redémarrage.
onboard --install-daemon sans systemd WSL2 : les unités sont écrites mais la session utilisateur ne les relance pas après fermeture SSH — canaux « parfois hors ligne ».
Gateway à la fois sur l'hôte Windows et dans WSL : deux écouteurs sur 18789, EADDRINUSE fantôme, sorties doctor contradictoires.
Veille du portable, canaux muets : Windows grand public gèle WSL. Les webhooks de production appartiennent à un master Mac cloud éveillé ; Windows reste nœud ou console.
Clés de config obsolètes après mise à niveau, pas de doctor : le processus Gateway tourne, channels probe rouge — souvent dérive de schéma, pas pare-feu.
En exploitation, un runbook à cases aide : transport (ping, statut Tailscale), processus (gateway status, journalctl --user -u openclaw-gateway -n 50), configuration (doctor, channels probe). Si les trois sont verts mais que le nœud coupe encore, la cause est presque toujours la couche remote — pas le pare-feu Windows. Pour les audits, n'exportez que des extraits de journaux anonymisés : les lignes Gateway peuvent contenir des identifiants de chat issus des adaptateurs de canaux. Définissez des durées de conservation conformes à votre politique de données personnelles avant de charger des logs dans des outils hébergés hors UE.
Après étiquetage, ajustez le routage des modèles. Si le master tourne déjà sur Mac cloud, lisez nœud distant, Tailscale et migration. Si le Gateway n'a jamais été validé sur l'hôte cloud, suivez d'abord la check-list SSH première heure avant d'empiler les démons WSL — sinon vous multipliez le bruit de redémarrage sur un master instable. Les équipes multi-OS doivent tenir un schéma d'architecture : quel hôte détient quels secrets, où les jetons tournent et quelle région minimise la latence vers vos utilisateurs finaux.
Matrice de décision : Windows natif, WSL2 ou Gateway Mac cloud
Le consensus 2026 n'est pas « Windows ne peut pas OpenClaw », mais placer plan de contrôle 7×24 et webhooks de canaux sur un hôte stable. Le tableau aligne expérimentation portable, Gateway auto-hébergé en WSL et topologie recommandée « master Mac cloud + nœud Windows ». Pour la bibliothèque d'incidents complète, voir déploiement Gateway et reprise.
| Dimension | Windows natif | WSL2 + systemd | Gateway Mac cloud + nœud Win |
|---|---|---|---|
| Installation | install.ps1 | install.sh dans Ubuntu | Mac cloud : install.sh ; Win : CLI/Node seul |
| Démon | Tâche planifiée, risque UI | Unité systemd utilisateur | Mac cloud : LaunchAgent ; Win : sans démon optionnel |
| Canaux 7×24 | Veille / mises à jour | Pause WSL | Canaux uniquement sur Mac cloud |
| Dépannage | Chemins / ACL | systemd + ports | Win : Node ; Mac cloud : Gateway |
| Recommandation 2026 | Démo courte | Rejouer scripts prod | équipes distribuées, automatisation |
Ne pariez pas les canaux de production sur un portable qui dort ; Gateway en loopback Mac cloud, Windows en node run seulement.
Documentez après choix du split : quel Mac cloud porte quels webhooks, si Windows n'utilise que openclaw node run --remote wss://.... WSL peut temporairement héberger un Gateway pour comparaison — ne liez pas le même jeton de canal en parallèle sur le master, sinon double consommation et pertes silencieuses. Conteneur vs bare metal : Docker vs install.sh ; versions : mise à niveau et rollback. Le dépôt Git sur l'instance Mac reste un arbre de travail classique, distinct de l'état Gateway.
Les comparatifs de coût oublient souvent l'exploitation : un portable Windows comme Gateway économise la location mais augmente les interruptions (mises à jour, batterie, VPN partagé). Un Mac cloud dans la région cible réduit la latence vers les API Telegram et Discord et rend les redémarrages LaunchAgent prévisibles. Si plusieurs développeurs partagent la même distribution WSL, séparez les comptes Unix ou les conteneurs pour éviter les collisions npm et OPENCLAW_HOME. La topologie split sépare aussi les données de canaux (sur le master) de l'exécution d'outils (sur Windows), ce qui simplifie les registres de traitement lorsque les exports de journaux restent minimaux.
Prérequis WSL2, Node 24 et dépannage EADDRINUSE par couches
Avant un openclaw onboard --install-daemon productif en WSL : Node ≥ 22.16 (24 recommandé) et systemd=true dans /etc/wsl.conf. Certains builds 2026.4.24 sur WSL2 affichaient : journal Gateway « démarré », Control UI inaccessible, EADDRINUSE toutes les 30–50 s — atténuation fréquente : épinglage 2026.4.22 et suppression des unités en double. Les journaux Gateway peuvent contenir des identifiants de canaux ; pour les tickets, exportez des extraits minimaux conformes à votre politique de conservation des données personnelles.
grep -q 'systemd=true' /etc/wsl.conf || echo '[boot]' >> /etc/wsl.conf && echo 'systemd=true' >> /etc/wsl.conf node -v curl -fsSL https://openclaw.ai/install.sh | bash openclaw onboard --install-daemon systemctl --user status openclaw-gateway lsof -i :18789 openclaw doctor openclaw gateway status
Si lsof montre 18789 occupé alors que gateway status est stopped, traitez d'abord les processus openclaw orphelins et les unités parallèles sous /etc/systemd/system versus ~/.config/systemd/user. Conservez une seule unité utilisateur, systemctl --user daemon-reload, redémarrage. Si la boucle persiste, documentez openclaw --version et évaluez le rollback depuis 2026.4.24 ; fenêtre de maintenance avec openclaw doctor --fix. Débogage Control UI local sur le portable : pare-feu limité à 18789 sur la machine de dev — production via Tailscale Serve vers le master Mac cloud, pas d'exposition publique du portable.
Pour les équipes mixtes, ordonnez la maintenance : figer d'abord le master Mac cloud (channels probe vert), désactiver ensuite le démon WSL, migrer enfin les clients Node. Le rollback suit l'ordre inverse — jamais redémarrage master et onboard WSL simultanés. Si vous testez PowerShell natif, documentez les écarts avec install.sh pour que le support n'applique pas des commandes WSL sur l'hôte. Tenez une fiche de compatibilité 2026.4.x : build, noyau WSL, version Node, résultat de doctor --fix.
Astuce : archivez systemctl --user status et lsof -i :18789 avant et après onboard pour distinguer double instance et défaut de version.
Runbook en six étapes : validation WSL jusqu'au smoke canal sur le master
Geler la topologie : rôle Windows (nœud seul / Gateway temporaire), région Mac cloud, canaux uniquement sur le master.
Prérequis WSL : systemd actif, node -v ≥ 22.16, installer Node 24 dans Ubuntu si besoin.
Master sur Mac cloud : install.sh, onboard, LaunchAgent selon la check-list première heure ; loopback 18789 et gateway status verts.
Remote côté Windows : node run --remote ou Control UI vers WSS master ; si 1008, devices approve sur le master (article nœud distant).
Arrêter le Gateway local WSL (split) : désactiver l'unité utilisateur pour éviter collision de config canal avec le master.
Smoke sur le master : channels probe et message entrant réel sur Mac cloud ; Windows vérifie seulement l'exécution d'outils, webhooks pas sur le portable.
Chaque étape mérite un champ ticket : date, version, région, résultat de sonde. Les équipes distribuées gagnent des heures de support car les opérateurs Windows n'ont plus à interpréter chaque journal Gateway du master. La discipline de documentation évite aussi de mélanger incidents WSL, de version et de canal dans un même fil de discussion.
Après l'étape 06, exécutez un test de charge léger : deux sessions Node depuis des postes Windows distincts, un message canal réel, un outil long. Surveillez la RAM du Mac cloud et vérifiez si WSL régénère EADDRINUSE — signe qu'un démon Gateway local tourne encore. Documentez les ACL Tailscale : seuls les groupes développeurs doivent joindre le WSS du master. Faites tourner les jetons de canal dans un change séparé de la bascule Node pour isoler les causes.
Trois seuils d'exploitation et choix du Gateway Mac cloud
Conflit de port : trois EADDRINUSE ou plus en dix minutes avec deux processus openclaw-gateway dans la même WSL → double instance, arrêt et nettoyage avant mise à niveau.
Plancher Node : la doc 2026 recommande Node 24 ; sous 22.16 doctor peut être vert avec échec des plugins — joindre node -v au ticket.
Acceptation split : après reprise du master, au moins trois channels probe en dix minutes ; une veille du portable — seul le Node reconnecte, canaux indépendants du laptop.
Note : seuils internes de communication, pas SLA éditeur.
Ancrer le Gateway sur un portable Windows réintroduit veille, mises à jour fonctionnelles et gel WSL. Les VPS Linux bon marché s'éloignent de l'automatisation navigateur macOS et de la notarisation. Mac cloud bare metal en master, Windows en nœud ou UI combine proximité toolchain Apple, discipline loopback et fenêtres de location prévisibles à Singapour, Tokyo, Séoul, Hong Kong, USA Est et Ouest. Pour des canaux 7×24 sans parier sur du matériel grand public, la location Mac mini MESHLAUNCH est en général la meilleure base : valider la région cible en location journalière avec les six étapes plus un redémarrage hôte, puis verrouiller le mois.
Dimensionnement : un master multi-canaux avec outils lourds préfère 24 Go de RAM ; plusieurs nœuds clients augmentent la charge WebSocket plus que les pics CPU Xcode. Changez de région via backup/restore plutôt que copie manuelle de JSON isolés. Conservez des captures gateway status et channels probe pour les revues internes. Commande et support : tarifs et centre d'aide.
lsof -i :18789 et systemctl --user status openclaw-gateway, nettoyer unités et processus, vérifier épinglage 2026.4.24. Voir manuel Gateway ; location : tarifs.
Oui pour tests courts. Canaux de production sur master Mac cloud, Windows en node run. Étapes : check-list SSH première heure.
Vérifier systemd dans /etc/wsl.conf, exécuter openclaw doctor. En split, canaux restent sur Mac cloud : centre d'aide.