Installing and Integrating Trac and Gitolite
In a series of posts I'll detail how I install Trac and Gitolite using:
- Trac 1.0
- Gitolite v3
- Ubuntu 12.04 LTS
- Python 2.7.3
- Postgres 9.1 for Trac's database
- Apache 2.2.22 (Ubuntu) with mod_wsgi 3.3
The resulting system will have Trac running at `http://hostname.com` and Git repositories available to clone from `firstname.lastname@example.org:repo-name`. Trac and Gitolite will each be running as a separate system user, and a shared system group will be used to grant the necessary permissions for communication between the two.
In this setup Trac and Gitolite are tightly integrated in the following ways:
- Git post-receive hooks are installed to notify Trac of all commits, to all branches, on all repositories (allowing Trac to be updated from commit messages, etc)
- Trac Admin Panels provide screens for management of Gitolite SSH keys, repositories, and permissions
- Trac Repository Browser is integrated with Gitolite permissions, so users can only view a repository in Trac if they have the "R" permission on the corresponding Gitolite repo
Some of these integration features are provided by a Trac "GitolitePlugin" package that I've recently released.