mirror of
https://github.com/R0m1k3/Regisflow.git
synced 2026-10-24 15:48:17 +02:00
Prepare the application for deployment to a production environment
Adds Docker Compose configuration, Nginx setup, and deployment scripts. Replit-Commit-Author: Agent Replit-Commit-Session-Id: dec54137-d5a2-4406-8ad4-5f2f9fb110bf Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/1668b635-4205-40d7-8634-6b7174d94d7b.jpg
This commit is contained in:
1 parent
9b0a09614a
commit
9cc28ddc93
8 files changed
+635
No files matched your search
Executable
+157
@@ -0,0 +1,157 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script de déploiement automatique RegisFlow Production
|
||||
# Usage: ./deploy-production.sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "🚀 Déploiement RegisFlow en production"
|
||||
echo "======================================="
|
||||
|
||||
# Couleurs pour les messages
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Fonction pour afficher les messages
|
||||
log_info() {
|
||||
echo -e "${BLUE}ℹ️ $1${NC}"
|
||||
}
|
||||
|
||||
log_success() {
|
||||
echo -e "${GREEN}✅ $1${NC}"
|
||||
}
|
||||
|
||||
log_warning() {
|
||||
echo -e "${YELLOW}⚠️ $1${NC}"
|
||||
}
|
||||
|
||||
log_error() {
|
||||
echo -e "${RED}❌ $1${NC}"
|
||||
}
|
||||
|
||||
# Vérifier que Docker est installé
|
||||
if ! command -v docker &> /dev/null; then
|
||||
log_error "Docker n'est pas installé. Veuillez l'installer d'abord."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v docker-compose &> /dev/null; then
|
||||
log_error "Docker Compose n'est pas installé. Veuillez l'installer d'abord."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Créer le répertoire de déploiement
|
||||
DEPLOY_DIR="/opt/regisflow"
|
||||
log_info "Création du répertoire de déploiement : $DEPLOY_DIR"
|
||||
|
||||
if [ ! -d "$DEPLOY_DIR" ]; then
|
||||
sudo mkdir -p "$DEPLOY_DIR"
|
||||
sudo chown $USER:$USER "$DEPLOY_DIR"
|
||||
log_success "Répertoire créé"
|
||||
else
|
||||
log_info "Répertoire existant"
|
||||
fi
|
||||
|
||||
cd "$DEPLOY_DIR"
|
||||
|
||||
# Vérifier la configuration .env
|
||||
if [ ! -f ".env" ]; then
|
||||
log_warning "Fichier .env manquant"
|
||||
|
||||
if [ -f ".env.production" ]; then
|
||||
log_info "Copie du template .env.production vers .env"
|
||||
cp .env.production .env
|
||||
else
|
||||
log_info "Création d'un fichier .env de base"
|
||||
cat > .env << EOF
|
||||
# Configuration RegisFlow Production
|
||||
POSTGRES_PASSWORD=RegisFlow2024!PostgreSQL_$(date +%s)
|
||||
SESSION_SECRET=RegisFlow2024SessionSecret_$(openssl rand -hex 32)
|
||||
NODE_ENV=production
|
||||
PORT=5000
|
||||
TZ=Europe/Paris
|
||||
SECURE_COOKIES=true
|
||||
DATA_RETENTION_MONTHS=19
|
||||
BACKUP_RETENTION_DAYS=90
|
||||
MAX_BACKUP_COUNT=20
|
||||
EOF
|
||||
fi
|
||||
|
||||
log_warning "IMPORTANT: Éditez le fichier .env avec vos propres mots de passe !"
|
||||
log_warning "Fichier: $DEPLOY_DIR/.env"
|
||||
|
||||
read -p "Appuyez sur Entrée après avoir modifié le fichier .env..."
|
||||
fi
|
||||
|
||||
# Vérifier les fichiers Docker requis
|
||||
REQUIRED_FILES=("docker-compose.yml" "Dockerfile")
|
||||
for file in "${REQUIRED_FILES[@]}"; do
|
||||
if [ ! -f "$file" ]; then
|
||||
log_error "Fichier manquant: $file"
|
||||
log_info "Assurez-vous que tous les fichiers du projet sont présents dans $DEPLOY_DIR"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Arrêter les anciens conteneurs si ils existent
|
||||
log_info "Arrêt des anciens conteneurs..."
|
||||
docker-compose down --remove-orphans 2>/dev/null || true
|
||||
|
||||
# Construire et démarrer les services
|
||||
log_info "Construction et démarrage des services..."
|
||||
docker-compose up -d --build
|
||||
|
||||
# Attendre que les services soient prêts
|
||||
log_info "Attente du démarrage des services..."
|
||||
sleep 30
|
||||
|
||||
# Vérifier la santé des services
|
||||
log_info "Vérification de la santé des services..."
|
||||
|
||||
# Vérifier PostgreSQL
|
||||
if docker-compose exec -T regisflow-db pg_isready -U regisflow >/dev/null 2>&1; then
|
||||
log_success "PostgreSQL est opérationnel"
|
||||
else
|
||||
log_error "PostgreSQL n'est pas accessible"
|
||||
docker-compose logs regisflow-db
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Vérifier l'application
|
||||
sleep 10
|
||||
if curl -s -f http://localhost:5000/health >/dev/null 2>&1; then
|
||||
log_success "Application RegisFlow est opérationnelle"
|
||||
else
|
||||
log_error "L'application n'est pas accessible"
|
||||
docker-compose logs regisflow
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Afficher les informations de connexion
|
||||
echo ""
|
||||
log_success "🎉 Déploiement terminé avec succès !"
|
||||
echo "======================================="
|
||||
log_info "URL de l'application: http://localhost:5000"
|
||||
log_info "Compte administrateur par défaut:"
|
||||
log_info " - Utilisateur: admin"
|
||||
log_info " - Mot de passe: admin123"
|
||||
log_warning "CHANGEZ le mot de passe administrateur après la première connexion !"
|
||||
echo ""
|
||||
log_info "Base de données PostgreSQL accessible sur le port 5433"
|
||||
echo ""
|
||||
|
||||
# Afficher les commandes utiles
|
||||
echo "Commandes utiles:"
|
||||
echo "=================="
|
||||
echo "📋 Voir les logs: docker-compose logs -f"
|
||||
echo "📊 État des services: docker-compose ps"
|
||||
echo "🔄 Redémarrer: docker-compose restart"
|
||||
echo "🛑 Arrêter: docker-compose down"
|
||||
echo "📈 Statistiques: docker stats"
|
||||
echo ""
|
||||
|
||||
log_info "Pour configurer un reverse proxy, consultez PRODUCTION.md"
|
||||
log_success "Déploiement terminé !"
|
||||
Reference in new issue
Block a user