Files
Regisflow/deploy-prod.sh
T
michaelschal 9997fa38f5 Simplify setup using a single Docker Compose file for all environments
Consolidates Docker Compose configurations into a single docker-compose.yml file, removing docker-compose.simple.yml and docker-compose.prod.yml.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 91318273-c764-4fd4-be04-bdc12c38af32
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/b677ee4d-d452-4e7b-9ac9-ca1e468cd60b.jpg
2025-07-09 21:59:39 +00:00

133 lines
3.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Script de déploiement PRODUCTION RegisFlow
# Utilisation: ./deploy-prod.sh
set -e
echo "🚀 Déploiement PRODUCTION RegisFlow"
echo "===================================="
# Vérifications préalables
echo "🔍 Vérifications préalables..."
# Vérifier que nous sommes en mode production
if [ "$NODE_ENV" != "production" ]; then
echo "⚠️ Variable NODE_ENV non définie sur 'production'"
read -p "Continuer quand même ? (y/N): " -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi
# Vérifier Docker et Docker Compose
if ! command -v docker &> /dev/null; then
echo "❌ Docker n'est pas installé"
exit 1
fi
if ! command -v docker-compose &> /dev/null; then
echo "❌ Docker Compose n'est pas installé"
exit 1
fi
# Créer les répertoires de données
echo "📁 Création des répertoires de données..."
mkdir -p data/{postgres,backups,logs,postgres-logs}
chmod 755 data data/*
# Créer le fichier .env s'il n'existe pas
if [ ! -f .env ]; then
echo "📝 Création du fichier .env..."
cp .env.example .env
echo "✅ Fichier .env créé avec configuration par défaut"
echo ""
echo "ℹ️ CONFIGURATION AUTOMATIQUE :"
echo " - Mots de passe pré-configurés pour installation simple"
echo " - Pour la production, modifiez POSTGRES_PASSWORD et SESSION_SECRET"
echo ""
fi
# Vérifier les variables critiques
echo "🔒 Vérification de la configuration..."
source .env
if [ "$POSTGRES_PASSWORD" = "RegisFlow2024!PostgreSQL" ]; then
echo "⚠️ Utilisation des mots de passe par défaut (OK pour test, changez pour production)"
else
echo "✅ Mots de passe personnalisés détectés"
fi
echo "✅ Configuration validée"
# Arrêter les services existants
echo "🛑 Arrêt des services existants..."
docker-compose down 2>/dev/null || true
# Construire les images
echo "🔨 Construction des images de production..."
docker-compose build --no-cache
# Vérifier l'espace disque
echo "💾 Vérification de l'espace disque..."
DISK_USAGE=$(df / | awk 'NR==2{print $5}' | cut -d'%' -f1)
if [ "$DISK_USAGE" -gt 80 ]; then
echo "⚠️ Attention: Espace disque faible ($DISK_USAGE%)"
read -p "Continuer ? (y/N): " -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi
# Démarrer les services avec configuration production
echo "🚀 Démarrage des services de production..."
docker-compose up -d
# Attendre le démarrage
echo "⏳ Attente du démarrage des services..."
sleep 30
# Vérifier la santé des services
echo "🏥 Vérification de la santé des services..."
for i in {1..30}; do
if docker-compose ps | grep -q "healthy"; then
echo "✅ Services démarrés avec succès"
break
fi
if [ $i -eq 30 ]; then
echo "❌ Timeout: Les services ne démarrent pas correctement"
echo "📋 Logs des services :"
docker-compose logs --tail=20
exit 1
fi
sleep 5
done
# Test de connectivité
echo "🔗 Test de connectivité..."
if curl -f http://localhost:5000/health &>/dev/null; then
echo "✅ Application accessible sur http://localhost:5000"
else
echo "❌ Application non accessible"
docker-compose logs regisflow --tail=20
exit 1
fi
# Afficher le statut final
echo ""
echo "🎉 DÉPLOIEMENT PRODUCTION RÉUSSI !"
echo "=================================="
echo "📱 Application RegisFlow : http://localhost:5000"
echo "🗄️ PostgreSQL : localhost:5433"
echo "📊 Statut des services :"
docker-compose ps
echo ""
echo "📋 Commandes utiles :"
echo " - Logs : docker-compose logs -f"
echo " - Statut : docker-compose ps"
echo " - Arrêt : docker-compose down"
echo " - Sauvegarde : docker-compose exec regisflow-db pg_dump -U regisflow regisflow > backup.sql"
echo ""
echo "⚠️ N'oubliez pas de configurer HTTPS avec un reverse proxy pour la production !"