I was recently looking at ways to host our development projects’ codebase at work. The current situation is far from ideal: all the code is stored on a Windows shared folder somewhere on our network, to my defense, they’re mostly properly version controlled in git repositories. Some projects are edited in place over the network in the working directory, typically web projects. Others are bare repos cloned to my local harddrive, they’re usually contain code that needs compiling, especially bigger android projects with zillions of tiny xml files, which would be too slow to use through a network share.
I love what GitHub has to offer in terms of features and ease of use, but if you’re as paranoid as me regarding online services storing private source code, you’d want to keep your code local behind your own network or server cabinet. And no, GitHub enterprise would be far too expensive for our small team, starting at a minimum of 20 user license for US $5000 per year.
Rather than building a git host server myself, I was browsing around GitHub for a solution which offers nice features out of the box. I came across GitLab, which turned out to be perfect for the job. It’s supported on Ubuntu, built with Ruby on Rails, using the Nginx webserver and has a very clean and easy to follow step-by-step installation guide. I grabbed the latest Ubuntu 12.10 server release, copy-pasted all the terminal commands and in the end it just worked. The only thing I had to set is the password, write our fully qualified domain name and IP address in a couple of config files, and we were good to go.
The interface is not really original, in fact it’s more or less a direct copy of GitHub’s, which is a plus if you’re used to it and it’s similarly easy to use. It has all the features you’d want in a private code host such as team management, user-private repos, issues, code browser with syntax highlighting, inline code comments, merge requests, wiki and multiple user-access levels. With its support of event hooks, nothing stops you to develop scripts to make it an integral part of your deployment process.
It is being actively developed with releases coming out on 22nd of each month. It’s free and open source, build a VM and give it a go. If you’re looking for a free private git host, look no further, I can fully recommend it.