# 🚀 VEZA - Guide de Déploiement en Production

Ce guide explique comment passer votre MVP Veza d'un mode "Laboratoire" à un mode "Production" sécurisé et performant.

## 1. Configuration de l'Environnement
Toutes les variables d'environnement doivent être définies dans un fichier `.env` protégé.

### Sécurité Critique
- **APP_ENV** : Doit être positionné sur `production`. Cela active la vérification stricte du CSRF et masque les stack traces dans les logs.
- **JWT_SECRET** : Utilisez une clé de 64 caractères minimum (`openssl rand -base64 48`).
- **CORS_ORIGINS** : Ne jamais utiliser `*`. Listez explicitement vos domaines (ex: `https://app.veza.io`).

## 2. Infrastructure & Docker
Utilisez le fichier `docker-compose.prod.yml` fourni. Il inclut des optimisations et des conteneurs supplémentaires pour la sécurité.

### Composants additionnels
- **ClamAV** : Indispensable pour scanner les uploads de fichiers musicaux contre les virus.
- **Nginx Reverse Proxy** : Recommandé pour gérer le SSL/TLS et servir le frontend statique.

## 3. Stratégie de Stockage
Pour les fichiers audio et les avatars :
- **Mode Local** : Utilisez des volumes Docker persistants (déjà configurés).
- **Mode S3 (Recommandé)** : Modifiez la configuration backend pour pointer vers un bucket AWS S3 ou MinIO pour une meilleure scalabilité.

## 4. Hardening (Renforcement)
- **SSL/TLS** : Utilisez des certificats Let's Encrypt (via Certbot ou Traefik).
- **Redis** : Assurez-vous que Redis est accessible uniquement en interne par le backend. Il est crucial pour la protection CSRF et le Rate Limiting.
- **Base de données** : Changez les mots de passe par défaut (`password`) avant le premier lancement.

## 5. Procédure de Lancement
1. **Générer les secrets** :
   ```bash
   export JWT_SECRET=$(openssl rand -base64 32)
   export SECRET_KEY=$(openssl rand -base64 32)
   ```
2. **Préparer les fichiers de config** :
   - Copiez `.env.production` localement.
   - Configurez vos domaines dans `nginx.conf`.
3. **Lancer le stack** :
   ```bash
   docker compose -f docker-compose.prod.yml up -d --build
   ```
4. **Vérifier la santé** :
   - Dashboard : `https://votre-domaine.com`
   - Santé API : `https://api.votre-domaine.com/api/v1/status` (vérifiez que ClamAV est "Healthy").

## 6. Maintenance
- **Sauvegardes** : Automatisez un dump de la base Postgres toutes les 24h.
- **Logs** : Docker envoie les logs vers `stdout/stderr`, vous pouvez les agréger via ELK ou Grafana Loki.
