On of my projects these past couple months has been reviewing, testing and finally implementing an in-house git repository for the OpenStack project to satisfy the bug Create a git.openstack.org mirror system.
Full rationale, from the bug report by Jeremy Stanley:
Right now our Gerrit server (review.openstack.org) replicates its Git repositories into /var/lib/git/ and serves them from a local Apache instance as https://review.openstack.org/p/projectname, but it also replicates the same projects to Github. Most of our developer documentation suggests cloning these from Github, but this could be misconstrued as the OpenStack Project endorsing use of Github (which is not itself free/libre software).
While developers can and do set their origin to the replica on review.openstack.org, this is a single point of failure and hosted on a server already doing quite a lot of other work. Github on the other hand is a distributed/redundant service with a lot of available bandwidth, so any solution to this should probably at least involve some minimal amount of redundancy and not add further traffic load on review.openstack.org. As a bonus, any automation which we currently point at the Gerrit server but which only requires access to officially merged change history could be repointed at git.openstack.org instead to take advantage of the additional stability and redundancy.
We finally launched the new git.openstack.org this week! And we quickly scaled up to having multiple servers as the load from the tests alone quickly overtook a single instance, so we’re now using HAProxy to load balance between several nodes.
There are many options for cgit, Anita Kuno is looking into getting .rst files rendered in the interface and there are syntax highlighting options we can look into. If you’re interested in these or any other options, let us know. Or better yet, submit a patch for us to review. Documentation on this new git infrastructure, including links to configuration files is up at: http://ci.openstack.org/git.html
We’re also running git-daemon for access via git:// and made git-http-backend available for cloning over http(s).