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.
9.4 KiB
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)
- Aller sur https://github.com/signup
- Créer un compte avec votre email
- Vérifier votre email
- Se connecter à GitHub
Étape 2️⃣ : Créer un dépôt GitHub
-
Se connecter à GitHub
- Aller sur https://github.com
-
Créer un nouveau dépôt
- Cliquer sur le bouton "+" en haut à droite
- Sélectionner "New repository"
-
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"
- Repository name :
-
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
-
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é
-
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
-
Installer Git
- Télécharger depuis https://git-scm.com/download/win
- Installer avec les options par défaut
- Redémarrer votre ordinateur
-
Ouvrir Git Bash
- Chercher "Git Bash" dans le menu Démarrer
- Ouvrir Git Bash
Sur Mac
- 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
- Installer Git
sudo apt update sudo apt install git
Étape 5️⃣ : Configurer votre identité Git
Dans le terminal (Git Bash sur Windows, Terminal sur Mac/Linux) :
# 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
-
Aller dans le dossier du projet
cd /chemin/vers/formation-manager-itinovaExemples :
- Windows :
cd C:\Projets\formation-manager-itinova - Mac/Linux :
cd ~/Projets/formation-manager-itinova
- Windows :
-
Initialiser Git
git initVous devriez voir :
Initialized empty Git repository -
Ajouter tous les fichiers
git add . -
Créer le premier commit
git commit -m "Initial commit - Formation Manager Itinova" -
Renommer la branche en 'main'
git branch -M main
Étape 7️⃣ : Connecter votre projet à GitHub
-
Ajouter le dépôt distant
git remote add origin https://github.com/VOTRE-USERNAME/formation-manager-itinova.git⚠️ Remplacer
VOTRE-USERNAMEpar votre nom d'utilisateur GitHub -
Vérifier la connexion
git remote -vVous devriez voir deux lignes avec l'URL de votre dépôt
Étape 8️⃣ : Pousser le code vers GitHub
-
Pousser le code
git push -u origin main -
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)
-
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)
-
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
-
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
-
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
-
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
ssh votre-utilisateur@votre-serveur.com
Installer Git sur le serveur (si pas déjà installé)
# 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
# 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
# Créer le fichier .env
nano .env
Copier-coller vos variables d'environnement :
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
# 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
pnpm db:push
Compiler le projet
pnpm build
Démarrer le serveur avec PM2
# 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
# 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
# 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
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
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 ! 🚀