SPB Git forge

spb/trouve-ka

Public ★ Pinned

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

40commits 1branches 0releases
9.2 MBsize
maindefault branch
23 days agolast push
Python 51.9% TypeScript 32.7% JavaScript 4.8% CSS 4.1% Shell 2.9% HTML 1.8% SQL 1.5%
1.7 KB · 48 lines shellscript
Raw Blame History
1#!/bin/sh2# Trouve-KA — sauvegarde quotidienne Postgres (hub M2M32)3# Author: Simon-Pierre Boucher4# Contact: contact@spboucher.ai5#6# pg_dump format custom (compressé, restaurable sélectivement) →7# ~/trouveka-backups/pg/ + copie croisée sur M2M32b (un node ≠ un backup).8# Rotation : 7 quotidiennes locales; les dimanches sont gardés 28 jours.9# Restauration : pg_restore -d <base> --clean --if-exists <fichier>10# Pivot 2026-08-23 : deux bases — trouveka (ancien corpus web ouvert, gelé)11# et trouveka_ka (moteur Groupe KA, base active).1213PATH="$HOME/.local/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"14export PATH15DIR="$HOME/trouveka-backups/pg"16LOG="$HOME/trouveka-backups/backup.log"17STAMP=$(date '+%Y%m%d')1819mkdir -p "$DIR"20log() { echo "$(date '+%F %T') [pg] $*" >> "$LOG"; }2122for DB in trouveka trouveka_ka; do23  OUT="$DIR/$DB-$STAMP.dump"24  if ! docker exec trouve-ka-postgres-1 pg_dump -U trouveka -d "$DB" -Fc > "$OUT.tmp" 2>>"$LOG"; then25    log "ÉCHEC pg_dump ($DB)"26    rm -f "$OUT.tmp"27    exit 128  fi29  mv "$OUT.tmp" "$OUT"30  SIZE=$(du -h "$OUT" | cut -f1)31  log "dump OK : $OUT ($SIZE)"32done3334# Rotation : quotidiennes > 7 jours supprimées, sauf dimanches gardés 28 jours35find "$DIR" \( -name 'trouveka-*.dump' -o -name 'trouveka_ka-*.dump' \) -mtime +7 | while read -r f; do36  d=$(basename "$f" | sed 's/.*-\([0-9]*\)\.dump/\1/')37  dow=$(date -j -f '%Y%m%d' "$d" '+%u' 2>/dev/null || echo 1)38  if [ "$dow" = "7" ]; then39    find "$f" -mtime +28 -delete 2>/dev/null40  else41    rm -f "$f"42  fi43done4445# La copie croisée est TIRÉE par M2M32b (pull-backups.sh + clé à commande46# forcée tar) — ce script n'a aucun accès sortant à assurer.47exit 048