Ce tutoriel explique comment rendre public un dépôt git. Il existe deux méthodes pour cela : le rendre publique grâce à git-daemon; (le protocole utilisé pour la connexion est alors ssh) ou bien le rendre public via un accès HTML. Comme mon serveur n’accepte que les connexions ssh authentifiées par une clé ssh, j’ai opté pour la seconde solution que je détaille dans cet article. Mon serveur est sous Ubuntu 12.04 et le serveur git est géré via gitolite.

Supposons que l’on souhaite rendre public le dépôt wnaetw qui se trouve sur le serveur dans le répertoire /var/lib/gitolite/repositories/wnaetw. La première chose à faire est de rendre utilisable le script post-update qui se trouve dans ce répertoire :

cd /var/lib/gitolite/repositories/wnaetw
mv hooks/post-update.sample hooks/post-update
chmod a+x hooks/post-update

Ensuite, il faut donner des droits de lecture et exécution corrects aux dépôts pour permettre la lecture par le serveur apache :

chown -R gitolite:www-data /var/lib/gitolite/repositories
chmod g+x /var/lib/gitolite/repositories
chmod -R g+rx /var/lib/gitolite/repositories/wnaetw

Enfin, il reste à créer un hôte virtuel sur le serveur, par exemple http://gitolite.my-domain.org, pointant vers /var/lib/gitolite/repositories comme expliqué dans ce post.

Le dépôt wnaetw est alors accessible en lecture seule par

git clone http://git.nathalievilla.org/wnaetw.git