#!/bin/bash ############################################################################### # Script de mise à jour rapide - Formation Manager Itinova # Version: 7a737c05 # Auteur: Manus AI # Description: Script simplifié pour mettre à jour l'application en production ############################################################################### set -e # Couleurs RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # Configuration APP_DIR="/var/www/formation-manager-itinova" SERVICE_NAME="formation-manager" print_info() { echo -e "${BLUE}[INFO]${NC} $1" } print_success() { echo -e "${GREEN}[OK]${NC} $1" } print_error() { echo -e "${RED}[ERREUR]${NC} $1" } # Vérifier les privilèges sudo if [[ $EUID -ne 0 ]]; then print_error "Ce script doit être exécuté avec sudo" exit 1 fi echo "========================================" echo " Mise à jour Formation Manager Itinova" echo " Version: 7a737c05" echo "========================================" echo "" cd "$APP_DIR" # 1. Arrêter le service print_info "Arrêt du service..." systemctl stop "$SERVICE_NAME" print_success "Service arrêté" # 2. Sauvegarder .env print_info "Sauvegarde de la configuration..." cp .env /tmp/.env.backup print_success "Configuration sauvegardée" # 3. Mettre à jour le code print_info "Mise à jour du code..." git pull origin main print_success "Code mis à jour" # 4. Installer les dépendances print_info "Installation des dépendances..." pnpm install print_success "Dépendances installées" # 5. Appliquer les migrations print_info "Application des migrations..." pnpm db:push print_success "Migrations appliquées" # 6. Build print_info "Compilation de l'application..." pnpm run build print_success "Application compilée" # 7. Restaurer .env print_info "Restauration de la configuration..." cp /tmp/.env.backup .env print_success "Configuration restaurée" # 8. Redémarrer le service print_info "Redémarrage du service..." systemctl start "$SERVICE_NAME" sleep 3 if systemctl is-active --quiet "$SERVICE_NAME"; then print_success "Service redémarré" else print_error "Échec du redémarrage" systemctl status "$SERVICE_NAME" exit 1 fi echo "" echo "========================================" print_success "Mise à jour terminée avec succès !" echo "========================================" echo "" print_info "Vérifiez les logs: sudo journalctl -u $SERVICE_NAME -f"