#!/bin/bash ############################################################################### # Script de configuration du fichier .env pour production ############################################################################### set -e # Couleurs RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' echo "╔════════════════════════════════════════════════════════════════╗" echo "║ Configuration du fichier .env pour production ║" echo "╚════════════════════════════════════════════════════════════════╝" echo "" # Vérifier si .env existe déjà if [ -f ".env" ]; then echo -e "${YELLOW}[WARN]${NC} Le fichier .env existe déjà" read -p "Voulez-vous le remplacer? (y/N) " -n 1 -r echo "" if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "Configuration annulée" exit 0 fi # Sauvegarder l'ancien cp .env .env.backup.$(date +%Y%m%d_%H%M%S) echo -e "${GREEN}[OK]${NC} Ancien fichier sauvegardé" fi echo "Ce script va créer un fichier .env avec les paramètres minimaux requis." echo "" # Demander DATABASE_URL echo "═══════════════════════════════════════════════════════════════" echo " 1. Configuration de la base de données" echo "═══════════════════════════════════════════════════════════════" echo "" read -p "Hôte MySQL (défaut: localhost): " DB_HOST DB_HOST=${DB_HOST:-localhost} read -p "Port MySQL (défaut: 3306): " DB_PORT DB_PORT=${DB_PORT:-3306} read -p "Nom de la base de données (défaut: formation_manager): " DB_NAME DB_NAME=${DB_NAME:-formation_manager} read -p "Utilisateur MySQL: " DB_USER read -sp "Mot de passe MySQL: " DB_PASS echo "" DATABASE_URL="mysql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}" echo "" echo "═══════════════════════════════════════════════════════════════" echo " 2. Génération du JWT_SECRET" echo "═══════════════════════════════════════════════════════════════" echo "" JWT_SECRET=$(openssl rand -base64 32) echo -e "${GREEN}[OK]${NC} JWT_SECRET généré: ${JWT_SECRET:0:20}..." echo "" echo "═══════════════════════════════════════════════════════════════" echo " 3. Configuration de l'application" echo "═══════════════════════════════════════════════════════════════" echo "" read -p "Port de l'application (défaut: 3000): " PORT PORT=${PORT:-3000} read -p "Titre de l'application (défaut: Gestion des Formations Manager Itinova): " APP_TITLE APP_TITLE=${APP_TITLE:-Gestion des Formations Manager Itinova} # Créer le fichier .env cat > .env << EOF # ============================================================================ # CONFIGURATION DE PRODUCTION - Formation Manager Itinova # Généré le $(date) # ============================================================================ # ---------------------------------------------------------------------------- # Base de données # ---------------------------------------------------------------------------- DATABASE_URL=${DATABASE_URL} # ---------------------------------------------------------------------------- # Sécurité - JWT # ---------------------------------------------------------------------------- JWT_SECRET=${JWT_SECRET} # ---------------------------------------------------------------------------- # Application # ---------------------------------------------------------------------------- PORT=${PORT} NODE_ENV=production # Titre de l'application VITE_APP_TITLE=${APP_TITLE} # Logo de l'application VITE_APP_LOGO=/logo-itinova.png # ---------------------------------------------------------------------------- # OAuth Manus (configuration minimale pour éviter les erreurs) # ---------------------------------------------------------------------------- VITE_APP_ID=formation-manager-itinova OAUTH_SERVER_URL=https://api.manus.im VITE_OAUTH_PORTAL_URL=https://portal.manus.im OWNER_OPEN_ID=local-owner OWNER_NAME=Administrateur # ---------------------------------------------------------------------------- # SMTP - Configuration email (optionnel) # ---------------------------------------------------------------------------- # Laissez vide si vous n'utilisez pas l'envoi d'emails SMTP_HOST= SMTP_PORT= SMTP_USER= SMTP_PASS= SMTP_FROM= # ---------------------------------------------------------------------------- # Analytics (optionnel) # ---------------------------------------------------------------------------- VITE_ANALYTICS_ENDPOINT= VITE_ANALYTICS_WEBSITE_ID= # ---------------------------------------------------------------------------- # API Forge Manus (optionnel) # ---------------------------------------------------------------------------- BUILT_IN_FORGE_API_URL= BUILT_IN_FORGE_API_KEY= VITE_FRONTEND_FORGE_API_KEY= VITE_FRONTEND_FORGE_API_URL= EOF echo "" echo "╔════════════════════════════════════════════════════════════════╗" echo "║ Fichier .env créé avec succès! ║" echo "╚════════════════════════════════════════════════════════════════╝" echo "" echo "📄 Fichier créé: $(pwd)/.env" echo "" echo "⚠️ IMPORTANT:" echo " 1. Le fichier .env contient des informations sensibles" echo " 2. Ne le partagez jamais publiquement" echo " 3. Assurez-vous qu'il n'est pas accessible via le web" echo "" echo "🔄 Prochaines étapes:" echo " 1. Vérifiez la configuration: cat .env" echo " 2. Appliquez les migrations: pnpm db:push" echo " 3. Compilez l'application: pnpm build" echo " 4. Redémarrez le service: sudo systemctl restart formation-manager" echo ""