Trouve-KA — moteur de recherche web indépendant, Québec-first. Crawler distribué, index OpenSearch, ranking bilingue, galerie d'images. En prod : www.trouve-ka.com
Python 51.9%
TypeScript 32.7%
JavaScript 4.8%
CSS 4.1%
Shell 2.9%
HTML 1.8%
SQL 1.5%
1#!/usr/bin/env bash2# Trouve-KA — déploiement sur le node m2m32 (cluster MacLustr) + tunnel ngrok3# Author: Simon-Pierre Boucher4# Contact: contact@spboucher.ai5#6# Prérequis sur m2m32 : Docker (ou colima) + docker compose, ngrok authentifié.7# Le domaine www.trouve-ka.com doit être réservé dans le compte ngrok.8#9# ⚠️ OBSOLÈTE pour la prod depuis 2026-08-15 : M2M32 tourne en pm2 NATIF10# (docker = Postgres+Redis seulement; OpenSearch sur M2M32b). Déployer par11# rsync + pm2 restart tk-api tk-crawler-1 tk-crawler-2 tk-enrichment tk-scheduler12# (+ pnpm build dans apps/web puis pm2 restart tk-web si le web change).13# Voir la mémoire projet « trouve-ka-architecture-native ».14set -euo pipefail1516NODE="${NODE:-M2M32}"17REMOTE_DIR="~/trouve-ka"18NGROK_DOMAIN="${NGROK_DOMAIN:-www.trouve-ka.com}"1920cd "$(dirname "$0")/../.."2122echo "→ Synchronisation du code vers $NODE:$REMOTE_DIR"23# .env est exclu : celui du laptop contient des ports de dev (5435/6380) qui24# cassent l'exposition LAN 5432/6379 dont dépendent les workers satellites.25rsync -az --delete \26 --exclude node_modules --exclude .next --exclude .venv --exclude __pycache__ \27 --exclude .git --exclude data --exclude '*.egg-info' --exclude .env \28 ./ "$NODE:$REMOTE_DIR/"2930echo "→ Build et démarrage du stack sur $NODE"31ssh "$NODE" "cd $REMOTE_DIR && docker compose up -d --build"3233echo "→ Chargement des seeds (idempotent)"34ssh "$NODE" "cd $REMOTE_DIR && docker compose run --rm migrate && \35 docker compose run --rm --entrypoint python crawler-worker -m trouveka.crawler.seed scripts/bootstrap-seeds/seeds.txt"3637echo "→ Tunnel ngrok ($NGROK_DOMAIN → :3000)"38ssh "$NODE" "pgrep -f 'ngrok http.*$NGROK_DOMAIN' > /dev/null || \39 nohup ngrok http --url=$NGROK_DOMAIN 3000 > ~/trouve-ka-ngrok.log 2>&1 &"4041echo "→ Vérification de santé"42sleep 543ssh "$NODE" "cd $REMOTE_DIR && bash scripts/health-check/check.sh" || true4445echo "✓ Déploiement terminé : https://$NGROK_DOMAIN"46echo " N'oublie pas de mettre à jour ~/Desktop/cluster-skill/cluster-deployments.json"47