#!/usr/bin/env bash # Trouve-KA — déploiement sur le node m2m32 (cluster MacLustr) + tunnel ngrok # Author: Simon-Pierre Boucher # Contact: contact@spboucher.ai # # Prérequis sur m2m32 : Docker (ou colima) + docker compose, ngrok authentifié. # Le domaine www.trouve-ka.com doit être réservé dans le compte ngrok. set -euo pipefail NODE="${NODE:-M2M32}" REMOTE_DIR="~/trouve-ka" NGROK_DOMAIN="${NGROK_DOMAIN:-www.trouve-ka.com}" cd "$(dirname "$0")/../.." echo "→ Synchronisation du code vers $NODE:$REMOTE_DIR" rsync -az --delete \ --exclude node_modules --exclude .next --exclude .venv --exclude __pycache__ \ --exclude .git --exclude data --exclude '*.egg-info' \ ./ "$NODE:$REMOTE_DIR/" echo "→ Build et démarrage du stack sur $NODE" ssh "$NODE" "cd $REMOTE_DIR && docker compose up -d --build" echo "→ Chargement des seeds (idempotent)" ssh "$NODE" "cd $REMOTE_DIR && docker compose run --rm migrate && \ docker compose run --rm --entrypoint python crawler-worker -m trouveka.crawler.seed scripts/bootstrap-seeds/seeds.txt" echo "→ Tunnel ngrok ($NGROK_DOMAIN → :3000)" ssh "$NODE" "pgrep -f 'ngrok http.*$NGROK_DOMAIN' > /dev/null || \ nohup ngrok http --url=$NGROK_DOMAIN 3000 > ~/trouve-ka-ngrok.log 2>&1 &" echo "→ Vérification de santé" sleep 5 ssh "$NODE" "cd $REMOTE_DIR && bash scripts/health-check/check.sh" || true echo "✓ Déploiement terminé : https://$NGROK_DOMAIN" echo " N'oublie pas de mettre à jour ~/Desktop/cluster-skill/cluster-deployments.json"