Installer un GIT sur un hébergement mutualisé 1And1

Serveur Git

Tout le monde connait l’importance d’effectuer régulièrement des sauvegardes.

Lorsque l’on travaille seul sur un projet, on peut se passer d’outils spécifiques dédiés au versioning et à la sauvegarde, en effectuant régulièrement des backups manuels (vive 7zip :p).

C’est une autre histoire lorsqu’on travaille à plusieurs sur le même projet: plusieurs personnes doivent pouvoir accéder et travailler sur les même ressources simultanément.

Heureusement des outils tels que GIT permettent de versionner et d’assurer le suivi d’un projet collaboratif.

Il existe de nombreuses plateformes vous proposant d’utiliser leur propre plateforme d’intégration continue (GIT illustre parfaitement une plateforme de type Continuous Integration). Mais ces plateformes sont souvent payantes et imposent un certain nombre de contraintes.

C’est pourquoi il peut être intéressant de monter son propre serveur GIT afin de ne pas avoir de restrictions et de réduire les coûts.

Nous allons voir comment installé un serveur GIT sur un hébergement mutualisé.

Choisir un hébergement pour installer GIT

GIT est une plateforme de versioning très bien conçue qui peut être installée sur un serveur mutualisé comme sur un serveur dédié.

Il existe même une distribution dédiée pour être installée sur un RaspBerry Pi!

Le choix de l’hébergement doit se faire en fonction de vos besoins:

  • nombre de projets à versionner et héberger
  • nombre d’accès aux projets
  • nombre de ressources disponibles
  • budget de fonctionnement

Dans mon cas, mes besoins sont simples: héberger une dizaine de projets sur lesquels travaillent 7 développeurs et 2 graphistes, tous géographiquement distants.

J’ai donc choisi d’installer un serveur GIT sur un hébergement linux mutualisé de chez 1And1 disponible ici, et cela pour plusieurs raisons.

Tout d’abord, mon serveur doit être disponible 24h/24, il me faut donc un hébergement de qualité. Pas la peine d’avoir un hébergement dédié plus onéreux, un serveur linux mutualisé fera l’affaire et réduira les coûts.

N’ayant jamais eu de problèmes ni d’indisponibilité sur les divers mutualisés et dédiés loués chez 1And1, j’ai choisi de louer le serveur mutualisé pour installer GIT chez eux.

Les tarifs de 1And1 sont super compétitifs sur les serveurs mutualisés (quelques dizaines d’euros par an tout au plus) et les services offerts sont intéressants: bases de données MySQL, accès SSH, FTP, coupons Google (çà peut toujours servir), haute disponibilité, backup, …

En plus les mutualisés de chez 1And1 ne sont pas limité en ressources et sont installés sur des monstres de serveurs, çà m’assure donc qu’il n’y aura aucun problème de ressources (il n’y a rien de pire qu’une machine qui se noie car pas assez de ram…)

Concernant la distribution j’ai opté pour linux car c’est moins cher (faut rentrer dans le budget :p) et cela me donnera accès à un serveur SSH nécessaire pour pouvoir installer la plateforme de versioning GIT.

Installation de GIT

Pour procéder à l’installation de GIT, il faut vous connecter en SSH sur votre serveur mutualisé (pour çà vous utilisez putty). L’avantage chez 1And1 est que leur hébergement mutualisé offre un accès SSH et que le client GIT est déjà installé.

Si vous utilisez un autre hébergeur, pensez à installer le client GIT s’il n’est pas disponible.

1. Création du premier dépôt GIT

Une fois connecté via SSH, nous allons instancier un dépôt GIT “bare”. “bare” signifie que ce dépôt est vide et qu’aucune copie ne sera présente sur le serveur.

# On instancie un repository GIT vide dans /home/zem/repositories/projet.git
cd /home/zem/
mkdir repositories
cd repositories
git init --bare projet.git

2. Clonage du projet

Maintenant que notre serveur GIT est instancié, on va copier le projet sur lequel on souhaite travailler. Cette étape est appelée clonage du projet.

git clone ssh://username@zem.fr/home/zem/repositories/projet.git

 3. Edition du contenu

Il ne nous reste plus qu’à ajouter ou modifier du contenu. Dans l’exemple suivant, on crée un fichier index.html:

echo "Exemple pour tester GIT" > index.html
git add index.html
git commit -am "Ici on ajoute un commentaire comme: creation d'une page"

4. Publication des modifications

Une fois les ajouts (ou modifications) effectués, il ne nous reste plus qu’à les publier sur le serveur GIT:

git push origin master

Notre projet contient désormais une page index.html qui est versionnée. Seules les personnes ayant un accès SSH peuvent contribuer à la publication (modification) de ce projet. Nous allons donc voir comment faire pour rendre ce projet accessible à tous.

5. Créer un accès GIT public ReadOnly

Cette étape est optionnelle et permet d’autoriser un accès public en mode lecture uniquement (readonly).

cd /home/zem/
 
# Activation de la publication automatique
mv projet.git/hooks/post-update.sample projet.git/hooks/post-update
chmod +x projet.git/hooks/post-update
 
# Publication dans le dossier web "git"
mkdir -p www/git
cd www/git
ln -s ../../projet.git ./

 

Le dépôt est alors en libre accès et sera accessible à tous à l’addresse suivante: http://www.votredomaine.fr/git/projet.git.

Pour révoquer l’accès, il vous suffira de supprimer le lien dans www/git/projet.git.

Veuillez noter que si vous souhaitez sécuriser un minimum l’accès au serveur GIT public, il vous suffira de mettre une authentification type “htaccess”.

Conclusion sur GIT

C’est la première fois que j’utilise GIT en tant que serveur de versioning et je le trouve simple à mettre en œuvre, d’autant plus qu’un simple hébergeur mutualisé linux chez 1&1 suffit pour son installation.

Nous n’avons vu que la partie de création d’un nouveau projet versionné mais GIT est bien plus puissant que çà. N’hésitez pas à consulter la documentation officielle si vous souhaitez aller plus loin. Il n’est pas improbable que je fasse un nouveau ticket concernant l’utilisation avancée de GIT :-).

Leave a Reply

Your email address will not be published. Required fields are marked *