Files
formation-manager-itinova/GUIDE-GIT.md
Manus Sandbox dcb709b31b 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.
2025-12-03 04:53:31 -05:00

9.4 KiB
Raw Blame History

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

  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

  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
    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

  1. Aller dans le dossier du projet

    cd /chemin/vers/formation-manager-itinova
    

    Exemples :

    • Windows : cd C:\Projets\formation-manager-itinova
    • Mac/Linux : cd ~/Projets/formation-manager-itinova
  2. Initialiser Git

    git init
    

    Vous devriez voir : Initialized empty Git repository

  3. Ajouter tous les fichiers

    git add .
    
  4. Créer le premier commit

    git commit -m "Initial commit - Formation Manager Itinova"
    
  5. Renommer la branche en 'main'

    git branch -M main
    

Étape 7 : Connecter votre projet à GitHub

  1. Ajouter le dépôt distant

    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

    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

    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


É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


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 ! 🚀