SPB Git forge
3commits 1branches 0releases
2.9 MBsize
maindefault branch
1 h agolast push
HTML 57.2% Shell 19.1% Python 11.2% CSS 7.4% JavaScript 5.1%
9.4 KB

# Groupe Ka — Développement direct sur les nœuds (remote-first)

MAJ 2026-09-04 — passerelle M1M32 + mld. spbgit (bare repos ~/srv/git/*.git, git.spboucher.ai) a déménagé de M3U96a vers M1M32. L'alias Host gitsrv de chaque nœud (et du laptop) pointe désormais vers M1M32 (MacStudio-de-simon-pierre-8.local en LAN, M1M32.maclustr.io depuis le laptop), clé ~/.ssh/ka_guardian_ed25519 par nœud autorisée sur M1M32 ; les repos de M3U96a n'utilisent plus de chemin local. Les apps sont déployées/migrées par l'orchestrateur maclustr-dispatch (~/Desktop/cluster-skill/mld …, registre cluster-registry.json) : les nœuds ci-dessous peuvent changer — mld status fait foi. Nouveaux emplacements du 2026-09-04 : immo-ka → M3U96b, house-ka → M3U96a, resto-ka → M4M64a, food-ka → M2U64, rent-ka → M4M64b, ka-stats → M4M64a, uqo-eval → M2U64. Pousseur Ka (com.ka.pousseur) installé sur M3U96a/b, M2U64, M4M64a/b, M4M36, M2M32 ; ~/.ka-pousseur-repos mis à jour automatiquement par mld (inscription à l'arrivée, retrait au départ). Les anciens ~/srv/git et ~/srv/spbgit de M3U96a sont renommés *.old-20260904 (backups 20 Go inclus).

MAJ 2026-09-04 (soir) — consommateurs du registre. Les gardiens ka2/ka4/ka6 (orchestrator/registry.py, copie M4M36:~/ka-guardian-spool/registry.json poussée par mld + tirée par le launchd com.ka.registry-sync) et la console admin-ka (server/registry.js, copie ~/apps/admin-ka/data/registry.json, tirage ssh 2 min, ~/ka-orchestrator/CLAUDE.md régénéré) lisent désormais le registre mld pour savoir où tourne chaque app : nœud, IP LAN, répertoire, port, process PM2. Plus aucune table d'emplacements en dur chez eux ; mld subscribers sur M1M32 liste les abonnés. Après un mld move d'une app Ka vers un nœud jamais équipé : ~/Desktop/Groupe-KA/apps-web/ka-guardian/deploy/deploy.sh runners <nœud> (+ courier, pousseur) — la liste des nœuds y est elle aussi dérivée du registre ; admin-ka pose seul ~/.adminka/perm-mcp.js + ~/.claude/CLAUDE.md sur le nouveau nœud. ⚠️ M2U64 n'a pas de session graphique (console = root) : pas de domaine launchd gui/501 → les services y sont des LaunchDaemons système (/Library/LaunchDaemons/com.ka.*, UserName + HOME), posés par deploy.sh via sudo (KA_SUDO_PW dans ~/.ka-guardian.env du laptop).

Depuis le 2026-08-17, la source de vérité des 12 projets Ka est le repo git SUR LE NŒUD de déploiement, plus les copies ~/Desktop/* du laptop. Toute session Claude sur le laptop travaille sur le repo du nœud via SSH : édition, build, restart PM2, git commit et git push se font sur le nœud.

# Table des projets

App Nœud Dir sur le nœud Port Domaine Process PM2
groupe-ka M3U96b ~/apps/groupe-ka 8110 www.groupe-ka.com groupe-ka + groupe-ka-ngrok
lou-ka M3U96b ~/apps/lou-ka 8095 www.lou-ka.com lou-ka-web + lou-ka-sync + lou-ka-ngrok
api-ka M3U96b /opt/api-ka 8000 www.api-ka.com apika-api + apika-scheduler + apika-ngrok
crea-ka M3U96b ~/apps/crea-ka 8160 www.crea-ka.com crea-ka-web + crea-ka-sync + crea-ka-ngrok
resto-ka M3U96b ~/apps/resto-ka 8115 www.resto-ka.com resto-ka + resto-ka-sync + resto-ka-ngrok
vrai-prix M3U96a ~/apps/vrai-prix 8090 www.vrai-prix.com vrai-prix + vrai-prix-ngrok + vrai-prix-ingest (cron 08:00) + vrai-prix-cost-sync (cron 05:15, connecteurs méthode du coût → data/cost.db) + vrai-prix-immoka-sync (cron 03:30, snapshot Immo-Ka depuis M4M64b via LAN + ré-évaluation → data/immoka.db, table vp_eval, data/marche-stats.json) — ajoutés 2026-09-08 ; data/ hors git et hors sync mld ; épinglé M3U96a
sorti-ka M3U96a ~/apps/sorti-ka 8120 www.sorti-ka.com sorti-ka-web + sorti-ka-sync + sorti-ka-ngrok
house-ka M4M64b ~/apps/house-ka 8098 www.house-ka.com house-ka-web + house-ka-sync + house-ka-ngrok
immo-ka M4M64a ~/apps/immo-ka 8096 www.immo-ka.com immo-ka-web + immo-ka-sync + immo-ka-ngrok
fabri-ka M4M64a ~/fabri-ka 8097 www.fabri-ka.com fabri-ka-web + fabri-ka-sync + fabri-ka-ngrok
auto-ka M4M64b ~/auto-ka 8095 www.auto-ka.com auto-ka-web + auto-ka-sync + auto-ka-ngrok
food-ka M4M64b ~/apps/food-ka 8097 www.food-ka.com food-ka-web + food-ka-sync + food-ka-ngrok
trouve-ka M2M32 ~/trouve-ka 3000 www.trouve-ka.com tk-web/tk-api/tk-crawler-1,2/tk-enrichment/tk-scheduler + docker (postgres, redis) + com.trouveka.ngrok
home-ka M4M36 ~/apps/home-ka 8099 www.home-ka.com home-ka-web + home-ka-sync + home-ka-ngrok

Détails de déploiement (start commands, notes historiques) : ~/Desktop/cluster-skill/cluster-deployments.json.

# Serveur git central = spbgit (git perso de Simon-Pierre)

  • Le serveur git est spbgit, le git personnel : https://git.spboucher.ai (PAS GitHub — le compte GitHub spboucher-ai a déjà été suspendu, ne compter que sur spbgit). Stockage : bare repos ~/srv/git/<app>.git sur M3U96a.
  • Remote origin de chaque repo de nœud :
    • Sur M3U96a (vrai-prix, sorti-ka) : chemin local /Users/simon-pierreboucher/srv/git/<app>.git.
    • Sur les autres nœuds : gitsrv:srv/git/<app>.git — alias SSH gitsrv ajouté en tête du ~/.ssh/config de M3U96b, M4M64a, M4M64b et M2M32 (2026-08-17) :
      text
      Host gitsrv
        ControlMaster no
        ControlPath none
        HostName MacStudio-de-simon-pierre-2.local   # M3U96a via mDNS LAN (192.168.2.87)
        User simon-pierreboucher
        StrictHostKeyChecking accept-new
      ⚠️ SSH inter-nœuds via Tailscale (*.maclustr.io) est bloqué par ACL → gitsrv passe par le LAN/mDNS. ⚠️ Le bloc doit rester AVANT Host * (sinon le ControlPath global casse : « socket path too long »). ⚠️ ControlMaster no obligatoire (même raison).
  • Push depuis un nœud : fonctionne grâce à l'agent forwarding (le laptop a ForwardAgent yes global) — donc pousser pendant une session SSH ouverte depuis le laptop. Depuis le 2026-08-24, le push AUTONOME marche aussi (missions headless des gardiens ka2/ka4/ka6, cron) : la clé ~/.ssh/ka_guardian_ed25519 de chaque nœud (M3U96b, M4M64a, M4M64b) est autorisée sur M3U96a et déclarée en IdentityFile dans le bloc Host gitsrv — vérifié sans agent SSH. Sur M3U96a l'origin est un chemin local (aucune clé requise). Les consignes des gardiens exigent désormais git push origin main après chaque mission. ⚠️ MAIS les missions elles-mêmes (descendants du runner python) sont bloquées par macOS 26 LNP (« no route to host ») : le pousseur launchd com.ka.pousseur (chaîne binaires Apple, repos dans ~/.ka-pousseur-repos, tick 5 min) pousse les commits en attente sur M3U96a/b + M4M64a/b. Le rollback du runner est ciblé : il ne reverte que les commits [ka*] (jamais reset --hard ni revert de plage) puis laisse le pousseur pousser les reverts.

# Workflow Claude (laptop)

  1. Lire : ssh <node> "cd <dir> && git status && git log --oneline -5".
  2. Éditer : petits changements via ssh (sed/python heredoc) ; changements substantiels : scp <node>:<dir>/<fichier> /tmp/, éditer localement avec les outils, scp retour. Ne jamais éditer les copies ~/Desktop/*.
  3. Builder/tester sur le nœud (venv/node_modules y sont déjà), puis pm2 restart <process> et healthcheck.
  4. Committer + pousser sur le nœud : ssh <node> "cd <dir> && git add -A && git commit -m '...' && git push origin main".
  5. Mettre à jour cluster-deployments.json (notes + updated) comme d'habitude.

# Copies laptop (~/Desktop/*) — statut

Miroirs SECONDAIRES, ne plus y travailler (faire git pull origin main pour consulter) : groupe-ka, lou-ka, qc_house_eval/vrai-prix, qc-store (=fabri-ka), food-ka, api-ka, trouve-ka, crea-ka, resto-ka, sorti-ka. immo-ka et auto-ka n'ont AUCUNE copie laptop — le nœud + bare repo sont les seules copies.

# État initial de la migration (2026-08-17)

Repos git installés dans les 12 dirs de nœud, HEAD aligné sur origin/main sans toucher aux fichiers (apps non interrompues). Fichiers trackés manquants restaurés (git checkout) : fabri-ka data/enrich_cache/ (3278 fichiers, jamais rsyncés), lou-ka docs ×7, immo-ka frontend ×7, api-ka logs ×1, trouve-ka docs ×1. .claude/ exclu du statut via .git/info/exclude partout.

WIP laptop non commité transféré/vérifié sur les nœuds : food-ka (SSO KA ID + favoris — backend déjà présent, 7 fichiers frontend rsyncés), resto-ka et groupe-ka (déjà identiques sur nœud).

Drift entièrement committé + poussé le 2026-08-17 — les 12 repos de nœud sont PROPRES (commits « État du nœud / WIP committé depuis le nœud » : lou-ka c556557, groupe-ka 6c76595, resto-ka c9f9e09, food-ka 6004efe, immo-ka 5a9aa9d, fabri-ka 20a2569, sorti-ka 69b8641). Gitignores ajoutés à cette occasion : lou-ka data/uploads/, sorti-ka *.log, immo-ka data/vraiprix.db (1,6 Go) + *.bak-* ; trouve-ka services/tmp-stage/ exclu via .git/info/exclude (doublons exacts de fichiers trackés). Les copies laptop sont maintenant EN RETARD sur origin — faire git pull avant toute consultation.