Installer son propre serveur Git pour remplacer GitHub

GitHub est absolument brillant et je vous conseil largement de l’utiliser. Pour autant il arrive de travailler sur projet beaucoup plus perso et de vouloir un repo privé. Même si GitHub n’est vraiment pas cher, il se peut qu’on est pas envie de payer pour un si petit projet. Puisqu’on a un serveur à la maison, autant s’en servir!

Git est un logiciel de gestion de versions décentralisé. C’est un logiciel libre créé par Linus Torvalds, le créateur du noyau Linux. [...] Git ne repose pas sur un serveur centralisé. C’est un outil bas niveau, qui se veut simple et très performant, dont la principale tâche et de gérer l’évolution du contenu d’une arborescence.

Wikipedia

Note: J’ai installé le serveur git sur mon serveur perso, écris ce tuto et suivi étape par étape pour le réinstaller sur mon serveur de prod.

1. Installer Git

On commence par installer les bons paquets

sudo apt-get install git-core

2. Créer un nouvel utilisateur Unix: Git

On créé un utilisateur local pour git, on le nomme simplement Git mais on place le dossier home dans /var/git. Le dossier localhost est dans /var/www, il s’agit juste de placer son code source dans le dossier /var pour suivre un peu les règles, mais rien d’obligatoire.

sudo useradd -m -d /var/git -s /bin/bash -c 'Git' git

3. Paramétrer SSH

On doit ajouter toutes les clefs ssh autorisées à se connecter. J’ai donc repris celle utilisé pour github: copiez votre id_rsa.pub sur le serveur puis:

sudo mkdir /var/git/.ssh
sudo cp id_rsa.pub /var/git/.ssh/authorized_keys

Si vous n’avez pas de id_rsa.pub, créez un fichier vide avec la commande touch.

sudo mkdir /var/git/.ssh
sudo touch /var/git/.ssh/authorized_keys

Copiez ensuite toutes les clefs SSH des gens qui auront accès au serveur. Une par ligne.

Il faut ensuite changer les droits sur ces fichiers

sudo chown -R git:git /var/git/.ssh
sudo chmod -R 600 /var/git/.ssh/

Je vous conseil de lire la page Github: Set up Git.

4. Initialiser un premier repo

Un nouveau repository

Si vous commencez sans aucune source:

cd /var/git
mkdir mynewrepo.git
cd mynewrepo.git
git --bare init

A partir d’un repo Github

cd /var/git
mkdir mynewrepo.git
cd mynewrepo.git
git --bare init
git --bare fetch https://username@github.com/username/repository.git master:master

Voila votre serveur Git est prêt !

En cas d’erreur

Si vous obtenez l’erreur suivante lors d’un push:

No refs in common and none specified; doing nothing.

Il suffit de d’ajouter la branche, notamment ‘master’

$ git push origin master

Sources:

1 Comment Installer son propre serveur Git pour remplacer GitHub

  1. GitStack

    Bonjour,

    Merci pour ce récapitulatif pour installer son propre serveur Git. Votre solution implique tout de même des connaissances précises sur certaines lignes de commande.

    Sinon, il existe une solution plus simple : GitStack. C’est gratuit pour les projets open source, les étudiants et les petites équipes.

    Bonne journée,

    Reply

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>