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é. Seulement sur GitHub c’est payant et c’est loin d’être donné. 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.
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:
- http://tumblr.intranation.com/post/766290565/how-set-up-your-own-private-git-server-linux
- http://www.corvidworks.com/articles/self-hosted-remote-git-repositories
Partagez et abonnez-vous
Twitter
Facebook
Email
Abonnez-vous
Suivez moi





