Checkpoint: Version finale avec guide Git complet et scripts de déploiement

Contenu de cette version :

1. Corrections de bugs (version précédente) :
   - Bug d'inscription (procédure publique createPublic)
   - Bug email de confirmation (variables {{prenomApprenant}} et {{datesHTML}})
   - Amélioration interface templates d'emails

2. Scripts de déploiement VPS :
   - deploy-update.sh : Script automatique de mise à jour
   - update-database.sql : Script SQL de mise à jour
   - INSTRUCTIONS-DEPLOIEMENT.md : Documentation de déploiement

3. Guide Git complet (NOUVEAU) :
   - GUIDE-GIT.md : Guide pas à pas pour débutants
   - Configuration GitHub
   - Création du dépôt
   - Premier push
   - Configuration du serveur VPS
   - Workflow de mise à jour

4. Configuration Git :
   - .gitignore mis à jour (exclusion backups)
   - README.md existant (complet)

Tout est prêt pour le premier déploiement Git + VPS.
This commit is contained in:
Manus Sandbox
2025-12-03 04:53:31 -05:00
parent aa85bf43b9
commit dcb709b31b
2 changed files with 408 additions and 0 deletions

5
.gitignore vendored
View File

@@ -105,3 +105,8 @@ temp/
*.db *.db
*.sqlite *.sqlite
*.sqlite3 *.sqlite3
# Backups
backups/
*.sql
*.dump

403
GUIDE-GIT.md Normal file
View File

