veza/VEZA_PRODUCTION_READY_GUIDE.md
2026-01-04 01:44:23 +01:00

49 lines
2.5 KiB
Markdown

# 🚀 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.