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:
michaelschal committed 2025-07-11 15:59:15 +00:00
1 parent 9b0a09614a
commit 9cc28ddc93
8 files changed
+635

No files matched your search

+157
View File
@@ -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é !"