#!/bin/bash set -e echo "🚀 Build de l'admin pour déploiement serveur" echo "============================================" echo "" # Couleurs GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' NC='\033[0m' # Vérifier qu'on est dans le bon répertoire if [ ! -f "package.json" ]; then echo "❌ Erreur: Exécutez ce script depuis la racine du projet" exit 1 fi # Étape 1: Configuration Next.js pour serveur echo -e "${BLUE}📦 Étape 1/4: Configuration Next.js${NC}" if [ -f "next.config.js" ]; then cp next.config.js next.config.js.backup fi cp next.config.server.js next.config.js echo -e "${GREEN}✅ Configuration serveur activée${NC}" echo "" # Étape 2: Installation des dépendances echo -e "${BLUE}📦 Étape 2/4: Vérification des dépendances${NC}" if [ ! -d "node_modules" ]; then echo "Installation des dépendances..." npm install else echo "Dépendances déjà installées" fi echo -e "${GREEN}✅ Dépendances OK${NC}" echo "" # Étape 3: Build Next.js echo -e "${BLUE}📦 Étape 3/4: Build de production${NC}" rm -rf .next if npm run build; then echo -e "${GREEN}✅ Build réussi${NC}" else echo -e "${YELLOW}⚠️ Build avec avertissements${NC}" fi echo "" # Étape 4: Préparer les fichiers pour le déploiement echo -e "${BLUE}📦 Étape 4/4: Préparation du déploiement${NC}" # Créer le dossier de déploiement mkdir -p deploy rm -rf deploy/* # Copier les fichiers nécessaires echo "Copie des fichiers..." cp -r .next deploy/ cp -r public deploy/ cp package.json deploy/ cp package-lock.json deploy/ 2>/dev/null || true cp next.config.server.js deploy/next.config.js # Créer le dossier data mkdir -p deploy/data cp data/.gitkeep deploy/data/ 2>/dev/null || true # Créer un fichier .env.example cat > deploy/.env.example << 'EOF' # Mot de passe admin ADMIN_PASSWORD=votre_mot_de_passe_securise # Port (optionnel, par défaut 3000) PORT=3000 EOF # Créer un fichier de lancement cat > deploy/start.sh << 'EOF' #!/bin/bash # Script de lancement pour le serveur # Installer les dépendances production uniquement npm ci --production # Démarrer le serveur npm start EOF chmod +x deploy/start.sh # Créer un fichier README pour le déploiement cat > deploy/DEPLOY.md << 'EOF' # Déploiement sur serveur ## Étapes de déploiement 1. **Transférer les fichiers sur le serveur** ```bash rsync -avz --delete deploy/ user@marama.syoul.fr:/var/www/pension-admin/ ``` 2. **Se connecter au serveur** ```bash ssh user@marama.syoul.fr cd /var/www/pension-admin ``` 3. **Configurer les variables d'environnement** ```bash cp .env.example .env nano .env # Modifier ADMIN_PASSWORD ``` 4. **Installer et démarrer** ```bash chmod +x start.sh ./start.sh ``` 5. **Avec PM2 (recommandé)** ```bash npm install -g pm2 pm2 start npm --name "pension-admin" -- start pm2 save pm2 startup ``` ## Configuration Nginx (reverse proxy) ```nginx server { listen 80; server_name admin.marama.syoul.fr; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } ``` ## SSL avec Certbot ```bash sudo certbot --nginx -d admin.marama.syoul.fr ``` EOF echo -e "${GREEN}✅ Fichiers prêts dans deploy/${NC}" echo "" # Restaurer la config originale if [ -f "next.config.js.backup" ]; then mv next.config.js.backup next.config.js fi # Afficher le résumé DEPLOY_SIZE=$(du -sh deploy | cut -f1) echo "" echo -e "${GREEN}========================================${NC}" echo -e "${GREEN}✅ BUILD SERVEUR TERMINÉ !${NC}" echo -e "${GREEN}========================================${NC}" echo "" echo -e "📁 Dossier de déploiement: ${BLUE}deploy/${NC}" echo -e "📊 Taille: ${BLUE}${DEPLOY_SIZE}${NC}" echo "" echo -e "${YELLOW}📤 Prochaines étapes:${NC}" echo "" echo "1. Transférer sur le serveur:" echo " ${BLUE}rsync -avz --delete deploy/ user@marama.syoul.fr:/var/www/pension-admin/${NC}" echo "" echo "2. Sur le serveur:" echo " ${BLUE}cd /var/www/pension-admin${NC}" echo " ${BLUE}./start.sh${NC}" echo "" echo "3. Configurer le mot de passe admin:" echo " ${BLUE}nano .env${NC}" echo " ${BLUE}ADMIN_PASSWORD=votre_mot_de_passe${NC}" echo "" echo -e "${YELLOW}📖 Documentation complète: deploy/DEPLOY.md${NC}" echo ""