# État du Déploiement Incus Veza

**Date**: 2026-01-14  
**Statut**: ⚠️ **INCOMPLET - Action requise**

## Résumé Exécutif

Le déploiement Incus de Veza est **partiellement fonctionnel** mais nécessite des corrections pour être entièrement opérationnel.

### ✅ Ce qui fonctionne
- Réseau Incus configuré correctement (10.10.10.0/24)
- Profil Incus avec device root configuré
- 2 conteneurs déployés et en cours d'exécution :
  - `veza-backend-api` (10.10.10.2)
  - `veza-infra` (10.10.10.10)
- Configuration réseau fonctionnelle (IP statiques, DNS)
- Binaires compilés pour backend-api et web

### ❌ Ce qui ne fonctionne pas
- **4 conteneurs manquants** :
  - `veza-chat-server` (10.10.10.3)
  - `veza-stream-server` (10.10.10.4)
  - `veza-web` (10.10.10.5)
  - `veza-haproxy` (10.10.10.6)
- **Services d'infrastructure non installés** :
  - PostgreSQL non installé dans `veza-infra`
  - Redis non installé dans `veza-infra`
- **Services applicatifs non démarrés** :
  - Backend API ne démarre pas (erreur de connexion Redis)
  - Aucun service systemd actif

## Détails par Composant

### 1. Infrastructure (veza-infra)

**État**: ⚠️ Conteneur actif mais services non installés

**Problèmes**:
- PostgreSQL n'est pas installé
- Redis n'est pas installé
- Les services systemd ne sont pas configurés

**Action requise**:
```bash
# Redéployer l'infrastructure complètement
incus delete veza-infra --force
./config/incus/deploy-service-native.sh infra
```

### 2. Backend API (veza-backend-api)

**État**: ⚠️ Conteneur actif mais service non fonctionnel

**Problèmes**:
- Service systemd configuré mais ne démarre pas
- Erreur: `dial tcp 10.10.10.10:6379: connect: connection refused`
- Cause: Redis non disponible dans veza-infra

**Logs**:
```
dial tcp 10.10.10.10:6379: connect: connection refused
```

**Action requise**:
1. Installer et démarrer Redis dans veza-infra
2. Redémarrer veza-backend-api

### 3. Chat Server (veza-chat-server)

**État**: ❌ Conteneur non déployé

**Raison**: Binaire non compilé (erreurs de compilation Rust)

**Action requise**:
1. Corriger les erreurs de compilation Rust
2. Compiler le binaire: `./config/incus/build-native.sh chat-server`
3. Déployer: `./config/incus/deploy-service-native.sh chat-server`

### 4. Stream Server (veza-stream-server)

**État**: ❌ Conteneur non déployé

**Raison**: Binaire non compilé (erreurs de compilation Rust)

**Action requise**:
1. Corriger les erreurs de compilation Rust
2. Compiler le binaire: `./config/incus/build-native.sh stream-server`
3. Déployer: `./config/incus/deploy-service-native.sh stream-server`

### 5. Web Frontend (veza-web)

**État**: ❌ Conteneur non déployé

**Raison**: Binaire compilé mais conteneur non déployé

**Action requise**:
```bash
./config/incus/deploy-service-native.sh web
```

### 6. HAProxy (veza-haproxy)

**État**: ❌ Conteneur non déployé

**Action requise**:
```bash
./config/incus/deploy-service-native.sh haproxy
```

## Plan de Correction

### Étape 1: Corriger l'Infrastructure
```bash
# Supprimer et redéployer l'infrastructure
incus delete veza-infra --force
./config/incus/deploy-service-native.sh infra

# Vérifier que PostgreSQL et Redis sont démarrés
incus exec veza-infra -- systemctl status postgresql redis-server
```

### Étape 2: Corriger le Backend API
```bash
# Redémarrer le backend une fois Redis disponible
incus exec veza-backend-api -- systemctl restart veza-backend-api
incus exec veza-backend-api -- systemctl status veza-backend-api
```

### Étape 3: Déployer les Services Manquants
```bash
# Déployer web (binaire disponible)
./config/incus/deploy-service-native.sh web

# Déployer haproxy
./config/incus/deploy-service-native.sh haproxy

# Pour chat-server et stream-server, corriger d'abord les erreurs de compilation
```

### Étape 4: Vérification Complète
```bash
# Vérifier l'état
./config/incus/check-deployment.sh

# Ou utiliser le Makefile
make incus-status
```

## Commandes Utiles

### Vérifier l'état
```bash
make incus-status
./config/incus/check-deployment.sh
```

### Voir les logs
```bash
# Backend API
incus exec veza-backend-api -- journalctl -u veza-backend-api -f

# Infrastructure
incus exec veza-infra -- journalctl -u postgresql -f
incus exec veza-infra -- journalctl -u redis-server -f
```

### Tester la connectivité
```bash
# Depuis backend-api vers infra
incus exec veza-backend-api -- ping -c 2 10.10.10.10
incus exec veza-backend-api -- nc -zv 10.10.10.10 5432
incus exec veza-backend-api -- nc -zv 10.10.10.10 6379
```

### Redémarrer tous les services
```bash
make incus-start-all
```

## Problèmes Connus

1. **Compilation Rust échoue** pour chat-server et stream-server
   - Nécessite correction des erreurs de compilation
   - Voir les logs dans `/tmp/chat-build.log` et `/tmp/stream-build.log`

2. **Déploiement prend beaucoup de temps**
   - L'installation des packages peut prendre 5-10 minutes par conteneur
   - C'est normal, ne pas interrompre le processus

3. **Connectivité Internet dans les conteneurs**
   - Certains conteneurs peuvent avoir des problèmes de connectivité Internet
   - Vérifier la configuration NAT du réseau Incus

## Prochaines Étapes Recommandées

1. ✅ **Priorité 1**: Corriger l'infrastructure (PostgreSQL + Redis)
2. ✅ **Priorité 2**: Faire démarrer le Backend API
3. ✅ **Priorité 3**: Déployer Web et HAProxy
4. ⚠️ **Priorité 4**: Corriger les erreurs de compilation Rust pour chat/stream

## Support

Pour plus d'aide:
- Voir `config/incus/README.md` pour la documentation complète
- Voir `config/incus/IMPROVEMENTS.md` pour les améliorations récentes
- Utiliser `make incus-status` pour vérifier l'état en temps réel
