Some of my personal projects are tracked using private git repositories, hosted on this server. I can access these via ssh, but for a while I've had in mind to make at least a couple of them publicly accessible... somehow. After finally getting around to looking into it, this turns out to be deceptively simple using git-daemon (instructions for Debian distros):
- Install the git-daemon-sysvinit package.
- Enable the daemon by editing /etc/default/git-daemon. Reboot, or start the git-daemon service by hand.
- Add a symlink to each git repo you want to make public under /var/lib/git. These will then be accessible via git://<hostname>/git/<linkname>.
- Ensure the git protocol port (9418) forwards to the server.
Simple! The git protocol is faster than serving over http(s), and the standard configuration ensures that anonymous clients can pull, but not push, which is exactly what I was after.
Over the next little while I'll introduce the couple of projects that I'm opening up for public access.