Ajout interface admin déployable sur serveur

- API routes pour gestion clients (CRUD complet)
- Système de stockage JSON persistant (data/clients.json)
- Configuration Next.js serveur (next.config.server.js)
- Script de build pour déploiement (scripts/build-server.sh)
- Documentation complète de déploiement (ADMIN_DEPLOY.md)

Fonctionnalités admin:
- Création/modification/suppression de clients
- Génération automatique de tokens uniques
- QR codes pour configuration clients
- Authentification par mot de passe
- Backend Node.js avec API REST

Déploiement prévu: marama.syoul.fr
This commit is contained in:
2025-11-23 10:57:01 +01:00
parent 43b733b439
commit ea2d620c7a
8 changed files with 1003 additions and 0 deletions

190
scripts/build-server.sh Executable file
View File

@ -0,0 +1,190 @@
#!/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 ""