Lorsqu’il s’agit d’hébergement Git, vous avez un certain nombre d’options disponibles. GitHub, Gitlab et Bitbucket sont des solutions populaires, mais l’exécution de votre propre serveur Git est une alternative qui mérite d’être considérée.
La configuration d’un serveur Git vous permet de créer des dépôts privés sans les restrictions des plans gratuits des fournisseurs.
Dans ce guide, nous expliquerons comment configurer un serveur Git nu sur Linux. Cette configuration est bonne si vous avez peu de dépôts et que les collaborateurs ont des connaissances techniques. Sinon, vous devriez envisager d’installer une application git auto-hébergée comme Gitea, Gogs , ou Gitlab .
Le serveur Git peut être configuré sur n’importe quelle machine Linux distante ou même sur votre système local.
Configuration du serveur Git #
La première étape consiste à installer Git sur votre serveur.
Si vous utilisez Debian ou Ubuntu, rafraîchissez l’index des paquets locaux et installez git en exécutant les commandes suivantes en tant qu’utilisateur sudo :
sudo apt update && sudo apt install git
Pour installer le paquet git sur les serveurs CentOS, tapez :
sudo yum install git
Puis, créez un nouvel utilisateur qui gérera les dépôts Git :
sudo useradd -r -m -U -d /home/git -s /bin/bash git
Le répertoire de base de l’utilisateur est défini sur /home/git
. Tous les référentiels seront stockés sous ce répertoire. Nous n’avons pas défini de mot de passe pour l’utilisateur « git », la connexion ne sera possible qu’en utilisant les clés ssh.
Passer à l’utilisateur « git » en utilisant la commande su
:
sudo su - git
Exécuter les commandes suivantes pour créer le répertoire SSH et définir les permissions correctes :
mkdir -p ~/.ssh && chmod 0700 ~/.ssh
Créer un fichier nommé ~/.ssh/authorized_keys
qui contiendra les clés SSH des utilisateurs autorisés :
touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys
C’est tout. La configuration du serveur est terminée. Vous êtes maintenant prêt à créer votre premier dépôt Git.
Exécutez la commande suivante pour initier un nouveau dépôt vide:
git init --bare ~/projectname.git
Vous pouvez nommer le répertoire comme vous le souhaitez. L’important est de créer le dépôt sous le répertoire personnel de l’utilisateur « git ».
Initialized empty Git repository in /home/git/projectname.git/
Configuration du dépôt Git local #
Pour pouvoir pousser les modifications git locales vers le serveur Git, vous devrez ajouter la clé publique SSH de votre utilisateur local au fichier authorized_keys
de l’utilisateur « git » distant.
Si vous avez déjà une paire de clés SSH créée sur votre système local, vous pouvez afficher la clé publique en tapant :
cat ~/.ssh/id_rsa.pub
La sortie devrait ressembler à quelque chose comme ce qui suit :
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]
Si vous obtenez un message d’erreur disant No such file or directory
, cela signifie que vous n’avez pas de paire de clés SSH générée sur votre machine locale.
Pour générer une nouvelle paire de clés SSH, utilisez la commande suivante :
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Copiez la sortie de la commande cat
ci-dessus et retournez à la console du serveur Git.
Sur le serveur, ouvrez votre éditeur de texte et collez la clé publique que vous avez copiée depuis votre machine locale dans le fichier ~/.ssh/authorized_keys
:
sudo nano /home/git/.ssh/authorized_keys
L’ensemble du texte de la clé publique doit être sur une seule ligne.
Nous supposons que le paquet Git est déjà installé sur votre machine locale. Si ce n’est pas le cas, installez-le de la même manière que celle expliquée dans les sections précédentes.
Si vous avez un projet existant non versionné, naviguez jusqu’au répertoire du projet. Si vous partez de zéro, créez le répertoire du projet, et naviguez vers celui-ci :
cd /path/to/local/project
Initialiser un dépôt git :
git init .
La dernière étape consiste à ajouter le distant git à votre dépôt local :
git remote add origin git@git_server_ip:projectname.git
N’oubliez pas de remplacer git_server_ip
par le nom d’hôte ou l’adresse IP de votre serveur Git.
Pour vérifier que tout est correctement configuré, créez un fichier de test :
touch test_file
Ajoutez les modifications à la zone de staging :
git add .
Commettre les modifications :
git commit -m "descriptive message"
Pousser les modifications du référentiel local vers un référentiel distant :
git push -u origin master
Si tout est configuré correctement, la sortie devrait ressembler à ceci :
Pour ajouter un nouveau collaborateur, il suffit de copier sa clé SSH publique dans le fichier ~/.ssh/authorized_keys
de l’utilisateur « git ».
Vous pouvez utiliser les mêmes étapes pour créer de nouveaux dépôts. Il est important de noter que le dépôt distant doit exister avant que vous n’ajoutiez le git distant à votre dépôt local.
Conclusion #
Dans ce tutoriel, nous vous avons montré comment configurer votre propre serveur Git privé et créer des dépôts.