Auto-héberger ses dépôts git
J'ai un serveur dans mon sous-sol, où j'héberge le site web que vous consulter en ce moment. Et dans cette foulée d'indépendance numérique, j'ai donc décidé d'héberger également mes dépôts git.
En ce moment, pour mes projets, j'utilise soit Github, Gitlab ou Notabug. L'idée est donc de continuer à envoyer mes dépôts git vers ces services tout en utilisant mon propre serveur pour héberger code source de mes projets.
Sans faire des miroirs, je peux pousser mes commits vers plusieurs
dépôts distant en même temps en ajoutant un deuxième répertoire
distant: git remote set-url --add --push origin
git@soucy.cc:soucy.cc.git
. Voir la note au sujet de l'option
pushurl
.
Mes exemples sont sous OpenBSD, mais cela peut s'appliquer facilement à n'importe quel environment unix.
Se connecter au serveur par SSH et installer git
ssh utilisateur@addr.ip.tld
pkg_add -v git
Créer un utilisateur qui acceuillera les dépôts git dans son $HOME
mkdir /home/git
user add git
Autoriser votre utilisateur a se connecter par SSH au répertoire /home/git
Par exemple si vous vous connectez avec root
sur votre serveur
maison ou sur votre VPS:
mkdir -m 700 /home/git/.ssh
cp /root/.ssh/authorized_keys /home/git/.ssh/
chown -R git:git /home/git
Créer le dépôt distant et faire son premier commit
Maintenant depuis votre répertoire local (sur votre ordinateur) où se
trouve votre code, créez le dépôt distant de type bare
par SSH:
ssh git@addr.ip.tld git init --bare soucy.cc.git
git remote add origin git@addr.ip.tld:soucy.cc.git
git remote set-url --add --push origin git@addr.ip.tld:soucy.cc.git
git add .
git commit -m "Mon premier commit vers mon dépôt auto-hébrgé"
git push origin master
Voilà qui est fait. Vous pourriez aussi exposer votre code dans des pages HTML avec stagit ou cgit.