IA / Automatisation 16 avril 2026

2026-04-16 Mise à jour et retour arrière de la passerelle OpenClaw sur Mac cloud loué sans tête

Équipe ingénierie MacXCode 16 avril 2026 ~15 min de lecture

Déployer OpenClaw sur un Mac Apple Silicon loué qui ne parle que SSH, c’est du pur ops : pas de parcours Finder, pas de « relance l’app ». Ce guide du 2026-04-16 couvre le gel d’ingress, la séquence stop avant npm, les sauvegardes avec somme de contrôle de ~/.openclaw, le pin de version (pas de @latest aveugle), la validation openclaw doctor, le double redémarrage parfois nécessaire après install globale, et un retour tarball sous 3 minutes quand la build dérape. Croiser avec variables d’environnement et secrets (2026-04-15), sondes de santé et ingress nginx pour garder une pile cohérente sur HK / JP / KR / SG / US.

Risques propres aux passerelles sans tête

  • npm global à chaud — remplacer des fichiers pendant que Node tient des handles provoque des installs partielles et des versions « fantômes ».
  • Chevauchement launchd — un LaunchAgent utilisateur peut relancer la passerelle au milieu de la MAJ sans unload préalable.
  • Dérive de config — les mineures renomment parfois des clés ; gardez un export openclaw.json (sans secrets) suivi par Git.
  • Rafale webhook — rouvrir nginx sans readiness fait retenter agressivement les partenaires ; utilisez les sondes de l’article santé.

Geler d’abord le trafic public

Sur les hôtes avec reverse proxy nginx, basculez l’amont en maintenance ou renvoyez 503 avec Retry-After: 90 pendant l’opération. Les canaries internes sur 127.0.0.1:18789 doivent rester joignables pour valider avant de rouvrir au monde.

Matrice de sauvegarde : quoi tar avant npm

Chemin / artefact Inclure ? Notes
~/.openclaw (ou $OPENCLAW_STATE_DIR) Toujours Arrêter la passerelle d’abord ; vérifier gzip avec shasum -a 256
Arbre du prefix npm global Optionnel Capturer le texte de npm prefix -g + npm ls -g --depth=0 pour diff
plist launchd Toujours Copier depuis ~/Library/LaunchAgents dans le même dossier d’archive

TS=$(date +%Y%m%d-%H%M) tar -czf "/Volumes/backups/openclaw-state-$TS.tgz" -C "$HOME" .openclaw shasum -a 256 "/Volumes/backups/openclaw-state-$TS.tgz" > "/Volumes/backups/openclaw-state-$TS.tgz.sha256"

Installer et épingler : traiter les semver comme des migrations SQL

Les passerelles prod doivent suivre un semver explicite, p.ex. 1.24.3, dans votre dépôt d’infra. La CI peut flotter un peu plus vite, mais le Mac qui affronte les partenaires à Singapour ne doit pas vous surprendre à 02h00 avec une API de plugin cassante. Après arrêt des services :

npm install -g openclaw@1.24.3

Alerte décalage : certains flux mettent à jour le CLI sans redémarrer la passerelle—exécutez openclaw gateway status et comparez au openclaw --version ; un écart signifie transition en cours.

Valider, redémarrer, quand rebondir deux fois

Lancez openclaw doctor et envoyez stdout vers votre collecteur. Démarrez via launchctl bootstrap/kickstart selon le plist. Si les logs montrent des chemins de modules obsolètes ou des piles require bizarres, faites un cycle stop/start propre supplémentaire—documentez pour que l’astreinte ne croie pas au flapping. Relancez les checks synthétiques des sondes de santé avant de lever la maintenance nginx.

Budget temps : prévoir 90 secondes de maintenance pour une mineure semver et 8 à 12 minutes pour les sauts avec rebuild de dépendances natives—communiquez les deux sur la page de statut.

Retour arrière : restaurer l’état, pas l’espoir

  1. Arrêter à nouveau passerelle et amont nginx.
  2. Retirer l’install globale cassée si besoin : npm rm -g openclaw puis réinstaller l’ancien semver.
  3. Décompresser l’archive : tar -xzf openclaw-state-....tgz -C "$HOME" (vérifier les droits).
  4. Restaurer le plist s’il a changé ; launchctl bootout/bootstrap si requis.
  5. Vérifier doctor + curl interne ; ne renvoyer 200 sur l’ingress public qu’ensuite.

Les MAJ touchent les mêmes fichiers que la rotation des secrets—coordez avec le guide launchd pour garder .env et les clés plist alignés. En blue/green avec un second utilisateur passerelle, séparez OPENCLAW_STATE_DIR comme décrit là. Après échecs répétés, ajoutez un nœud témoin depuis les tarifs plutôt que patcher sans fin une machine fatiguée.

FAQ : MAJ passerelle sur Mac cloud

Question Réponse
pnpm plutôt que npm ? Pris en charge—même discipline arrêt/sauvegarde/pin/démarrage ; noter le chemin du store dans les runbooks.
Automatiser chaque semaine ? Seulement avec hôte canary + doctor auto + barrières de sondes ; jamais d’auto-MAJ prod sans humains en astreinte.
Où tracer les incidents ? Votre pont existant ; corréler avec les champs de journalisation structurée.

En bref : traitez les MAJ OpenClaw comme des bascules base de données—geler le trafic, sauver l’état, épingler les versions, valider deux fois, répéter le retour arrière jusqu’à ce que ce soit réflexe dans chaque région.

OpenClaw sur passerelles M4 dédiées

SSH d’abord · HK · JP · KR · SG · US