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
4.5 KiB
4.5 KiB
🚀 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
# 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
# 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
# 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
# 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
# É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
# 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
- Changez tous les mots de passe par défaut
- Utilisez HTTPS avec un reverse proxy (Nginx/Traefik)
- Limitez l'accès aux ports de monitoring
- Configurez un firewall approprié
- Sauvegardez régulièrement la base de données
🛠️ Dépannage
Problèmes courants
Images non trouvées
# 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
# 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
# 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
# Créer une nouvelle version
git tag v1.2.0
git push origin v1.2.0
Mise à jour manuelle
# Déployer la nouvelle version
./scripts/deploy.sh v1.2.0
📞 Support
En cas de problème :
- Vérifiez les logs :
docker-compose -f docker-compose.prod.yml logs - Consultez la documentation : README.md
- Vérifiez les issues GitHub
- Contactez l'équipe de développement
Dockezr - Déploiement automatisé et monitoring complet ! 🎯