🐳 Guide VideoRAG Docker - Installation et Configuration
VideoRAG Dockerisé: Chat with Your Videos - Version conteneurisée
Date d'installation: 20 Octobre 2025 Serveur: srv759970.hstgr.cloud (69.62.108.82) URL: https://videorag.srv759970.hstgr.cloud
📋 Architecture Docker
┌─────────────────────────────────────┐
│ Nginx (Host) │
│ https://videorag.srv759970... │
└───────────┬─────────────────────────┘
│
▼
┌───────────────────────────────────┐
│ Docker Container: videorag │
│ ┌───────────────────────────┐ │
│ │ VideoRAG Backend API │ │
│ │ Python 3.11 + Flask │ │
│ │ Port: 5000 │ │
│ └───────────────────────────┘ │
│ ┌───────────────────────────┐ │
│ │ Models (~8GB) │ │
│ │ - MiniCPM-V (4GB) │ │
│ │ - Whisper (1.5GB) │ │
│ │ - ImageBind (2.4GB) │ │
│ └───────────────────────────┘ │
└───────────────────────────────────┘
✅ Installation Complète
Composants
- Dockerfile - Image Python 3.11 avec toutes les dépendances
- docker-compose.yml - Orchestration du service
- Nginx - Reverse proxy HTTPS
- Volumes Docker:
videorag-data- Données persistantes (vidéos uploadées)videorag-cache- Cache des modèles- Modèles - Montés en read-only depuis l'hôte
🚀 Gestion du Container
Démarrer VideoRAG
Voir les logs
# Logs en temps réel
docker compose logs -f
# Dernières 100 lignes
docker compose logs --tail=100
# Logs du container uniquement
docker logs videorag -f
Arrêter / Redémarrer
# Arrêter
docker compose stop
# Redémarrer
docker compose restart
# Arrêter et supprimer
docker compose down
# Arrêter et supprimer avec volumes
docker compose down -v
Status
# Status des containers
docker compose ps
# Détails du container
docker inspect videorag
# Ressources utilisées
docker stats videorag
🔧 Configuration
Variables d'environnement
Fichier: /opt/videorag/.env
Modifier la clé OpenAI
# Option 1: Éditer .env
nano /opt/videorag/.env
# Option 2: Éditer docker-compose.yml
nano /opt/videorag/docker-compose.yml
# Puis redémarrer
cd /opt/videorag
docker compose restart
📁 Structure des Fichiers
/opt/videorag/
├── Dockerfile # Image Docker
├── docker-compose.yml # Orchestration
├── .env # Variables d'environnement
├── web/
│ └── index.html # Frontend web
├── VideoRAG-algorithm/ # Code VideoRAG (monté)
│ ├── MiniCPM-V-2_6-int4/ # Modèle (read-only)
│ ├── faster-distil-whisper/ # Modèle (read-only)
│ └── .checkpoints/ # ImageBind (read-only)
└── Vimo-desktop/
└── python_backend/ # Backend API (monté)
Volumes Docker
# Lister les volumes
docker volume ls | grep videorag
# Inspecter un volume
docker volume inspect videorag_videorag-data
# Sauvegarder les données
docker run --rm -v videorag_videorag-data:/data -v $(pwd):/backup \
alpine tar czf /backup/videorag-backup.tar.gz /data
🔄 Mise à Jour
Mettre à jour le code
Mettre à jour les dépendances Python
Modifier Dockerfile, puis:
🐛 Troubleshooting
Container ne démarre pas
# Voir les logs d'erreur
docker compose logs videorag
# Vérifier la config
docker compose config
# Rebuild sans cache
docker compose build --no-cache
docker compose up -d
API ne répond pas
# Vérifier que le container tourne
docker compose ps
# Logs en temps réel
docker logs videorag -f
# Tester depuis l'hôte
curl http://localhost:5000/health
# Entrer dans le container
docker exec -it videorag bash
curl http://localhost:5000/health
Problèmes de modèles
# Vérifier que les modèles sont bien montés
docker exec -it videorag ls -la /app/VideoRAG-algorithm/
# Vérifier les permissions
ls -la /opt/videorag/VideoRAG-algorithm/
Problème d'espace disque
# Voir l'espace utilisé par Docker
docker system df
# Nettoyer les images inutilisées
docker system prune -a
# Nettoyer tout (ATTENTION!)
docker system prune -a --volumes
📊 Monitoring
Ressources
# CPU et RAM en temps réel
docker stats videorag
# Voir les processus dans le container
docker top videorag
Logs Nginx
# Access logs
tail -f /var/log/nginx/videorag-access.log
# Error logs
tail -f /var/log/nginx/videorag-error.log
Health Check
Le container a un health check automatique:
🔐 Sécurité
Bonnes Pratiques
- .env protégé:
chmod 600 /opt/videorag/.env - Clé OpenAI: Ne jamais commit dans git
- Modèles en read-only: Montés avec
:ro - Restart policy:
unless-stoppedpour redémarrage auto - HTTPS: Configuré avec Let's Encrypt
Network Isolation
Le container utilise un réseau bridge dédié:
🚀 Performance
Optimisations
- Multi-stage build possible pour réduire taille image
- Cache layers Docker pour builds plus rapides
- Volumes pour données persistantes
- Health check pour monitoring automatique
Limites de ressources
Ajouter dans docker-compose.yml:
📚 Commandes Utiles
# Build
docker compose build
docker compose build --no-cache
# Start/Stop
docker compose up -d
docker compose down
# Logs
docker compose logs -f
docker logs videorag -f
# Status
docker compose ps
docker stats videorag
# Shell dans le container
docker exec -it videorag bash
docker exec -it videorag python
# Restart
docker compose restart
# Pull latest
cd /opt/videorag && git pull
docker compose build && docker compose up -d
✅ Checklist
- Docker et docker-compose installés
- Repository cloné dans
/opt/videorag - Modèles téléchargés
-
.envconfiguré avec clé OpenAI - Nginx configuré
- HTTPS activé
- Container built
- Container running (
docker compose ps) - API répond (
curl localhost:5000/health) - Interface web accessible (https://videorag...)
- Logs corrects (
docker compose logs)
🔗 Liens
- Interface Web: https://videorag.srv759970.hstgr.cloud
- API Health: https://videorag.srv759970.hstgr.cloud/api/health
- GitHub VideoRAG: https://github.com/HKUDS/VideoRAG
- Docker Hub: (si publié)
Installation: 20 Octobre 2025 Type: Docker Compose Version: 1.0