2026-04-16 Mise à jour et retour arrière de la passerelle OpenClaw sur Mac cloud loué sans tête
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
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.
Retour arrière : restaurer l’état, pas l’espoir
- Arrêter à nouveau passerelle et amont nginx.
- Retirer l’install globale cassée si besoin :
npm rm -g openclawpuis réinstaller l’ancien semver. - Décompresser l’archive :
tar -xzf openclaw-state-....tgz -C "$HOME"(vérifier les droits). - Restaurer le plist s’il a changé ;
launchctl bootout/bootstrapsi requis. - Vérifier doctor + curl interne ; ne renvoyer 200 sur l’ingress public qu’ensuite.
Runbooks liés et discipline des secrets
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