137 lines
3.0 KiB
Markdown
137 lines
3.0 KiB
Markdown
# 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
|
|
```
|