# Maintenance — DictIA ## Backup ```bash # 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: ```bash # Backup quotidien a 3h du matin 0 3 * * * /opt/dictia/deployment/tools/backup.sh >> /var/log/dictia-backup.log 2>&1 ``` ## Restore ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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 ```