Le module Git Version Control de cPanel permet de livrer rapidement votre code sur l’hébergement (pull depuis GitHub/GitLab/Bitbucket ou depuis votre dépôt privé), avec ou sans automatisation. Ce guide décrit les prérequis, la création du dépôt côté cPanel, la configuration du déploiement et les bonnes pratiques.
Prérequis
- Un compte cPanel actif et l’accès à Git Version Control.
- Un dépôt Git distant (GitHub, GitLab, Bitbucket ou serveur privé) ou un dépôt local.
- URL du dépôt en HTTPS (recommandé) ou SSH. Pour l’authentification SSH, ajoutez votre clé publique dans cPanel > SSH Access > Manage SSH Keys. (L’accès SSH interactif peut nécessiter une activation préalable selon l’offre.)
- Connaître le document root du site (ex.
/public_html
ou/public_html/mon-site
).
Créer (ou cloner) un dépôt dans cPanel
- Connectez-vous à cPanel > Git Version Control.
- Cliquez sur Create.
- Repository Path : choisissez un chemin hors du document root si vous prévoyez un déploiement (ex.
/home/USER/repos/mon-site.git
ou/home/USER/repos/mon-site
). - Clone URL : renseignez l’URL de votre dépôt (HTTPS ou SSH). Laissez vide pour créer un dépôt vierge.
- Validez : cPanel clone (ou initialise) le dépôt et l’ajoute à la liste.
Configurer le dossier de déploiement
Deux approches sont possibles :
- Approche A (simple) : le dépôt est directement dans le document root du site (ex.
/public_html
). Chaque pull met à jour le site en place. - Approche B (recommandée) : le dépôt vit hors du document root (ex.
/home/USER/repos/mon-site
) et cPanel déploie dans un dossier public (ex./public_html
) via un script (.cpanel.yml
). Cela évite d’exposer vos fichiers Git et permet d’exécuter des étapes (build, purge cache…).
Déploiement manuel depuis cPanel
- Dans Git Version Control, ouvrez votre dépôt.
- Cliquez sur Pull or Deploy puis sur Update from Remote pour récupérer la dernière version de la branche suivie.
- Si vous utilisez un fichier
.cpanel.yml
(voir plus bas), le bouton Deploy HEAD exécute le processus de déploiement.
Déploiement automatique avec .cpanel.yml
Placez un fichier .cpanel.yml
à la racine du dépôt pour définir les étapes de déploiement. Exemple minimal pour synchroniser les fichiers de dist/
vers /public_html
:
---
deployment:
tasks:
- export DEPLOY_PATH=/home/USER/public_html
- /bin/find $DEPLOY_PATH -mindepth 1 -maxdepth 1 -not -name ".well-known" -exec /bin/rm -rf {} \;
- /bin/cp -a dist/. $DEPLOY_PATH/
Adaptez USER
et les chemins à votre compte. Ajoutez des étapes selon vos besoins (vider un cache applicatif, mettre un mode maintenance, etc.). Évitez les tâches lourdes (build npm long, conversions vidéo…) sur un hébergement mutualisé.
Exemples de tâches utiles
# Mettre le site en maintenance (ex. WordPress)
- /bin/touch /home/USER/public_html/.maintenance
# Purger un cache applicatif (ex. Symfony)
- /bin/rm -rf /home/USER/public_html/var/cache/*
# Mettre à jour les dépendances PHP (si Composer est disponible)
- /bin/php -d detect_unicode=0 /opt/cpanel/composer/bin/composer install --no-dev --optimize-autoloader -d /home/USER/repos/mon-site
# Relancer crons côté app (si nécessaire)
- /usr/local/bin/php /home/USER/public_html/artisan optimize
# Lever la maintenance
- /bin/rm -f /home/USER/public_html/.maintenance
Déclencher un déploiement depuis la plateforme Git (webhook)
- Dans cPanel > Git Version Control > votre dépôt, copiez l’URL de Deployment (si proposée) ou configurez un Webhook côté GitHub/GitLab vers un script de déploiement.
- Sur GitHub : Settings > Webhooks > Add webhook, collez l’URL, choisissez l’événement (push) et validez.
- À chaque push sur la branche cible (ex.
main
), cPanel tirera les modifications et exécutera.cpanel.yml
.
Authentification : HTTPS vs SSH
- HTTPS : simple et compatible partout. Utilisez un token personnel (PAT) si la plateforme le requiert et enregistrez-le lors du premier pull.
- SSH : évite la saisie d’identifiants. Importez votre clé publique dans cPanel > SSH Access, autorisez-la, puis ajoutez la clé privée au dépôt distant (GitHub/GitLab). L’accès SSH interactif peut être restreint selon l’offre.
Organisation des branches
- production : branche déployée sur le site public.
- staging : préproduction, connectée à un sous-domaine (ex.
staging.mondomaine.com
). - develop : intégration continue, jamais déployée en public.
Bonnes pratiques en mutualisé
- Évitez de committer
vendor/
,node_modules/
et les fichiers volumineux. Utilisez.gitignore
. - Privilégiez des builds en local/CI et déployez uniquement le résultat (ex.
dist/
). Le mutualisé n’est pas fait pour des builds lourds. - Ne versionnez pas les secrets : utilisez des variables ou des fichiers de config hors webroot.
- Testez sur staging avant la production, et archivez une sauvegarde avant chaque déploiement.
Dépannage
- Erreur lors du pull : vérifiez l’URL du remote, les droits d’accès (token/clé), et la branche suivie.
- .cpanel.yml ignoré : confirmez qu’il est à la racine du dépôt et que la section
deployment:
est correctement indentée. - Fichiers Git visibles en public : ne placez pas le dépôt dans
/public_html
, ou bloquez l’accès à/.git
via.htaccess
. - Ressources dépassées : allégez les tâches, déplacez le build hors serveur, ou cadrez la fréquence des déploiements.
En résumé
Avec Git Version Control, cPanel permet d’automatiser un flux de déploiement fiable : vous poussez votre code, cPanel le récupère et l’installe selon les étapes définies dans .cpanel.yml
. En respectant quelques bonnes pratiques (webroot séparé, secrets protégés, builds hors serveur), vous obtenez un déploiement propre, rapide et reproductible.