Every developer should track their work using some sort of version manager. It’s something that will save a lot of trouble when trying to rollback a change or add new code with the security that you can audit what’s being added.

In that light, I thought it would be a good idea to have a secure place to hold data, on my own, of work that I have saved on private repositories at Github.

I had a small feature set in mind:

  • be able to secure my code locally
  • have complete control over who was able to reach it
  • a reliable service that I could access from everywhere in a secure form

With those assumptions on mind I started to look for a alternative. But every one was just packed of features, they were complex and I wanted something simple.

That’s when I decided do come up with something on my own.

For the frontend and repository view I used cgit. And for the backend I have used gitolite.

I think they both are amazing projects. They are stable, robust, secure and simple.

  • cgit is a well established project, it is currently used to serve kernel.org
  • gitolite is an amazing project, that uses ssh to control access to source code.

It’s possible to customize a lot with this combination.

I have added a thin layer for authentication and authorization using basic access authentication using cookies and mruby.

If you got interested, please, give it a look at lightweight-git at github.