I have recently installed and configured a Git server and repositories for my employer.
The plan was simple: install a Git server on a CentOS 6 operating system and provide an easy way to manage it. Repos have to accessible to developers (RW) and some customers (RO). The rest of the Internet should not see repos.
I started with the simple Git installation but I rapidly encountered a stopper: Git executable as a server doesn't provide an easy way to manage permissions. It is good to share projects with anyone, but it fails in permissions management.
I took a look at many Git softwares like the stack provided by Collabnet (I have a good experience with Collabnet's Subservion Edge servers), and finally I found my holly grail: GitLab packed by Bitnami!
GitLab is a full featured Web interface for Git. It works with Git, Apache HTTP Server + MySQL + various tools to rapidly setup Git repositories and a very nice Web interface that looks like GitHub, with an excellent module to configure permissions. Bitnami packed all this software in a single installer and made it standalone.
- very easy to install: download the installer (it works with CLI and GUI) and type yes, yes, yes :)
- this is a standalone stack: it won't install services. Simple use a script to start/restart/stop the entire stack;
- the Web interface allows you to create users, groups, repositories and advanced permissions: it works fine;
- the Web interface looks like GitHub. Users won't be lost;
- very stable, I faced no bug.
- configuration of ports is not easy: you have to edit many configuration files to change default ports (80 and 443 for Apache, 3306 for MySQL, etc.);
- the entire stack consumes something like 1GB of RAM after an entire week of up-time, but this number is stable (I guess there's probably a lot of caching).
And you, what's your experience with Git servers installation?