b8d075a2bd
- Ajout Prometheus et Grafana au docker-compose.yml - Métriques automatiques pour le backend FastAPI - Configuration de production avec docker-compose.prod.yml - Guide de déploiement manuel pour serveur Linux - Variables d'environnement sécurisées - Documentation complète de déploiement
200 lines
4.5 KiB
Markdown
200 lines
4.5 KiB
Markdown
# 🚀 Guide de Déploiement - Dockezr
|
|
|
|
## Vue d'ensemble
|
|
|
|
Ce guide vous explique comment déployer Dockezr en production sur un serveur Linux avec Docker Compose.
|
|
|
|
## 📋 Prérequis
|
|
|
|
- Serveur Linux (Ubuntu/Debian recommandé)
|
|
- Docker et Docker Compose installés
|
|
- Accès SSH au serveur de production
|
|
- Ports 3000, 8001, 9090, 3001 ouverts
|
|
|
|
## 🔧 Configuration Initiale
|
|
|
|
### 1. **Préparation du serveur**
|
|
|
|
```bash
|
|
# Mise à jour du système
|
|
sudo apt update && sudo apt upgrade -y
|
|
|
|
# Installation de Docker
|
|
sudo apt install docker.io docker-compose git curl -y
|
|
|
|
# Démarrage et activation de Docker
|
|
sudo systemctl start docker
|
|
sudo systemctl enable docker
|
|
|
|
# Ajouter l'utilisateur au groupe docker (optionnel)
|
|
sudo usermod -aG docker $USER
|
|
```
|
|
|
|
### 2. **Cloner le projet**
|
|
|
|
```bash
|
|
# Cloner le repository
|
|
git clone https://github.com/votre-username/dockezr.git
|
|
cd dockezr
|
|
|
|
# Copier la configuration de production
|
|
cp env.prod.example .env.prod
|
|
|
|
# Modifier les variables d'environnement
|
|
nano .env.prod
|
|
```
|
|
|
|
## 🚀 Déploiement Manuel
|
|
|
|
### Déploiement complet
|
|
|
|
```bash
|
|
# Démarrer tous les services
|
|
docker-compose -f docker-compose.prod.yml up -d
|
|
|
|
# Vérifier l'état des services
|
|
docker-compose -f docker-compose.prod.yml ps
|
|
|
|
# Voir les logs en temps réel
|
|
docker-compose -f docker-compose.prod.yml logs -f
|
|
```
|
|
|
|
### Déploiement par étapes
|
|
|
|
```bash
|
|
# 1. Démarrer la base de données
|
|
docker-compose -f docker-compose.prod.yml up -d db
|
|
|
|
# 2. Attendre que la DB soit prête
|
|
sleep 10
|
|
|
|
# 3. Démarrer le backend
|
|
docker-compose -f docker-compose.prod.yml up -d backend
|
|
|
|
# 4. Démarrer le frontend
|
|
docker-compose -f docker-compose.prod.yml up -d frontend
|
|
|
|
# 5. Démarrer les services de monitoring
|
|
docker-compose -f docker-compose.prod.yml up -d prometheus grafana
|
|
```
|
|
|
|
## 📊 Monitoring du Déploiement
|
|
|
|
### Vérification des services
|
|
|
|
```bash
|
|
# État des conteneurs
|
|
docker-compose -f docker-compose.prod.yml ps
|
|
|
|
# Logs des services
|
|
docker-compose -f docker-compose.prod.yml logs -f
|
|
|
|
# Test de santé
|
|
curl http://localhost:8001/health
|
|
curl http://localhost:3000
|
|
```
|
|
|
|
### Accès aux services
|
|
|
|
| Service | URL | Description |
|
|
|---------|-----|-------------|
|
|
| **Frontend** | http://votre-serveur:3000 | Interface utilisateur |
|
|
| **Backend** | http://votre-serveur:8001 | API REST |
|
|
| **Prometheus** | http://votre-serveur:9090 | Métriques |
|
|
| **Grafana** | http://votre-serveur:3001 | Tableaux de bord |
|
|
|
|
## 🔒 Sécurité
|
|
|
|
### Variables d'environnement critiques
|
|
|
|
```bash
|
|
# Mots de passe sécurisés
|
|
POSTGRES_PASSWORD=password-très-sécurisé
|
|
GRAFANA_PASSWORD=password-grafana-sécurisé
|
|
|
|
# URLs publiques
|
|
NEXT_PUBLIC_API_URL=http://votre-domaine.com:8001
|
|
```
|
|
|
|
### Recommandations
|
|
|
|
1. **Changez tous les mots de passe par défaut**
|
|
2. **Utilisez HTTPS** avec un reverse proxy (Nginx/Traefik)
|
|
3. **Limitez l'accès** aux ports de monitoring
|
|
4. **Configurez un firewall** approprié
|
|
5. **Sauvegardez régulièrement** la base de données
|
|
|
|
## 🛠️ Dépannage
|
|
|
|
### Problèmes courants
|
|
|
|
#### Images non trouvées
|
|
```bash
|
|
# Vérifier que les images existent sur DockerHub
|
|
docker pull votre-username/dockezr-backend:latest
|
|
docker pull votre-username/dockezr-frontend:latest
|
|
```
|
|
|
|
#### Services non accessibles
|
|
```bash
|
|
# Vérifier les logs
|
|
docker-compose -f docker-compose.prod.yml logs backend
|
|
docker-compose -f docker-compose.prod.yml logs frontend
|
|
|
|
# Redémarrer les services
|
|
docker-compose -f docker-compose.prod.yml restart
|
|
```
|
|
|
|
#### Problèmes de base de données
|
|
```bash
|
|
# Vérifier la connexion
|
|
docker-compose -f docker-compose.prod.yml exec db psql -U user -d dockezr
|
|
|
|
# Redémarrer la base de données
|
|
docker-compose -f docker-compose.prod.yml restart db
|
|
```
|
|
|
|
## 📈 Monitoring et Métriques
|
|
|
|
### Prometheus
|
|
|
|
- **URL** : http://votre-serveur:9090
|
|
- **Métriques** : Automatiquement collectées depuis le backend
|
|
- **Rétention** : 200 heures par défaut
|
|
|
|
### Grafana
|
|
|
|
- **URL** : http://votre-serveur:3001
|
|
- **Identifiants** : admin / (mot de passe configuré)
|
|
- **Dashboard** : "Dockezr - Vue d'ensemble" pré-configuré
|
|
|
|
## 🔄 Mise à jour
|
|
|
|
### Mise à jour automatique
|
|
|
|
```bash
|
|
# Créer une nouvelle version
|
|
git tag v1.2.0
|
|
git push origin v1.2.0
|
|
```
|
|
|
|
### Mise à jour manuelle
|
|
|
|
```bash
|
|
# Déployer la nouvelle version
|
|
./scripts/deploy.sh v1.2.0
|
|
```
|
|
|
|
## 📞 Support
|
|
|
|
En cas de problème :
|
|
|
|
1. Vérifiez les logs : `docker-compose -f docker-compose.prod.yml logs`
|
|
2. Consultez la documentation : [README.md](README.md)
|
|
3. Vérifiez les issues GitHub
|
|
4. Contactez l'équipe de développement
|
|
|
|
---
|
|
|
|
**Dockezr - Déploiement automatisé et monitoring complet ! 🎯**
|