Le développement logiciel et les formations en programmation sont en plein essor. La demande pour les outils utilisés dans ce domaine suit la même tendance. Cela a créé un environnement très concurrentiel où différents outils de développement et DevOps se disputent la place de référence dans leur catégorie. Git fait partie de ces outils. Avec la généralisation du travail à distance pour les métiers liés à l'informatique, de plus en plus de personnes hébergent leurs outils sur des serveurs distants, Git inclus. Si vous souhaitez mettre en place votre propre serveur Git, vous êtes au bon endroit.
Dans cet article, je vous explique ce qu'est Git, ses avantages et ses inconvénients, avant de vous montrer les prérequis nécessaires et comment héberger votre propre serveur Git. C'est parti !
Qu'est-ce que Git ?
Git est un outil DevOps conçu pour aider les développeurs à gérer leurs projets aussi efficacement que possible. Sa fonction principale est de suivre l'évolution du code source dans le temps. Git est gratuit et open-source et reçoit des mises à jour régulières. Cela en fait l'un des outils DevOps de développement les plus accessibles et les plus fiables du marché. Chaque machine où Git est installé agit comme un dépôt complet avec son propre historique de modifications. Après près de 20 ans de développement actif et plus de 30 versions publiées, Git est actuellement en version 2.40.0, avec d'autres mises à jour à venir. Voyons maintenant quelques cas d'usage de Git pour mieux comprendre pourquoi on souhaiterait installer son propre serveur Git.
Cas d'usage de Git
Avant de se lancer dans la mise en place d'un serveur Git local, voyons rapidement les principaux cas d'usage de Git afin de comprendre pourquoi nous allons en déployer un.
Clonage de dépôt
De nombreux développeurs créent un dépôt Git sur un serveur pour suivre les projets et fichiers qui les intéressent. En quelques commandes simples, Git vous permet de répliquer votre dépôt du noyau Linux et de construire un historique des modifications clair et précis, limité aux seuls fichiers qui vous concernent. La démarche est simple et s'adapte aussi bien aux petits qu'aux grands projets. Ce processus est également connu sous le nom de "ramification», car vous créez essentiellement une nouvelle branche à partir de votre dépôt existant.
Flux de travail Git
Le flux de travail Git est un autre cas d'usage majeur que vous utiliserez dès que vous aurez configuré votre propre serveur Git. Vous pouvez utiliser votre serveur Git local pour créer deux ensembles de branches via le processus de clonage : l'une représentant votre projet (un site web, par exemple) et l'autre étant une branche de production distincte où toutes les modifications apportées par chaque développeur sont enregistrées et peuvent même être testées avant déploiement. Cette approche en plusieurs couches améliore votre efficacité et facilite considérablement le suivi du processus de développement et des modifications.
Fusion
Vous vous souvenez de la ramification de votre dépôt et du journal des modifications ? Comme son nom l'indique, la fusion est l'opération inverse. Dans la fusion, généralement considérée comme l'aspect le plus complexe de Git, l'objectif est de réinjecter les données d'une branche du dépôt dans le dépôt principal dont elle était issue à l'origine. Cette opération sert généralement à produire un rapport de projet complet regroupant l'historique de toutes les modifications apportées depuis les différentes branches, dans un dépôt unique et facile à lire. Là où la ramification évite la confusion en cours de projet, la fusion fait l'inverse : elle offre une vue d'ensemble claire en fin de projet, notamment lors du débogage.
Héberger votre propre serveur Git : avantages et inconvénients
Tout outil a ses avantages et ses inconvénients, et les connaître est indispensable avant de l'adopter. Dans cette section, je passe en revue les avantages et les inconvénients de Git, tels qu'ils s'appliquent spécifiquement à un hébergement en auto-gestion, ce qui est précisément le sujet de ce guide.
Git auto-hébergé : avantages
Aucune intervention de tiers
Avec Git en auto-hébergement, seuls vous et les personnes que vous désignez aurez accès à vos fichiers. Cela élimine toute intervention de tiers non souhaitée et vous permet de travailler sereinement. Vos données sont également bien mieux protégées, et les ressources initialement prévues pour la sécurité peuvent être allouées ailleurs.
Sécurité
En matière de sécurité, Git est aussi sûr que vous le rendez, grâce aux bonnes pratiques et à l'intégration d'outils tiers. Certes, le niveau de sécurité est moins élevé qu'avec une solution hébergée par un tiers, mais vous disposez d'une liberté quasi totale pour sécuriser votre environnement selon vos propres critères.
Dépôts illimités
Vous vous souvenez du clonage et de la ramification ? Il n'y a aucune limite au nombre de dépôts que vous pouvez créer avec Git. Cela le rend particulièrement adapté aux projets de grande envergure où chaque branche de développement a besoin de son propre dépôt. C'est également idéal pour les projets avec des fichiers volumineux, comme les assets 3D, ou lorsque vous travaillez avec Unity.
Git auto-hébergé : Inconvénients
Une charge de gestion élevée
Les dépôts Git peuvent rapidement devenir incontrôlables. Si vous décidez de configurer un serveur Git sur votre propre plateforme, gérer l'ensemble des branches et des métadonnées peut vite tourner au cauchemar. Vous devez donc soit faire preuve d'une grande rigueur, soit confier cette tâche à un développeur expérimenté.
Une courbe d'apprentissage exigeante
Héberger Git, c'est une chose. Le maîtriser et faire tourner votre serveur Git local en est une autre. Git a l'une des courbes d'apprentissage les plus élevées parmi les outils DevOps basés sur des dépôts. Attendez-vous à y consacrer beaucoup de temps, ou à déléguer.
Pas de GUI ni de support Windows
Vous souhaitiez configurer un serveur Git sur Windows ? Ou faire tourner votre serveur Git avec une GUI ? Mauvaise nouvelle. Vous êtes limité aux systèmes d'exploitation dont le noyau de base est Linux, et aucune GUI n'est disponible pour simplifier les choses. Si vous voulez installer un serveur Git en auto-hébergement, mieux vaut connaître les bases du développement.
Une approche dépassée
Par tous les critères possibles, utiliser Git sur un serveur auto-hébergé apparaît comme une approche dépassée, supplantée par des méthodes plus efficaces. Les meilleures alternatives seraient d'utiliser GitLab. Avant de vous lancer dans la gestion de votre propre serveur Git, consultez GitLab aussi !
Prérequis pour installer un serveur Git
Voici les prérequis pour installer et héberger votre propre serveur Git. Deux composants suffisent : un serveur et une instance Git, avec quelques notions de configuration pour mener le processus à bien.
Serveur Git
Pour le serveur, plusieurs options s'offrent à vous : utiliser un autre PC, faire appel à des serveurs dédiés chez des fournisseurs classiques, ou opter pour une approche plus directe avec un fournisseur de VPS cloud (serveur privé virtuel). Avec un VPS, vous gérez le serveur et administrez l'instance Git simultanément. Notez que votre serveur doit tourner sous une distribution Linux pour pouvoir y installer un serveur Git. Cloudzy propose un large choix de Linux VPS services incluant plus de 10 distributions Linux reconnues, comme Ubuntu, Debian, CentOS, Kali et OpenSUSE. À partir de 4,95 $/mois, obtenez un serveur Linux fiable, proche de chez vous, pour une connexion optimale et hébergez votre propre serveur Git en toute autonomie.
Obtenez un Linux VPS économique ou premium pour héberger votre site web ou votre bureau à distance, au meilleur prix du marché. VPS fonctionne sur Linux KVM pour une meilleure efficacité, sur du matériel performant avec stockage NVMe SSD pour des vitesses accrues.
Lire la suiteInstance Git
L'installation du serveur Git est simple et s'effectue automatiquement lors du processus de configuration. Comme mentionné, Git est open-source et entièrement gratuit. C'est ce qui le distingue des autres outils de gestion de dépôts orientés développement. Maintenant que les prérequis sont en place, passons directement au guide pas à pas pour installer un serveur Git sur votre serveur Linux.
Installer un serveur Git sur Linux (guide pas à pas)
Étape 1 : Télécharger et installer Git
Voici la première étape de l'installation du serveur Git. Dans le terminal de votre distribution Linux, entrez la commande suivante pour lancer le téléchargement de Git :
Distributions basées sur Ubuntu/Debian :
sudo apt install git
Distributions basées sur Arch :
sudo pacman -S git
Distributions basées sur RHEL :
sudo dnf install git
Cette commande télécharge et installe Git sur votre serveur Linux. Attendez que le processus se termine.
Étape 2 : Créer et configurer le compte Git
Si vous utilisez un serveur local sur un autre poste, démarrez-le. Si vous avez un VPS, connectez-vous à votre serveur Linux à distance via SSH ou RDP. Nous allons maintenant configurer le serveur Git pour un accès distant, en créant un compte Git dédié avec la commande suivante :
ssh username@address
sudo useradd git
Puis entrez cette commande pour basculer vers le compte nouvellement créé :
su git
Cette étape vise avant tout à sécuriser votre serveur Git local. Avec ce compte, vous êtes administrateur du serveur. Vous pouvez organiser les futurs utilisateurs en groupes, avec des permissions et des niveaux d'accès définis.
Étape 3 : Créer les répertoires SSH et Créer un dépôt Git sur le serveur
L'étape suivante consiste à créer un répertoire SSH dédié pour stocker vos clés publiques et créer un dépôt Git sur le serveur avec des niveaux d'accès et des couches de sécurité supplémentaires. Commencez par entrer la commande suivante :
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
Une fois l'accès restreint grâce à cette commande, entrez la ligne suivante pour vous assurer que vos clés SSH sont stockées en toute sécurité dans un authorized_keys dans lequel vous seul pouvez accéder (n'exécutez cette commande que si vous n'avez PAS de fichier id_rsa.pub fichier) :
cd .ssh
ssh-keygen -t rsa
cat id_rsa.pub
Enfin, copiez la clé publique SSH que vous avez créée pour configurer une nouvelle connexion SSH avec une sécurité renforcée vers votre serveur Git local :
cd .ssh
vi authorized_keys
Étape 4 : Créer un répertoire principal
Sur votre serveur Linux, créez un nouveau répertoire pour stocker tous les dépôts que Git utilisera dans vos projets futurs. Vous pouvez en apprendre davantage sur la gestion de vos dépôts Git. Entrez cette commande :
mkdir directory_name
Étape 5 : Ajoutez votre projet !
Votre serveur Git est maintenant opérationnel. L'installation et la configuration du serveur Git se sont terminées avec succès. Il ne reste plus qu'à ajouter des projets supplémentaires avec la commande suivante :
cd parent_directory
mkdir new_project.git
Entrez ensuite cette commande pour ajouter l'origine distante à votre ordinateur local :
git init --bare
git remote add origin name git@address:new_project.git
Enfin, effectuez un Git push pour vérifier que tout fonctionne correctement :
touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git
Félicitations, vous avez réussi à héberger Git et à créer un dépôt Git sur votre serveur.
Questions fréquemment posées
Peut-on héberger Git sans serveur ?
Non. Quelle que soit la nature de votre serveur, vous aurez besoin d'un équipement pour jouer ce rôle. Vous pouvez utiliser GitHub comme serveur cloud pour vos dépôts ou consulter nos VPS offres, ou utiliser un autre service d'hébergement tiers comme serveur.
Existe-t-il un moyen d'installer un serveur Git avec une interface graphique ?
Oui. Bien que Git lui-même ne prenne pas en charge les interfaces graphiques, une version autonome appelée « Git GUI » est disponible pour ceux qui ne peuvent pas s'en passer.
Git est-il payant ?
Non. Git est et restera toujours un logiciel libre et open source, conformément à la volonté de ses créateurs et éditeurs d'origine. Vous pouvez l'utiliser comme base pour vos propres développements, et dans tous les cas, le programme reste gratuit.
Pourquoi héberger votre propre serveur Git ?
Si vous travaillez sur un petit projet avec peu de dépôts, l'auto-hébergement offre bien plus de confidentialité et de sécurité. C'est la principale raison de ce choix. En revanche, à mesure que vos projets grossissent et que le nombre de dépôts augmente, l'auto-hébergement commence à montrer ses limites.