mirror of
https://github.com/R0m1k3/Regisflow.git
synced 2026-10-11 17:29:48 +02:00
Adds install script and documentation for easy setup; configures default passwords in .env.example. 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
133 lines
3.9 KiB
Bash
133 lines
3.9 KiB
Bash
#!/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 -f docker-compose.yml -f docker-compose.prod.yml 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 !" |