@@ -0,0 +1,403 @@
# Guide complet - Configuration Git et déploiement
Ce guide vous accompagne pas à pas pour mettre votre code sur Git et le déployer sur votre serveur VPS.
---
## 📋 Prérequis
- Un compte GitHub (gratuit) - https://github.com/signup
- Git installé sur votre machine locale
- Accès SSH à votre serveur VPS
---
## Étape 1⃣ : Créer un compte GitHub (si vous n'en avez pas)
1. Aller sur https://github.com/signup
2. Créer un compte avec votre email
3. Vérifier votre email
4. Se connecter à GitHub
---
## Étape 2⃣ : Créer un dépôt GitHub
1. **Se connecter à GitHub**
- Aller sur https://github.com
2. **Créer un nouveau dépôt**
- Cliquer sur le bouton **"+"** en haut à droite
- Sélectionner **"New repository"**
3. **Configurer le dépôt**
- **Repository name** : `formation-manager-itinova`
- **Description** : "Gestion des formations Manager Itinova"
- **Visibilité** :
-**Private** (recommandé - seul vous pouvez voir le code)
- ⚠️ Public (tout le monde peut voir le code)
- **NE PAS** cocher "Add a README file"
- **NE PAS** ajouter .gitignore (on l'a déjà)
- **NE PAS** choisir de licence
- Cliquer sur **"Create repository"**
4. **Noter l'URL du dépôt**
- GitHub vous montre une page avec des instructions
- Noter l'URL qui ressemble à : `https://github.com/VOTRE-USERNAME/formation-manager-itinova.git`
---
## Étape 3⃣ : Télécharger le code depuis Manus
1. **Dans l'interface Manus**
- Cliquer sur l'onglet **"Code"** (à droite)
- Cliquer sur le bouton **"Download all files"** (en haut)
- Un fichier ZIP sera téléchargé
2. **Extraire le ZIP**
- Extraire le contenu dans un dossier sur votre ordinateur
- Par exemple : `C:\Projets\formation-manager-itinova` (Windows)
- Ou : `~/Projets/formation-manager-itinova` (Mac/Linux)
---
## Étape 4⃣ : Configurer Git sur votre machine locale
### Sur Windows
1. **Installer Git**
- Télécharger depuis https://git-scm.com/download/win
- Installer avec les options par défaut
- Redémarrer votre ordinateur
2. **Ouvrir Git Bash**
- Chercher "Git Bash" dans le menu Démarrer
- Ouvrir Git Bash
### Sur Mac
1. **Installer Git**
- Ouvrir le Terminal (Applications > Utilitaires > Terminal)
- Taper : `git --version`
- Si Git n'est pas installé, suivre les instructions pour l'installer
### Sur Linux
1. **Installer Git**
```bash
sudo apt update
sudo apt install git
```
---
## Étape 5⃣ : Configurer votre identité Git
Dans le terminal (Git Bash sur Windows, Terminal sur Mac/Linux) :
```bash
# Configurer votre nom
git config --global user.name "Votre Nom"
# Configurer votre email (celui de votre compte GitHub)
git config --global user.email "votre.email@example.com"
# Vérifier la configuration
git config --list
```
---
## Étape 6⃣ : Initialiser Git dans votre projet
1. **Aller dans le dossier du projet**
```bash
cd /chemin/vers/formation-manager-itinova
```
Exemples :
- Windows : `cd C:\Projets\formation-manager-itinova`
- Mac/Linux : `cd ~/Projets/formation-manager-itinova`
2. **Initialiser Git**
```bash
git init
```
Vous devriez voir : `Initialized empty Git repository`
3. **Ajouter tous les fichiers**
```bash
git add .
```
4. **Créer le premier commit**
```bash
git commit -m "Initial commit - Formation Manager Itinova"
```
5. **Renommer la branche en 'main'**
```bash
git branch -M main
```
---
## Étape 7⃣ : Connecter votre projet à GitHub
1. **Ajouter le dépôt distant**
```bash
git remote add origin https://github.com/VOTRE-USERNAME/formation-manager-itinova.git
```
⚠️ **Remplacer** `VOTRE-USERNAME` par votre nom d'utilisateur GitHub
2. **Vérifier la connexion**
```bash
git remote -v
```
Vous devriez voir deux lignes avec l'URL de votre dépôt
---
## Étape 8⃣ : Pousser le code vers GitHub
1. **Pousser le code**
```bash
git push -u origin main
```
2. **S'authentifier**
- GitHub va vous demander de vous authentifier
- **Méthode recommandée** : Utiliser un Personal Access Token (PAT)
### Créer un Personal Access Token (PAT)
1. **Sur GitHub**
- Aller dans **Settings** (icône de profil en haut à droite)
- Cliquer sur **Developer settings** (tout en bas à gauche)
- Cliquer sur **Personal access tokens** > **Tokens (classic)**
- Cliquer sur **Generate new token** > **Generate new token (classic)**
2. **Configurer le token**
- **Note** : "Formation Manager Itinova - Déploiement"
- **Expiration** : 90 days (ou No expiration si vous êtes seul)
- **Cocher les permissions** :
- ✅ `repo` (tous les sous-éléments)
- Cliquer sur **Generate token**
3. **Copier le token**
- ⚠️ **IMPORTANT** : Copier le token et le sauvegarder dans un endroit sûr
- Vous ne pourrez plus le voir après avoir quitté la page
4. **Utiliser le token**
- Quand Git vous demande le mot de passe, coller le token (pas votre mot de passe GitHub)
- Le token remplace votre mot de passe
5. **Vérifier sur GitHub**
- Aller sur https://github.com/VOTRE-USERNAME/formation-manager-itinova
- Vous devriez voir tous vos fichiers
---
## Étape 9⃣ : Configurer Git sur le serveur VPS
Maintenant que le code est sur GitHub, configurons le serveur VPS pour récupérer le code.
### Se connecter au serveur VPS
```bash
ssh votre-utilisateur@votre-serveur.com
```
### Installer Git sur le serveur (si pas déjà installé)
```bash
# Vérifier si Git est installé
git --version
# Si pas installé, installer Git
sudo apt update
sudo apt install git -y
```
### Cloner le dépôt sur le serveur
```bash
# Aller dans le répertoire où vous voulez installer le projet
cd /var/www # ou un autre répertoire
# Cloner le dépôt
git clone https://github.com/VOTRE-USERNAME/formation-manager-itinova.git
# Entrer dans le dossier
cd formation-manager-itinova
```
### Configurer les variables d'environnement
```bash
# Créer le fichier .env
nano .env
```
Copier-coller vos variables d'environnement :
```env
DATABASE_URL=mysql://user:password@host:port/database
RESEND_API_KEY=votre_cle_resend
JWT_SECRET=votre_secret_jwt
# ... autres variables
```
Sauvegarder : `Ctrl+X`, puis `Y`, puis `Entrée`
### Installer les dépendances
```bash
# Installer pnpm si pas déjà installé
npm install -g pnpm
# Installer les dépendances du projet
pnpm install
```
### Appliquer les migrations de base de données
```bash
pnpm db:push
```
### Compiler le projet
```bash
pnpm build
```
### Démarrer le serveur avec PM2
```bash
# Installer PM2 si pas déjà installé
npm install -g pm2
# Démarrer le serveur
pm2 start npm --name "formation-manager" -- start
# Sauvegarder la configuration PM2
pm2 save
# Configurer PM2 pour démarrer au boot
pm2 startup
# Suivre les instructions affichées
```
---
## Étape 🔟 : Déployer les futures mises à jour
Maintenant que tout est configuré, pour les futures mises à jour :
### Sur votre machine locale
```bash
# 1. Télécharger le nouveau code depuis Manus
# 2. Remplacer les fichiers dans votre dossier local
# 3. Ajouter les modifications
git add .
# 4. Créer un commit
git commit -m "Description des modifications"
# 5. Pousser vers GitHub
git push origin main
```
### Sur le serveur VPS
```bash
# Se connecter au serveur
ssh votre-utilisateur@votre-serveur.com
# Aller dans le dossier du projet
cd /var/www/formation-manager-itinova
# Exécuter le script de mise à jour
./deploy-update.sh
```
Le script `deploy-update.sh` va automatiquement :
- ✅ Sauvegarder la base de données
- ✅ Arrêter le serveur
- ✅ Récupérer le nouveau code depuis GitHub (`git pull`)
- ✅ Installer les nouvelles dépendances
- ✅ Appliquer les migrations
- ✅ Recompiler le projet
- ✅ Redémarrer le serveur
---
## 🔒 Sécurité - Fichiers à ne PAS pousser sur Git
Le fichier `.gitignore` est déjà configuré pour exclure :
- ❌ `.env` (variables d'environnement sensibles)
- ❌ `node_modules/` (dépendances)
- ❌ `dist/` (fichiers compilés)
- ❌ Fichiers de backup de la base de données
**⚠️ IMPORTANT** : Ne JAMAIS pousser le fichier `.env` sur Git !
---
## 📞 Aide et dépannage
### Problème : "Permission denied (publickey)"
**Solution** : Utiliser HTTPS au lieu de SSH pour le dépôt
```bash
git remote set-url origin https://github.com/VOTRE-USERNAME/formation-manager-itinova.git
```
### Problème : "Authentication failed"
**Solution** : Utiliser un Personal Access Token au lieu du mot de passe (voir Étape 8)
### Problème : "git: command not found"
**Solution** : Installer Git (voir Étape 4)
### Problème : Le script deploy-update.sh ne fonctionne pas
**Solution** : Vérifier les permissions
```bash
chmod +x deploy-update.sh
```
---
## 📚 Ressources utiles
- Documentation Git : https://git-scm.com/doc
- Documentation GitHub : https://docs.github.com
- Tutoriel Git interactif : https://learngitbranching.js.org
---
## ✅ Checklist finale
Avant de déployer en production :
- [ ] Code poussé sur GitHub
- [ ] Serveur VPS configuré avec Git
- [ ] Dépôt cloné sur le serveur
- [ ] Variables d'environnement configurées (.env)
- [ ] Dépendances installées (pnpm install)
- [ ] Base de données migrée (pnpm db:push)
- [ ] Projet compilé (pnpm build)
- [ ] Serveur démarré avec PM2
- [ ] Script deploy-update.sh testé
- [ ] Backup de la base de données effectué
---
**Bon déploiement ! 🚀**