A couple weeks ago I was introduced to a application called Gitlab, and I must say, I love using it. For those of you who don't know, Gitlab is a self-hosted alternative to Github. It has almost every feature Github provides, and a couple features that Github doesn't have.
Possibly the best thing Gitlab provides, is the ability to have unlimited Private & Public (private by default) repos, for free. Then there is stuff like user/repo management, service hooks, a nice GUI, Team management, wiki support, and of course, Gitlab is open source.
While I think Gitlab is simply fantastic to use, setup is another story. While I was installing on Ubuntu Server 13.02, I ran into several issues that required me googling around, in order to solve them. 2 specifically annoying problems were:
- One of the config files was located in a specific branch but the instructions used the Master branch version of the file.
- When adding the ssh info to your local git repo, you need to use the servers absolute path to the repo, and not the path shown in Gitlab.
For the second problem, I haven't found a "complete" solution, but it is entirely possible that is a problem specific to my machine. To help solve this problem for me, I added
mount -o bind /home/git/repositories /repo to
/etc/rc.local and restated my machine. Given that both the source and destination already exist as directories, the command works perfectly.
This means this:
is changed to this:
Thankfully, the creators of Gitlab have created a very detailed install guide, and this guide will help you solve most problems you might encounter.
Gitlab might be a bit of a pain to setup, but it is totally worth it.