Comment utiliser Git avec votre Hébergement Web Gandi
Vous pouvez utiliser le service git de l’hébergement web pour télécharger votre code source et déployer votre application, y compris l’installation des dépendances, sur votre Hébergement Web Gandi.
Le Panneau de contrôle de votre hébergement dispose également d’une interface graphique basée sur le Web pour parcourir votre dépôt git.
Apprenez tout sur l’utilisation du service git sur Hébergement Web dans cet article.
Conditions préalables
Vous aurez besoin de git et d’un client SSH installé sur votre ordinateur pour utiliser le service git.
Aperçu
Le service git de l’hébergement web héberge des dépôts git distants pour vous. De plus, il vous permet de construire et de déployer votre application sur votre hébergement, en installant toutes les dépendances que vous avez déclarées.
Sur les hébergements PHP, chaque Site possède son propre dépôt git indépendant, nommé d’après le domaine qui correspond au site (ex : example.com.git
). Sur les hébergements Node.js et Python, il n’y a qu’un seul dépôt git nommé default.git
.
Après avoir ajouté le dépôt en tant que git remote
à votre répertoire de projet, vous pourrez pousser votre code vers le service git. Par défaut, le service s’attendra à ce que vous utilisiez la branche « master », mais vous pouvez pousser la branche ou le tag que vous souhaitez.
Vous pouvez aussi git clone
un dépôt de notre service git et utiliser toutes les autres fonctionnalités que vous attendez d’un serveur git distant. Vous pouvez vraiment l’utiliser comme système de contrôle de version.
Une fois que les fichiers ont été poussés vers le service, ils deviennent disponibles pour le déploiement avec la commande deploy {repository}.git
, qui est exécutable via SSH à la même adresse que le service git.
La commande deploy
construira votre application et copiera les fichiers d’application dans votre hébergement. Les dépendances applicatives peuvent être déclarées à l’aide des gestionnaires de paquets pris en charge pour chaque type d’hébergement et seront installées dans le cadre du processus de déploiement :
Composer pour PHP, NPM pour Node.js, pip pour Python.
Toutes ces étapes sont détaillées dans les sections ci-dessous.
Adresse service git
Dans les exemples qui suivent, l’URL du service git est représentée par une variable de base $GIT_URL
. Vous trouverez votre URL dans votre page de gestion d’hébergement.
Sur les hébergements PHP, vous le trouverez dans la section Sites de la page de chaque Site.
Sur les autre types d’hébergements, vous le trouverez dans la section Deploy de la page de gestion de votre hébergement.
Le format de l’URL du service git est toujours le suivant :
GIT_URL="ssh+git://{hebergement_id}@git.{datacenter_id}.gpaas.net"
Authentification
Vous pouvez vous authentifier sur le service git en utilisant un jeton de déploiement comme mot de passe (comportement par défaut) ou bien avec des clés publiques SSH.
Si vous choisissez d’utiliser un jeton de déploiement, vous devrez fournir votre jeton comme mot de passe chaque fois que vous interagissez avec le service git distant, par exemple pour exécuter les commandes git clone
, git push
ou deploy
.
Lorsque vous utilisez l’authentification par clé SSH, votre système devrait être capable de fournir la bonne clé publique au service git chaque fois que cela est nécessaire. C’est le moyen recommandé pour s’authentifier, car il est pratique, sécurisé et vous permet d’écrire des scripts automatisés.
Créer un dépôt
Voici quelques exemples pour créer votre dépôt pour tous les types d’hébergement : Les hébergements PHP, où chaque site a son propre dépôt, et les autres hébergements, où il n’existe qu’un dépôt par défaut.
Une fois le dépôt créé, vous pourrez le voir dans le Panneau de contrôle de votre hébergement en utilisant gitweb
, une interface utilisateur graphique web open source (vous devrez redémarrer votre hébergement après avoir créé un référentiel pour la première fois sur votre hébergement).
Exemple pour une hébergement PHP
Cet exemple vous montre comment créer un dépôt localement pour télécharger du code vers une hébergement PHP. Il utilise un Site appelé example.com
. Vous pouvez simplement remplacer le domaine du Site par un de vos domaines, y compris le domaine de test qui a été automatiquement créé pour vous.
$ mkdir example.com
$ cd example.com
$ git init
$ git remote add gandi $GIT_URL/example.com.git
$ mkdir htdocs
$ echo "Hello world" > htdocs/index.html
$ git add htdocs
$ git commit -m "Première version de index.html"
$ git push gandi main
Sur les hébergements PHP, la racine de votre dépôt n’est pas le répertoire utilisé par le serveur web Apache pour servir les fichiers aux visiteurs web. Par conséquent, pour que vos fichiers soient accessibles via le web, vous devez les placer dans le répertoire htdocs/
, à créer à la racine de votre dépôt.
Exemple pour d’autres type d’hébergements
Cet exemple vous montre comment créer un référentiel sur un hébergement Node.js ou Python en utilisant un fichier texte fictif. Veuillez vous référer à leurs pages de documentation respectives pour apprendre à structurer vos fichiers de projet.
$ mkdir monapp
$ cd monapp
$ git init
$ git remote add gandi $GIT_URL/default.git
$ echo "Creating my repository" > test.txt
$ git add test.txt
$ git commit -m "Ajout d'un fichier texte"
$ git push gandi main
Cloner un dépôt
Copiez un dépôt distant sur votre ordinateur à l’aide de la commande git clone
:
$ git clone $GIT_URL/{repository}.git
Par défaut, la commande git clone
créera un répertoire portant le même nom (ex : example.com
ou default
) et y copiera les fichiers. Si vous voulez spécifier un autre nom pour le répertoire local, sans interférer avec les paramètres de git, ajoutez-le simplement à la commande :
$ git clone $GIT_URL/{repository}.git mon_app
Déployer votre code
Cette commande effectuera un git checkout dans le répertoire cible de votre hébergement. Il installera également toutes les dépendances en utilisant le gestionnaire de paquetages : Composer pour PHP, NPM pour Node.js et pip pour Python.
$ ssh {hébergement_id}@git.{datacenter_id}.gpaas.net 'deploy {repository}.git'
Rappelez-vous que le conteneur {repository}
correspond à l’adresse d’un Site sur les hébergements PHP (ex : example.com
), mais est toujours par défaut sur les autres types d’hébergements.
La commande deploy
suppose que vous voulez déployer le code vérifié dans la branche master
de votre dépôt. Si vous souhaitez déployer une autre branche ou balise, par exemple une branche production
, vous pouvez l’ajouter à la fin de la commande :
$ ssh {hébergement_id}@git.{datacenter_id}.gpaas.net 'deploy {repository}.git production'
Note
L’utilisation des sous-modules Git n’est pas prise en charge pour le moment.
Traitement des dossiers existants
Tous les répertoires déjà présents dans le répertoire de déploiement cible doivent avoir au moins le même accès en écriture de l’utilisateur, afin que les fichiers puissent être remplacés pendant le déploiement (c’est-à-dire chmod 644
). Cette action doit être exécutée si vous rencontrez une erreur comme :
error: unable to unlink old 'htdocs/sites/default/settings.php' (Permission denied)
De plus, vous pouvez vouloir nettoyer votre répertoire cible. La commande suivante exécutera une opération git clean
sur votre répertoire et supprimera tous les fichiers qui ne sont pas suivis par git ou qui ne sont pas répertoriés dans le fichier .gitignore
de votre dépot :
$ ssh {hébergement_id}@git.{datacenter_id}.gpaas.net 'clean {repository}.git'
Attention
Gardez à l’esprit que si votre application web a des répertoires de téléchargement d’utilisateurs, des fichiers cachés ou des fichiers de configuration non tracés que vous voulez garder sur le serveur (ex. configurations spécifiques à l’environnement / clés secrètes), ceux-ci doivent être ajoutés au fichier .gitignore
de votre dépôt avant d’exécuter la commande clean.
Supprimer un dépôt
Pour supprimer complètement un référentiel de votre hébergement, supprimez son répertoire via sFTP ou la console d’urgence.
Le chemin du répertoire via sFTP ressemble à ceci :
/lamp0/vcs/git/{repository}.git
Via la console :
/srv/data/vcs/git/{repository}.git
Utilisateurs Windows
Les utilisateurs de Windows peuvent utiliser le client git msysgit, pour lequel un tutoriel tiers est disponible sur http://guides.beanstalkapp.com/version-control/git-on-windows.html
SSH Key Fingerprint
L’empreinte de la clé SSH pour le git endpoint est :
SHA256:BvMQxzqvnTLvYLa0s+11xy45lQLXxGmXItHtKGXg5yA
MD5:f1:93:f8:eb:5e:b1:90:e7:1d:5e:39:d5:34:43:9f:cb
Comment utiliser Git avec votre Hébergement Web Gandi¶
Vous pouvez utiliser le service git de l’hébergement web pour télécharger votre code source et déployer votre application, y compris l’installation des dépendances, sur votre Hébergement Web Gandi.
Le Panneau de contrôle de votre hébergement dispose également d’une interface graphique basée sur le Web pour parcourir votre dépôt git.
Apprenez tout sur l’utilisation du service git sur Hébergement Web dans cet article.
Conditions préalables¶
Vous aurez besoin de git et d’un client SSH installé sur votre ordinateur pour utiliser le service git.
Aperçu¶
Le service git de l’hébergement web héberge des dépôts git distants pour vous. De plus, il vous permet de construire et de déployer votre application sur votre hébergement, en installant toutes les dépendances que vous avez déclarées.
Sur les hébergements PHP, chaque Site possède son propre dépôt git indépendant, nommé d’après le domaine qui correspond au site (ex :
example.com.git
). Sur les hébergements Node.js et Python, il n’y a qu’un seul dépôt git nommédefault.git
.Après avoir ajouté le dépôt en tant que
git remote
à votre répertoire de projet, vous pourrez pousser votre code vers le service git. Par défaut, le service s’attendra à ce que vous utilisiez la branche « master », mais vous pouvez pousser la branche ou le tag que vous souhaitez.Vous pouvez aussi
git clone
un dépôt de notre service git et utiliser toutes les autres fonctionnalités que vous attendez d’un serveur git distant. Vous pouvez vraiment l’utiliser comme système de contrôle de version.Une fois que les fichiers ont été poussés vers le service, ils deviennent disponibles pour le déploiement avec la commande
deploy {repository}.git
, qui est exécutable via SSH à la même adresse que le service git.La commande
deploy
construira votre application et copiera les fichiers d’application dans votre hébergement. Les dépendances applicatives peuvent être déclarées à l’aide des gestionnaires de paquets pris en charge pour chaque type d’hébergement et seront installées dans le cadre du processus de déploiement : Composer pour PHP, NPM pour Node.js, pip pour Python.Toutes ces étapes sont détaillées dans les sections ci-dessous.
Adresse service git¶
Dans les exemples qui suivent, l’URL du service git est représentée par une variable de base
$GIT_URL
. Vous trouverez votre URL dans votre page de gestion d’hébergement.Sur les hébergements PHP, vous le trouverez dans la section Sites de la page de chaque Site.
Sur les autre types d’hébergements, vous le trouverez dans la section Deploy de la page de gestion de votre hébergement.
Le format de l’URL du service git est toujours le suivant :
Authentification¶
Vous pouvez vous authentifier sur le service git en utilisant un jeton de déploiement comme mot de passe (comportement par défaut) ou bien avec des clés publiques SSH.
Si vous choisissez d’utiliser un jeton de déploiement, vous devrez fournir votre jeton comme mot de passe chaque fois que vous interagissez avec le service git distant, par exemple pour exécuter les commandes
git clone
,git push
oudeploy
.Lorsque vous utilisez l’authentification par clé SSH, votre système devrait être capable de fournir la bonne clé publique au service git chaque fois que cela est nécessaire. C’est le moyen recommandé pour s’authentifier, car il est pratique, sécurisé et vous permet d’écrire des scripts automatisés.
Créer un dépôt¶
Voici quelques exemples pour créer votre dépôt pour tous les types d’hébergement : Les hébergements PHP, où chaque site a son propre dépôt, et les autres hébergements, où il n’existe qu’un dépôt par défaut.
Une fois le dépôt créé, vous pourrez le voir dans le Panneau de contrôle de votre hébergement en utilisant
gitweb
, une interface utilisateur graphique web open source (vous devrez redémarrer votre hébergement après avoir créé un référentiel pour la première fois sur votre hébergement).Exemple pour une hébergement PHP¶
Cet exemple vous montre comment créer un dépôt localement pour télécharger du code vers une hébergement PHP. Il utilise un Site appelé
example.com
. Vous pouvez simplement remplacer le domaine du Site par un de vos domaines, y compris le domaine de test qui a été automatiquement créé pour vous.Sur les hébergements PHP, la racine de votre dépôt n’est pas le répertoire utilisé par le serveur web Apache pour servir les fichiers aux visiteurs web. Par conséquent, pour que vos fichiers soient accessibles via le web, vous devez les placer dans le répertoire
htdocs/
, à créer à la racine de votre dépôt.Exemple pour d’autres type d’hébergements¶
Cet exemple vous montre comment créer un référentiel sur un hébergement Node.js ou Python en utilisant un fichier texte fictif. Veuillez vous référer à leurs pages de documentation respectives pour apprendre à structurer vos fichiers de projet.
Cloner un dépôt¶
Copiez un dépôt distant sur votre ordinateur à l’aide de la commande
git clone
:Par défaut, la commande
git clone
créera un répertoire portant le même nom (ex :example.com
oudefault
) et y copiera les fichiers. Si vous voulez spécifier un autre nom pour le répertoire local, sans interférer avec les paramètres de git, ajoutez-le simplement à la commande :Déployer votre code¶
Cette commande effectuera un git checkout dans le répertoire cible de votre hébergement. Il installera également toutes les dépendances en utilisant le gestionnaire de paquetages : Composer pour PHP, NPM pour Node.js et pip pour Python.
Rappelez-vous que le conteneur
{repository}
correspond à l’adresse d’un Site sur les hébergements PHP (ex :example.com
), mais est toujours par défaut sur les autres types d’hébergements.La commande
deploy
suppose que vous voulez déployer le code vérifié dans la branchemaster
de votre dépôt. Si vous souhaitez déployer une autre branche ou balise, par exemple une brancheproduction
, vous pouvez l’ajouter à la fin de la commande :Note
L’utilisation des sous-modules Git n’est pas prise en charge pour le moment.
Traitement des dossiers existants¶
Tous les répertoires déjà présents dans le répertoire de déploiement cible doivent avoir au moins le même accès en écriture de l’utilisateur, afin que les fichiers puissent être remplacés pendant le déploiement (c’est-à-dire
chmod 644
). Cette action doit être exécutée si vous rencontrez une erreur comme :De plus, vous pouvez vouloir nettoyer votre répertoire cible. La commande suivante exécutera une opération
git clean
sur votre répertoire et supprimera tous les fichiers qui ne sont pas suivis par git ou qui ne sont pas répertoriés dans le fichier.gitignore
de votre dépot :Attention
Gardez à l’esprit que si votre application web a des répertoires de téléchargement d’utilisateurs, des fichiers cachés ou des fichiers de configuration non tracés que vous voulez garder sur le serveur (ex. configurations spécifiques à l’environnement / clés secrètes), ceux-ci doivent être ajoutés au fichier
.gitignore
de votre dépôt avant d’exécuter la commande clean.Supprimer un dépôt¶
Pour supprimer complètement un référentiel de votre hébergement, supprimez son répertoire via sFTP ou la console d’urgence.
Le chemin du répertoire via sFTP ressemble à ceci :
Via la console :
Utilisateurs Windows¶
Les utilisateurs de Windows peuvent utiliser le client git msysgit, pour lequel un tutoriel tiers est disponible sur http://guides.beanstalkapp.com/version-control/git-on-windows.html
SSH Key Fingerprint¶
L’empreinte de la clé SSH pour le git endpoint est :
Ressources¶