Aller au contenu principal
Gaprod

Déploiement avec Git

Configurez un dépôt Git sur votre hébergement Gaprod pour déployer votre site automatiquement depuis votre ordinateur ou votre pipeline CI/CD.

Mis à jour le 28 janvier 2026

Présentation

Le déploiement avec Git vous permet de pousser votre code directement depuis votre ordinateur (ou un service CI/CD comme GitHub Actions) vers votre serveur Gaprod. Chaque git push met à jour votre site automatiquement, sans avoir à téléverser des fichiers via FTP.

Il existe deux approches principales :

  • Git sur le serveur (dépôt bare) : vous créez un dépôt Git directement sur votre hébergement Gaprod
  • Déploiement depuis GitHub/GitLab : vous configurez un webhook ou une action CI/CD pour déclencher le déploiement depuis votre dépôt distant

Accès SSH requis

Le déploiement Git nécessite un accès SSH à votre hébergement. Consultez d'abord le guide Accès SSH si ce n'est pas encore configuré.

Méthode 1 : Dépôt bare sur le serveur

Cette méthode crée un dépôt Git "nu" (bare) sur votre serveur qui reçoit les push et déclenche automatiquement le déploiement.

  1. Créer un dépôt bare sur le serveur

    Connectez-vous à votre serveur via SSH et créez le dépôt bare dans votre répertoire home :

    mkdir ~/repos/monsite.git
    cd ~/repos/monsite.git
    git init --bare
    

    Ce dossier contiendra l'historique Git mais pas les fichiers du site directement.

  2. Créer le hook post-receive

    Le hook post-receive est un script exécuté automatiquement après chaque push. Il copie les fichiers vers public_html.

    Créez le fichier du hook :

    nano ~/repos/monsite.git/hooks/post-receive
    

    Collez le contenu suivant :

    #!/bin/bash
    GIT_WORK_TREE=~/public_html git checkout -f main
    echo "Déploiement terminé."
    

    Remplacez main par le nom de votre branche principale si différent.

    Rendez le script exécutable :

    chmod +x ~/repos/monsite.git/hooks/post-receive
    
  3. Configurer le dépôt distant sur votre ordinateur

    Sur votre ordinateur, dans votre projet Git local, ajoutez le serveur comme remote :

    git remote add gaprod votre_user@adresse_serveur:repos/monsite.git
    
  4. Déployer avec git push

    Pour déployer, il suffit de faire :

    git push gaprod main
    

    Le hook post-receive s'exécute automatiquement et déploie les fichiers dans public_html.

Méthode 2 : Déploiement depuis GitHub avec GitHub Actions

Cette méthode déclenche le déploiement automatiquement à chaque push sur GitHub.

  1. Générer une clé SSH dédiée

    Sur votre ordinateur, générez une paire de clés SSH dédiée au déploiement :

    ssh-keygen -t ed25519 -C "deploy@monsite.fr" -f ~/.ssh/deploy_gaprod
    

    N'entrez pas de passphrase (le déploiement automatique ne peut pas saisir de passphrase interactivement).

  2. Ajouter la clé publique au serveur

    Copiez le contenu de ~/.ssh/deploy_gaprod.pub et ajoutez-le dans le fichier ~/.ssh/authorized_keys sur votre serveur Gaprod (via SSH ou le gestionnaire de clés cPanel).

  3. Ajouter la clé privée aux secrets GitHub

    Dans votre dépôt GitHub, allez dans SettingsSecrets and variablesActionsNew repository secret.

    Créez les secrets suivants :

    • SSH_PRIVATE_KEY : contenu de ~/.ssh/deploy_gaprod (clé privée)
    • SSH_HOST : adresse de votre serveur
    • SSH_USER : votre identifiant cPanel
    • SSH_PATH : chemin vers public_html (ex. : /home/votre_user/public_html)
  4. Créer le workflow GitHub Actions

    Dans votre dépôt, créez le fichier .github/workflows/deploy.yml :

    name: Déploiement FTP/SSH
    
    on:
      push:
        branches: [main]
    
    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
    
          - name: Configurer SSH
            run: |
              mkdir -p ~/.ssh
              echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key
              chmod 600 ~/.ssh/deploy_key
              ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
    
          - name: Déployer via rsync
            run: |
              rsync -avz --delete \
                -e "ssh -i ~/.ssh/deploy_key" \
                ./ \
                ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.SSH_PATH }}/
    

    À chaque push sur main, votre site est automatiquement déployé sur le serveur.

Attention au fichier .gitignore

Assurez-vous d'ajouter au .gitignore les fichiers qui ne doivent pas être déployés : .env, node_modules/, vendor/ (si vous les installez sur le serveur), fichiers de logs, etc.

Bonnes pratiques

Utiliser des branches pour les environnements

Travaillez avec des branches séparées pour vos environnements :

  • main → production (déploiement automatique)
  • staging → pré-production (déploiement vers un sous-domaine de test)
  • develop → développement local uniquement

Ne pas versionner les données sensibles

N'incluez jamais dans Git :

  • Fichiers .env avec mots de passe ou clés API
  • Fichiers de configuration avec identifiants BDD (wp-config.php)
  • Dossier node_modules/ ou vendor/

Maintenir un fichier .gitignore

.env
node_modules/
vendor/
wp-config.php
wp-content/uploads/
*.log

Étapes suivantes

Avec le déploiement Git configuré :

  • Configurez des environnements de staging pour tester avant de déployer en production
  • Intégrez des tests automatisés dans votre pipeline CI/CD
  • Consultez le guide Node.js sur cPanel si votre projet nécessite un build step

Besoin d'aide supplémentaire ?

Notre support technique est disponible du lundi au vendredi pour répondre à vos questions.