Initial release: DictIA v0.8.14-alpha (fork de Speakr, AGPL-3.0)
This commit is contained in:
136
deployment/docs/MAINTENANCE.md
Normal file
136
deployment/docs/MAINTENANCE.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user