OpenClaw doctor sur Mac cloud 2026 : transformer les alertes rouges en correctifs launchd avant que les canaux se taisent
Les équipes qui hébergent des passerelles OpenClaw sur des Mac mini loués oscillent entre « le CLI marche en SSH » et « Slack s’est tu à 03h00 ». Ce runbook affirme que openclaw doctor est le premier plan de données : chaque avertissement doit être relié immédiatement aux chemins launchd, aux binaires Node, aux ports en écoute et au DNS sortant du même utilisateur qui possède ai.openclaw.gateway. Vous obtenez une matrice symptômes, huit étapes chiffrées, une table de corrélations launchd, des champs de preuve pour le changement et une FAQ alignée sur les régions MacLogin.
Affinez les couches d’environnement avec variables d’environnement et launchd, réparez les démons via dépannage passerelle, stabilisez le transport avec keepalive SSH, et sécurisez le répertoire d’état avec sauvegarde et passation. Les bases de bail sont dans l’aide, l’ajout de staging dans les tarifs, et le VNC lorsque macOS bloque la réparation headless.
Les healthchecks qui ne touchent que la boucle locale laissent doctor vert pendant que le TLS de bord tombe. Traitez les échecs TLS sortants comme incidents majeurs même si doctor reste silencieux.
Pourquoi doctor d’abord sur un Mac cloud sans tête
- Copies de bail : un LaunchAgent copié de Tokyo à Singapour sans relancer doctor cache un chemin Node obsolète jusqu’au premier reboot.
- Rotation de jetons : doctor peut rester « config lisible » car il inspecte surtout les permissions, pas la validité du secret.
- FinOps / audit : une sortie doctor horodatée prouve la santé pré-incident mieux qu’une capture Slack.
Matrice symptômes avant de tailer les logs
| Symptôme visible | Section doctor à lire | Confirmation secondaire | Cause fréquente MacLogin |
|---|---|---|---|
| Code 127 dans launchd | Runtime / Node | which node vs ProgramArguments | Préfixe Homebrew déplacé après mise à jour |
| Webhook 502 depuis le proxy | Ports / listeners | lsof sur l’écoute loopback | Dérive de port localhost |
| Timeouts LLM | Network / DNS | dig même utilisateur | Politique de sortie sur bail partagé |
| Outils toujours refusés | Permissions / workspace | Historique TCC via GUI une fois | Premier lancement jamais complété hors SSH |
Huit étapes à coller dans un ticket
- Parité shell : SSH en tant que propriétaire LaunchAgent ; vérifiez
OPENCLAW_STATE_DIRhors iCloud (guide état). - Capture :
openclaw doctor > ~/tmp/doctor-$(date +%Y%m%d-%H%M).txt. - Verrouillage de version :
openclaw --version+ semver Node dans le même fichier. - launchctl print :
launchctl print gui/$(id -u)/ai.openclaw.gatewaysi l’étiquette correspond. - Contrôle ports : un décalage > ±1 par rapport aux indices doctor signale une config périmée.
- Sonde canal : ping synthétique sur le canal documenté le moins cher avant la prod.
- Timebox : sans progrès en 25 minutes, escaladez avec doctor + launchctl.
- Post-fix : relancez doctor ; zéro ligne rouge ou acceptation de risque écrite.
Table de corrélation launchd
| Indice doctor | Champ launchd | Pattern sain |
|---|---|---|
| « Cannot find node » | ProgramArguments[0] | Chemin absolu identique au shell interactif |
| « State dir not writable » | WorkingDirectory | Racine dépôt en 700 |
| « Port in use » | Aucun — processus | Arrêtez le doublon ou +1 en labo seulement |
Faux verts et drapeaux rouges
Doctor peut rester vert pendant que le proxy TLS casse si les checks ne sortent pas de localhost. Les pannes TLS sortantes restent P1.
- Rouge : doctor vert mais CPU > 85 % pendant 20 minutes sans trafic — boucle d’outil probable.
- Rouge : espace disque système APFS < 12 Go — corruption de cache OpenClaw possible.
Champs appréciés par l’audit
| Artefact | Contenu minimal | Rétention suggérée |
|---|---|---|
| doctor.txt | stdout complet, hostname, code région | 90 jours |
| launchctl print | Code retour, horodatage, uid | 90 jours |
| Diff openclaw.json | Secrets masqués | 180 jours |
FAQ
Doctor remplace-t-il les tests d’intégration ? Non — c’est un prévol rapide ; gardez des smokes par canal.
CI doit-elle appeler doctor ? Oui, au minimum sur les baux staging avec sortie non nulle si lignes rouges.
MacLogin exécute-t-il doctor pour moi ? Non — vous restez opérateur ; cet article documente votre propre exécution.
Pourquoi le Mac mini M4 accélère le durcissement piloté par doctor
Le matériel correspond aux hypothèses arm64 + launchd d’OpenClaw, avec assez de performance pour lancer doctor en parallèle d’une sonde Ollama locale sans affamer la passerelle. Le Neural Engine laisse une marge pour des vérifications on-device. Les régions MacLogin rapprochent doctor des utilisateurs finaux, réduisant les faux négatifs WAN.
Ajoutez de la capacité via les tarifs lorsque doctor signale CPU ou disque soutenus ; gardez l’aide pour les patterns SSH/VNC.
Montez un bail passerelle « doctor clean »
Miroitez les labels launchd de prod sur un nœud Apple Silicon de secours avant chaque upgrade OpenClaw.