[orchestrateur] supervision House-Ka + Rent-Ka sous ka2 (sites + runner M4M36)
- topology.json: services houseka (M4M64b:8098, www.house-ka.com) et rentka (M4M36:8125, www.rent-ka.com) ajoutés à ka2 (gardien immobilier & local); nœud m4m36 (192.168.2.69) ajouté aux nodes. - Runner com.ka.guardian-runner déployé sur M4M36 (rent-ka y tourne): deploy.sh RUNNER_NODES += M4M36, CLAUDE.md à jour. - ngrok exclus des listes pm2[] (même convention que vraiprix). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3 changed files +34 −4
modified
CLAUDE.md
+1 −1
@@ -30,7 +30,7 @@ connecteur sous api-ka, seule la surveillance du site s'applique. | |||||
| 30 | 2. Vérifier : `curl -sf localhost:8799/health` (8899, 8999) puis le site public. | 30 | 2. Vérifier : `curl -sf localhost:8799/health` (8899, 8999) puis le site public. | ||
| 31 | 3. `git add … && git commit && git push origin main` (origin = gitsrv/spbgit, PAS GitHub). | 31 | 3. `git add … && git commit && git push origin main` (origin = gitsrv/spbgit, PAS GitHub). | ||
| 32 | 32 | ||||
| 33 | −⚠️ NE JAMAIS redémarrer les **runners** (`com.ka.guardian-runner` sur M3U96a/b, M4M64a/b) pendant qu'ils sont occupés : ça tue la mission Claude en vol. Pour redéployer `runner/runner.py`, vérifier d'abord `curl localhost:7791/health` (`busy:false`) sur chaque nœud, comme le fait `deploy/deploy.sh runners`. | 33 | +⚠️ NE JAMAIS redémarrer les **runners** (`com.ka.guardian-runner` sur M3U96a/b, M4M64a/b, M4M36) pendant qu'ils sont occupés : ça tue la mission Claude en vol. Pour redéployer `runner/runner.py`, vérifier d'abord `curl localhost:7791/health` (`busy:false`) sur chaque nœud, comme le fait `deploy/deploy.sh runners`. | ||
| 34 | ⚠️ Le trafic LAN direct est bloqué par macOS 26 (Local Network Privacy) — le courrier zsh `com.ka.guardian-courier` s'en occupe ; ne pas le contourner. | 34 | ⚠️ Le trafic LAN direct est bloqué par macOS 26 (Local Network Privacy) — le courrier zsh `com.ka.guardian-courier` s'en occupe ; ne pas le contourner. | ||
| 35 | 35 | ||||
| 36 | ## Pages & image de marque | 36 | ## Pages & image de marque | ||
modified
deploy/deploy.sh
+2 −2
@@ -1,7 +1,7 @@ | |||||
| 1 | #!/bin/zsh | 1 | #!/bin/zsh | ||
| 2 | # ============================================ | 2 | # ============================================ | ||
| 3 | # KA Guardian — déploiement complet depuis le laptop | 3 | # KA Guardian — déploiement complet depuis le laptop | ||
| 4 | −# ./deploy.sh runners → runners sur M3U96a M3U96b M4M64a M4M64b | 4 | +# ./deploy.sh runners → runners sur M3U96a M3U96b M4M64a M4M64b M4M36 | ||
| 5 | # ./deploy.sh orchestrators → ka2/ka4/ka6 sur M4M36 (remplace les anciens bots) | 5 | # ./deploy.sh orchestrators → ka2/ka4/ka6 sur M4M36 (remplace les anciens bots) | ||
| 6 | # ./deploy.sh all | 6 | # ./deploy.sh all | ||
| 7 | # Idempotent. Le token partagé vit dans ~/.ka-guardian.env (laptop) et est | 7 | # Idempotent. Le token partagé vit dans ~/.ka-guardian.env (laptop) et est | ||
@@ -9,7 +9,7 @@ | |||||
| 9 | # ============================================ | 9 | # ============================================ | ||
| 10 | set -e | 10 | set -e | ||
| 11 | ROOT="$(cd "$(dirname "$0")/.." && pwd)" | 11 | ROOT="$(cd "$(dirname "$0")/.." && pwd)" | ||
| 12 | −RUNNER_NODES=(M3U96a M3U96b M4M64a M4M64b) | 12 | +RUNNER_NODES=(M3U96a M3U96b M4M64a M4M64b M4M36) | ||
| 13 | ORCH_NODE=M4M36 | 13 | ORCH_NODE=M4M36 | ||
| 14 | PY=/opt/homebrew/bin/python3 | 14 | PY=/opt/homebrew/bin/python3 | ||
| 15 | 15 | ||||
modified
topology.json
+31 −1
@@ -13,7 +13,9 @@ | |||||
| 13 | "services": [ | 13 | "services": [ | ||
| 14 | "louka", | 14 | "louka", | ||
| 15 | "immoka", | 15 | "immoka", | ||
| 16 | − "restoka" | 16 | + "restoka", | ||
| 17 | + "houseka", | ||||
| 18 | + "rentka" | ||||
| 17 | ], | 19 | ], | ||
| 18 | "accent_soft": "#e3effc" | 20 | "accent_soft": "#e3effc" | ||
| 19 | }, | 21 | }, | ||
@@ -64,6 +66,10 @@ | |||||
| 64 | "m4m64b": { | 66 | "m4m64b": { | ||
| 65 | "lan_ip": "192.168.2.78", | 67 | "lan_ip": "192.168.2.78", | ||
| 66 | "alias": "M4M64b" | 68 | "alias": "M4M64b" | ||
| 69 | + }, | ||||
| 70 | + "m4m36": { | ||||
| 71 | + "lan_ip": "192.168.2.69", | ||||
| 72 | + "alias": "M4M36" | ||||
| 67 | } | 73 | } | ||
| 68 | }, | 74 | }, | ||
| 69 | "services": { | 75 | "services": { | ||
@@ -176,6 +182,30 @@ | |||||
| 176 | "web_port": 8090, | 182 | "web_port": 8090, | ||
| 177 | "site": "https://www.vrai-prix.com", | 183 | "site": "https://www.vrai-prix.com", | ||
| 178 | "comment": "Pas de connecteurs sous supervision api-ka (vrai-prix-ingest tourne à la demande): surveillance du SITE seulement. vrai-prix-ngrok exclu de pm2[] pour ne pas relancer le tunnel à chaque restart." | 184 | "comment": "Pas de connecteurs sous supervision api-ka (vrai-prix-ingest tourne à la demande): surveillance du SITE seulement. vrai-prix-ngrok exclu de pm2[] pour ne pas relancer le tunnel à chaque restart." | ||
| 185 | + }, | ||||
| 186 | + "houseka": { | ||||
| 187 | + "app": "House·Ka", | ||||
| 188 | + "node": "m4m64b", | ||||
| 189 | + "dir": "~/apps/house-ka", | ||||
| 190 | + "pm2": [ | ||||
| 191 | + "house-ka-web", | ||||
| 192 | + "house-ka-sync" | ||||
| 193 | + ], | ||||
| 194 | + "web_port": 8098, | ||||
| 195 | + "site": "https://www.house-ka.com", | ||||
| 196 | + "comment": "Pas encore de connecteurs sous supervision api-ka (2026-08-28). house-ka-ngrok exclu de pm2[] pour ne pas relancer le tunnel a chaque restart." | ||||
| 197 | + }, | ||||
| 198 | + "rentka": { | ||||
| 199 | + "app": "Rent·Ka", | ||||
| 200 | + "node": "m4m36", | ||||
| 201 | + "dir": "~/apps/rent-ka", | ||||
| 202 | + "pm2": [ | ||||
| 203 | + "rent-ka-web", | ||||
| 204 | + "rent-ka-sync" | ||||
| 205 | + ], | ||||
| 206 | + "web_port": 8125, | ||||
| 207 | + "site": "https://www.rent-ka.com", | ||||
| 208 | + "comment": "Fork anglophone de Lou-Ka (Canada hors Quebec), sur le noeud orchestrateur M4M36 (runner deploye 2026-08-28). Pas encore de connecteurs sous api-ka. rent-ka-ngrok exclu de pm2[]." | ||||
| 179 | } | 209 | } | ||
| 180 | }, | 210 | }, | ||
| 181 | "policy": { | 211 | "policy": { | ||
| 182 | 212 | ||||