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.
404 lines
9.4 KiB
Markdown
404 lines
9.4 KiB
Markdown
# 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 ! 🚀**
|