Beaucoup d'équipes font tourner OpenClaw en local sans friction, puis butent en production sur la séparation : le Gateway doit rester 7×24 sur du bare metal, tandis que Canvas, capture d'écran, caméra et system.run doivent rester sur un Mac local avec autorisations TCC. La doc macOS 2026 formalise le mode Remote : Gateway distant, node host local, plan de contrôle via tunnel SSH ou Tailscale sur le port 18789. Ce guide livre la topologie, un tableau de décision, six étapes et une matrice d'erreurs. Matériel et durées sur la page tarifs CALMVPS.
À la fin : savoir si Local ou Remote convient, comment installer le Gateway sur CALMVPS et basculer l'app, et quelles commandes lancer en premier en cas d'échec de tunnel ou de conflit sur 18789.
01 Ce que résout la topologie deux machines
Tout sur un seul Mac paraît fluide en démo. En production, trois coûts cachés apparaissent :
- Calcul et permissions liés. Gateway, cron et sessions multi-canaux consomment CPU et RAM ; en parallèle, capture d'écran et automatisation. Sur 16 Go, swap nocturne et pop-ups TCC cassent l'unattended.
- Sortie réseau fragile. NAT domestique ou bureau perturbe les WebSockets longue durée ; les canaux hors ligne sont souvent imputés au modèle à tort.
- Frontière ops floue. Veille, mises à jour, Spotlight et launchd se superposent ; on ne sait plus si c'est le Gateway ou macOS qui a arrêté le processus.
En Remote, un Mac bare metal CALMVPS (Hong Kong, Singapour, US Ouest, etc.) porte Gateway, canaux et planification. Le Mac local n'est qu'un nœud UI/TCC ; le node host expose Canvas, Camera, Screen et system.run au Gateway distant. Le contrôle reste sur 18789 ; l'app macOS maintient le tunnel SSH.
Règle : Gateway dans le cloud, nœud en local, contrôle uniquement via 18789 — dessinez la topologie avant M4 et durée de location.
Si des données personnelles transitent par le Gateway cloud, anticipez la conformité RGPD : région, sous-traitance et registres ; CALMVPS documente les sites et les accords contractuels.
02 Local vs Remote : matrice de décision
Toutes les équipes n'ont pas besoin de deux machines tout de suite. Ce tableau cadre Local et Remote pour une revue unique.
| Dimension | Local (Gateway sur poste) | Remote (Gateway sur CALMVPS) |
|---|---|---|
| Stade | Tests perso, un canal | Canaux 7×24, multi-agents, cron fuseaux |
| Rôle local | Gateway + nœud réunis | Nœud seul (TCC, Canvas, system.run) |
| Rôle distant | Aucun | Gateway, launchd, journaux sur disque |
| Contrôle | 127.0.0.1:18789 direct | SSH -L ou MagicDNS Tailscale + tunnel app |
| Risques typiques | Veille, MAJ, concurrence RAM | Santé tunnel, dérive de version, tokens |
| Location | Matériel propre | Nœud Gateway mois/trimestre ; local inchangé |
Pour un hub-and-spoke multi-régions, Remote est un prérequis ; voir choix de nœud OpenClaw distant. Ici : un Gateway distant + un nœud local minimal viable.
03 Déployer le Gateway sur CALMVPS bare metal
Choisissez la région CALMVPS proche des utilisateurs et de l'egress des canaux. Le Gateway n'écoute que en loopback ; le contrôle passe par SSH ou Tailscale, pas par une UI Web exposée sur Internet.
Installation (revérifier la version avant prod) : https://openclaw.ai/install.sh
Modes Local/Remote macOS et label launchd ai.openclaw.gateway : https://docs.openclaw.ai/platforms/macos
curl -fsSL https://openclaw.ai/install.sh | bash
openclaw onboard --install-daemon
openclaw gateway status
launchctl kickstart -k gui/$UID/ai.openclaw.gateway
Port WS Gateway 18789, liaison 127.0.0.1 recommandée
- Runtime Node : une version majeure fixe pour launchd et shell interactif.
- État : pas de
OPENCLAW_STATE_DIRdans iCloud ; défaut~/.openclaw, aligné avecopenclaw doctor. - Disque : journaux, cron et memory grossissent ; prévoir au moins 80 Go dédiés, 1 To/2 To selon la page tarifs.
04 macOS Remote et tunnel en six étapes
Après OpenClaw.app et les autorisations TCC sur le Mac local :
- Vérifier le Gateway distant : sur CALMVPS
openclaw gateway status, 18789 joignable en loopback. - Clé SSH : BatchMode pour le tunnel app ; login par clé pour le compte ops.
- Tailscale optionnel : MagicDNS plutôt qu'une IP tailnet figée.
- App en Remote : mode Remote, hôte distant ; l'app utilise
ssh -N -L 18789:127.0.0.1:18789sans lancer de Gateway local. - Démarrer le node host : le mode Remote expose Canvas, Camera, Screen,
system.run(approbations Exec dans l'app). - Recouper en CLI : sous
apps/macos:swift run openclaw-mac connect --jsonetdiscover --timeout 3000 --json.
Accès distant et ws/wss direct : https://docs.openclaw.ai/platforms/mac/remote
ssh -N -L 18789:127.0.0.1:18789 user@your-calmvps-node
curl -fsS http://127.0.0.1:18789/healthz
Via tunnel l'IP nœud peut être 127.0.0.1 ; IP réelle : ws/wss direct selon la doc
05 Port 18789 et triage des erreurs
Environ 80 % des « je n'arrive pas à me connecter » concernent le tunnel de contrôle ou l'alignement de version, pas le fournisseur de modèle.
- Port WS par défaut :
18789; le port local du tunnel suit le distant. - LaunchAgent :
ai.openclaw.gateway(avec profil :ai.openclaw.<profile>). - Exec approvals :
~/.openclaw/exec-approvals.jsonen local, séparé de la config Gateway distante.
| Symptôme | Vérifier d'abord | Premier correctif |
|---|---|---|
| Gateway injoignable dans l'app | Tunnel SSH, port 18789 occupé | Relancer le tunnel app ; distant lsof -i :18789 |
| healthz OK, canal hors ligne | Version Gateway vs CLI/app | Aligner openclaw --version, redémarrer Gateway |
| IP nœud 127.0.0.1 | Accès par tunnel SSH | Attendu ; IP réelle via ws/wss direct |
| Canvas/caméra muets | node host, TCC | Confirmer node host en Remote ; refaire les autorisations |
| Échec découverte Tailscale | MagicDNS, nom d'hôte | Nom MagicDNS ; éviter IP tailnet figée |
Cas réel : une équipe iOS a placé Gateway + Discord/Telegram sur CALMVPS Singapour (M4 24 Go au mois), MacBook local en nœud pour screen.record et scripts Xcode ; pics couverts par un worker en location hebdomadaire — moins d'alertes nocturnes qu'en tout-local.
06 M4, stockage et checklist de location
Dimensionnez par rôle, pas « une machine pour tout » :
- Gateway distant (CALMVPS) : multi-canaux + cron dès M4 24 Go ; hub ou modèle local : M4 Pro ; disque 1 To test, 2 To prod.
- Nœud local : TCC et outils UI — 16 Go suffit souvent ; le goulot est permission et réseau.
- Nœuds parallèles : backfill ou builds par location jour/semaine plutôt qu'upgrade du hub.
- Durée : Gateway au mois/trimestre ; pics en courte location — souvent moins cher qu'un seul palier max en continu.
Gateway sur laptop : veille, jitter, tokens mélangés ; VPS Linux seul : pas de TCC macOS. Pour un plan de contrôle 18789 stable, bare metal multi-régions et triage reproductible, CALMVPS convient : Apple Silicon dédié, 7×24, livraison ~120 s, M4 Pro et nœuds parallèles pour les pics de canaux. Nœuds et conditions : page tarifs CALMVPS.