Files
dictia-public/deployment/docs/MAINTENANCE.md

3.0 KiB

Maintenance — DictIA

Backup

# Backup complet (data, .env, volumes, stats ASR)
bash deployment/tools/backup.sh

# Backup dans un repertoire specifique
bash deployment/tools/backup.sh /mnt/backups

Les backups sont sauvegardes dans backups/ avec rotation automatique (garde les 5 derniers).

Contenu d'un backup:

  • data/ — uploads et base de donnees SQLite
  • dot-env — fichier de configuration
  • asr-usage-stats.json — stats d'utilisation GPU
  • whisperx-cache.tar.gz — cache modeles (si volume Docker)
  • manifest.json — metadonnees du backup

Schedule recommande

Frequence Action
Quotidien bash deployment/tools/backup.sh
Hebdomadaire Copier le backup sur un stockage externe
Mensuel Verifier la restauration sur un environnement de test

Pour automatiser avec cron:

# Backup quotidien a 3h du matin
0 3 * * * /opt/dictia/deployment/tools/backup.sh >> /var/log/dictia-backup.log 2>&1

Restore

# Lister les backups disponibles
ls -la backups/

# Restaurer un backup
bash deployment/tools/restore.sh backups/dictia-20260211-030000.tar.gz

Le script:

  1. Valide l'archive (presence du manifest)
  2. Demande confirmation
  3. Arrete les containers
  4. Restaure les fichiers
  5. Redemarre les containers

Mise a jour

# Mise a jour complete (git pull + rebuild + restart)
bash deployment/tools/update.sh

# Rebuild seulement (sans git pull)
bash deployment/tools/update.sh --no-pull

# Git pull seulement (sans rebuild)
bash deployment/tools/update.sh --no-build

Le script:

  1. Detecte le profil actif automatiquement
  2. git pull origin dictia-branding
  3. docker build -t innova-ai/dictia:latest .
  4. Pull WhisperX upstream (profils locaux)
  5. docker compose down && up -d
  6. Attend le health check
  7. Nettoie les images dangling

Monitoring

Health check

# Diagnostic complet (humain)
bash deployment/tools/health-check.sh

# JSON (pour alertes/scripts)
bash deployment/tools/health-check.sh --json

# Code de sortie seulement (0=ok, 1=probleme)
bash deployment/tools/health-check.sh --quiet

Logs

# DictIA
docker logs dictia -f --tail 100

# WhisperX (profils locaux)
docker logs whisperx-asr -f --tail 100

# ASR Proxy (profil cloud)
journalctl -u asr-proxy -f

Dashboard GPU (profil cloud)

Le dashboard de monitoring GPU est accessible a:

  • http://localhost:9090 (local)
  • https://votre-hostname.tailnet.ts.net:9443 (Tailscale)

Affiche: statut GPU, cout mensuel, historique des requetes, zones de fallback.

Metriques cles

# Espace disque (les transcriptions grossissent)
df -h /opt/dictia/data/

# Utilisation memoire (WhisperX est gourmand)
docker stats --no-stream

# Stats GPU (profil cloud)
curl -s http://localhost:9090/stats | python3 -m json.tool

Maintenance Docker

# Nettoyer les images orphelines
docker image prune -f

# Nettoyer tout (attention: supprime les volumes non utilises)
# docker system prune -a --volumes

# Verifier l'espace Docker
docker system df