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:
403
GUIDE-GIT.md
Normal file
403
GUIDE-GIT.md
Normal 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 ! 🚀**
|
||||
Reference in New Issue
Block a user