- Frontend v4 accessible sur réseau local (192.168.1.40) - Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard) - Ollama GPU fonctionnel - Self-healing interactif - Dashboard confiance Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
289 lines
8.3 KiB
Markdown
289 lines
8.3 KiB
Markdown
# Roadmap Dockerisation RPA Vision
|
|
|
|
> Document créé le 26 janvier 2026 - À implémenter après période de démos
|
|
|
|
---
|
|
|
|
## 1. CONTEXTE
|
|
|
|
Objectif : Faciliter le déploiement, les mises à jour et la maintenance via Docker.
|
|
|
|
### Situation actuelle
|
|
- Installation manuelle avec multiples venvs Python
|
|
- Dépendances complexes (PyTorch, CLIP, rfdetr, etc.)
|
|
- Configuration GPU manuelle
|
|
- Difficulté à reproduire l'environnement chez les clients
|
|
|
|
---
|
|
|
|
## 2. AVANTAGES ATTENDUS
|
|
|
|
| Aspect | Bénéfice |
|
|
|--------|----------|
|
|
| **Déploiement** | Installation en une commande (`docker-compose up`) |
|
|
| **Reproductibilité** | Même environnement partout (dev/prod/client) |
|
|
| **Isolation** | Pas de conflits de dépendances Python/Node |
|
|
| **Mises à jour** | Pull nouvelle image, redémarrer |
|
|
| **Rollback** | Revenir à une version précédente instantanément |
|
|
| **Multi-tenant** | Plusieurs instances isolées sur même machine |
|
|
| **CI/CD** | Tests automatisés dans containers identiques à la prod |
|
|
|
|
---
|
|
|
|
## 3. DÉFIS SPÉCIFIQUES À RPA VISION
|
|
|
|
| Contrainte | Solution | Complexité |
|
|
|------------|----------|------------|
|
|
| **GPU (CUDA)** | `nvidia-docker` / `--gpus all` | Faible |
|
|
| **Accès écran (X11)** | Monter `/tmp/.X11-unix` + variable `DISPLAY` | Moyenne |
|
|
| **Capture souris/clavier** | `--privileged` ou capabilities spécifiques | Moyenne |
|
|
| **Ollama** | Container séparé ou accès host via réseau | Faible |
|
|
| **Stockage modèles** | Volumes persistants (éviter re-téléchargement) | Faible |
|
|
| **Citrix/VDI** | Tests spécifiques nécessaires | Haute |
|
|
|
|
---
|
|
|
|
## 4. ARCHITECTURE DOCKER PROPOSÉE
|
|
|
|
```yaml
|
|
# docker-compose.yml (structure cible)
|
|
|
|
version: '3.8'
|
|
|
|
services:
|
|
# === FRONTEND ===
|
|
vwb-frontend:
|
|
build: ./visual_workflow_builder/frontend_v4
|
|
ports:
|
|
- "3000:3000"
|
|
depends_on:
|
|
- vwb-backend
|
|
|
|
# === BACKEND VWB (GPU) ===
|
|
vwb-backend:
|
|
build: ./visual_workflow_builder/backend
|
|
ports:
|
|
- "5001:5001"
|
|
volumes:
|
|
- ./models:/app/models:ro
|
|
- ./data:/app/data
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu]
|
|
depends_on:
|
|
- redis
|
|
- ollama
|
|
|
|
# === DASHBOARD ===
|
|
web-dashboard:
|
|
build: ./web_dashboard
|
|
ports:
|
|
- "5004:5004"
|
|
volumes:
|
|
- ./data:/app/data
|
|
depends_on:
|
|
- redis
|
|
|
|
# === OLLAMA (GPU) ===
|
|
ollama:
|
|
image: ollama/ollama:latest
|
|
ports:
|
|
- "11434:11434"
|
|
volumes:
|
|
- ollama-models:/root/.ollama
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu]
|
|
|
|
# === CACHE ===
|
|
redis:
|
|
image: redis:7-alpine
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis-data:/data
|
|
|
|
# === BASE DE DONNÉES (optionnel) ===
|
|
postgres:
|
|
image: postgres:15-alpine
|
|
environment:
|
|
POSTGRES_DB: rpa_vision
|
|
POSTGRES_USER: rpa
|
|
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
secrets:
|
|
- db_password
|
|
|
|
volumes:
|
|
ollama-models:
|
|
redis-data:
|
|
postgres-data:
|
|
|
|
secrets:
|
|
db_password:
|
|
file: ./secrets/db_password.txt
|
|
```
|
|
|
|
---
|
|
|
|
## 5. PLAN D'IMPLÉMENTATION
|
|
|
|
### Phase 1 : Services Web (Priorité haute)
|
|
**Durée estimée : 1-2 jours**
|
|
|
|
- [ ] Dockerfile pour `web-dashboard`
|
|
- [ ] Dockerfile pour `vwb-frontend`
|
|
- [ ] Configuration nginx reverse proxy
|
|
- [ ] docker-compose.yml minimal (sans GPU)
|
|
- [ ] Tests de déploiement
|
|
|
|
**Gains** : Déploiement simplifié pour 60% du système
|
|
|
|
### Phase 2 : Backend avec GPU (Priorité moyenne)
|
|
**Durée estimée : 2-3 jours**
|
|
|
|
- [ ] Dockerfile pour `vwb-backend` avec CUDA
|
|
- [ ] Intégration Ollama container
|
|
- [ ] Volumes pour modèles (UI-DETR-1, CLIP)
|
|
- [ ] Tests GPU dans container
|
|
- [ ] Optimisation taille image (multi-stage build)
|
|
|
|
**Gains** : Environnement ML reproductible
|
|
|
|
### Phase 3 : Agent d'exécution RPA (Priorité basse)
|
|
**Durée estimée : 3-5 jours**
|
|
|
|
- [ ] Gestion accès X11/Wayland
|
|
- [ ] Permissions souris/clavier
|
|
- [ ] Tests sur différents environnements (natif, Citrix, VDI)
|
|
- [ ] Documentation des limitations
|
|
|
|
**Gains** : Système complet dockerisé
|
|
|
|
---
|
|
|
|
## 6. ALTERNATIVE HYBRIDE (Recommandée initialement)
|
|
|
|
Pour simplifier le déploiement initial :
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────┐
|
|
│ DOCKER │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ Frontend │ │ Dashboard │ │ Ollama │ │
|
|
│ │ :3000 │ │ :5004 │ │ :11434 │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
│ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ Backend │ │ Redis │ │
|
|
│ │ :5001 │ │ :6379 │ │
|
|
│ └─────────────┘ └─────────────┘ │
|
|
└─────────────────────────────────────────────────────┘
|
|
│
|
|
│ API calls
|
|
▼
|
|
┌─────────────────────────────────────────────────────┐
|
|
│ HOST (non dockerisé) │
|
|
│ ┌─────────────────────────────────────────────┐ │
|
|
│ │ Agent RPA (accès direct écran/souris) │ │
|
|
│ │ - pyautogui │ │
|
|
│ │ - Capture écran │ │
|
|
│ └─────────────────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
**Avantages** :
|
|
- 80% des bénéfices Docker
|
|
- Évite les complications X11/permissions
|
|
- Plus simple à débugger
|
|
- Compatible tous environnements
|
|
|
|
---
|
|
|
|
## 7. COMMANDES DE DÉPLOIEMENT CIBLES
|
|
|
|
```bash
|
|
# Installation complète
|
|
git clone https://github.com/xxx/rpa-vision-v3.git
|
|
cd rpa-vision-v3
|
|
docker-compose up -d
|
|
|
|
# Mise à jour
|
|
docker-compose pull
|
|
docker-compose up -d
|
|
|
|
# Rollback
|
|
docker-compose down
|
|
docker tag rpa-vision/backend:latest rpa-vision/backend:backup
|
|
docker pull rpa-vision/backend:v1.2.3
|
|
docker-compose up -d
|
|
|
|
# Logs
|
|
docker-compose logs -f vwb-backend
|
|
|
|
# Status
|
|
docker-compose ps
|
|
```
|
|
|
|
---
|
|
|
|
## 8. PRÉREQUIS CLIENT
|
|
|
|
### Minimum
|
|
- Docker 24+
|
|
- Docker Compose 2.20+
|
|
- 16 Go RAM
|
|
- 50 Go disque
|
|
|
|
### Avec GPU (recommandé)
|
|
- NVIDIA Driver 535+
|
|
- nvidia-container-toolkit
|
|
- GPU avec 8+ Go VRAM
|
|
|
|
### Commande de vérification
|
|
```bash
|
|
# Vérifier Docker
|
|
docker --version
|
|
docker-compose --version
|
|
|
|
# Vérifier GPU Docker
|
|
docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi
|
|
```
|
|
|
|
---
|
|
|
|
## 9. REGISTRE D'IMAGES
|
|
|
|
Options pour héberger les images :
|
|
|
|
| Option | Avantages | Inconvénients |
|
|
|--------|-----------|---------------|
|
|
| Docker Hub | Gratuit, simple | Images publiques ou payant |
|
|
| GitHub Container Registry | Intégré GitHub | Limites de stockage |
|
|
| AWS ECR | Scalable, privé | Coût AWS |
|
|
| Self-hosted (Harbor) | Contrôle total | Maintenance |
|
|
|
|
**Recommandation** : GitHub Container Registry pour commencer (gratuit, privé possible)
|
|
|
|
---
|
|
|
|
## 10. LIENS UTILES
|
|
|
|
- [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)
|
|
- [Docker Compose GPU](https://docs.docker.com/compose/gpu-support/)
|
|
- [Ollama Docker](https://hub.docker.com/r/ollama/ollama)
|
|
- [Multi-stage builds](https://docs.docker.com/build/building/multi-stage/)
|
|
|
|
---
|
|
|
|
*Document à compléter après la période de démos*
|
|
*Prochaine révision prévue : Février 2026*
|