Les Channels OpenClaw relient votre Gateway local (TCP 18789) aux surfaces de chat où l’équipe vit vraiment — souvent Telegram ou Slack. Sur un Mac mini M4 loué au Canada, le premier contact se joue sur trois rails en parallèle : un install.sh propre, un Gateway joignable avec le bon gateway.remote.token, et des canaux externes qui répondent aux webhooks sans bruit parasite. Ce billet est une check-list de mise en route et un guide de dépannage prod ; pour dimensionner SSD, concurrence et cycles longs sur le même nœud, croisez avec Mac distant 2026, cycles longs dev/test : disque, concurrence, nœud Canada et matrice M4 (FAQ Asie-Pacifique), et pour le cadrage régional Canada / transpacifique, Choisir un Mac distant en 2026 : Singapour, Japon, Corée, Hong Kong et Canada — complément Amérique du Nord, M4, stockage et dev/test.
1. install.sh : premier passage sans casser le PATH
Exécutez le script depuis une session SSH alignée sur l’utilisateur qui possèdera le LaunchAgent du Gateway — pas depuis un compte « admin » différent qui laisserait Homebrew sous /opt/homebrew invisible pour le démon. Après installation, vérifiez which openclaw et conservez le chemin absolu pour le plist. Si le script propose une étape Channels, notez les URL de callback et les secrets générés dans un coffre d’équipe ; ne les laissez pas uniquement dans l’historique du terminal. Un redémarrage à froid juste après install.sh valide que launchd recharge bien Node et le CLI sans dépendre de ~/.zshrc.
2. Gateway 18789 : santé avant d’ouvrir Telegram ou Slack
Avant de coller un webhook Slack ou un bot Telegram, confirmez que le processus écoute là où votre topologie l’attend : lsof -iTCP:18789 -sTCP:LISTEN, puis une requête locale minimale (curl vers l’endpoint de santé documenté par votre build). Si le Gateway répond en 401, le décalage est presque toujours sur gateway.remote.token ou sur l’en-tête attendu par la passerelle. Traitez le port 18789 comme une surface critique : une double instance après mise à jour laisse des sondes Channels en errance intermittente. Arrêtez avec openclaw gateway stop, supprimez les plists obsolètes, puis ne gardez qu’un seul job launchd pour le même label.
curl -sS -H "Authorization: Bearer $GATEWAY_REMOTE_TOKEN" \ http://127.0.0.1:18789/health || echo "FAIL health"
3. Telegram et Slack : même Gateway, deux styles d’intégration
Telegram impose généralement une URL HTTPS publique pour le webhook du bot ; sur un Mac derrière NAT, vous combinez reverse proxy ou tunnel contrôlé avec un certificat valide. Slack pousse plutôt vers des URL d’événements signées et des secrets de rotation ; gardez la même horloge NTP sur l’hôte pour éviter les rejets de signature. Dans les deux cas, logguez côté Gateway le corps brut des callbacks en niveau debug seulement pendant la phase de rodage, puis repassez en info pour ne pas saturer le disque. Si un canal « marche en DM mais pas en salon », commencez par les ACL du workspace et les scopes OAuth avant de soupçonner OpenClaw.
4. Jeton distant et auto-contrôle du tunnel
Le jeton distant doit être visible pour le même UID que le Gateway, y compris hors session interactive. Après rotation, mettez à jour à la fois le fichier de config lu par launchd et les variables côté clients Channels ; un oubli partiel produit des 401 aléatoires très frustrants. Pour l’auto-contrôle du tunnel (SSH -L 18789:127.0.0.1:18789 ou équivalent), scriptez une sonde depuis la machine cliente : ouverture TCP vers localhost:18789, puis la même requête /health qu’en local. Si la sonde échoue alors que le Gateway est sain côté serveur, le problème est réseau (keepalive SSH, timeout idle, ou politique de pare-feu) et non applicatif.
5. Journaux, rotation et plan disque
Les Channels multiplient les petites écritures : événements entrants, traces de normalisation JSON, dumps d’erreurs réseau. Sur un M4 milieu de gamme avec SSD modeste, prévoyez une partition ou un volume dédié aux logs applicatifs, une rotation agressive (taille ou durée), et une alerte sur l’espace libre avant la pression sur le système de fichiers racine. Évitez de logger le corps complet des messages Slack/Telegram en prod ; un échantillon tronqué suffit pour la conformité sans exploser l’IOPS. Si vous montez en gamme RAM/SSD pour absorber pics et caches navigateur, alignez le palier avec la charge Channels prévue.
6. Egress M4 Canada : configurations milieu-haut de gamme
Les offres milieu-haut de gamme (24 Go de RAM, SSD 512 Go–1 To) se justifient quand plusieurs agents, un navigateur instrumenté et le Gateway tournent simultanément, et quand l’egress vers l’Amérique du Nord doit rester stable pour les webhooks et les téléchargements de pièces jointes. Une IP dédiée par machine simplifie les listes blanches côté Slack et réduit le bruit de réputation par rapport à un NAT partagé ; documentez l’egress attendu dans le ticket d’onboarding pour que l’équipe sécurité ne coupe pas le trafic sortant au moment du go-live Channels.
Tableau de dépannage express
| Symptôme | Piste | Action |
|---|---|---|
Slack 403 / signature invalide |
Horloge désynchronisée ou secret rotaté partiellement | NTPSync ; aligner secret app + Gateway ; retester avec curl signé |
| Telegram ne reçoit rien | HTTPS webhook inaccessible depuis l’extérieur | Vérifier certificat, DNS, pare-feu ; tracer depuis un hôte externe |
| Channels OK puis silence après reboot | Token ou PATH non chargés par launchd |
EnvironmentVariables dans plist ; chemins absolus |
| Disque plein, latence Gateway | Logs non rotatés, niveau debug oublié | Rotation ; baisser verbosité ; étendre volume logs |
Synthèse
En 2026, faire passer les Channels en prod sur un Mac distant M4 au Canada, c’est d’abord verrouiller install.sh, le Gateway 18789 et le jeton dans le même contexte que launchd, puis seulement brancher Telegram et Slack avec des URL et secrets cohérents. Automatisez l’auto-contrôle du tunnel, planifiez journaux et disque pour la charge des webhooks, et dimensionnez l’egress avec des paliers matériels qui tiennent la nuit.