One thing any programming project should have is a bug/feature tracker that can also hold documentation. Recently I tried out Bugzilla, Trac, Mantis, and Redmine to see which of them best met my needs and eventually settled on Redmine. The thing is Redmine wasn't easy to get setup on my Ubuntu 11.10 server, but in the end it was worth it.
I think one should use the package manager as much as possible so I do most of my software installations using apt. Unfortunately two of the performance improvements I wish to use (namely PassengerMinInstances and PassengerPreStart) are not available in the 2.2-version of libapache-mod-passenger that is in the default repositories, so we will use an external repository instead.
To activate this external source, edit your /etc/apt/sources.list file to permit access to the Brightbox debian repository by adding the line
somewhere in the file. I typically add it at the end.
Next update apt to load the new packages
Now install Redmine and the Passenger mode for Apache.
You will get an error indicating that the Brighbox packages are not trusted sources. Simply say "Yes" to the installation (or fix it by including their GPG key). This will install Redmine to the /usr/share/redmine directory and configure mod_passenger to automatically load with Apache. Next we create a symlink from our htdocs directory in Apache to the public directory of redmine
(I moved my public html directory elsewhere, I think it is /var/www by default.) Lastly we need to make some configuration changes to our Apache server's configuration file in /etc/apache2/sites-available/default. Here I've taken advantage of the Passenger 3.0 branch's ability to enforce a minimum number of instances of ruby and have Apache automatically send a request to the redmine directory at startup to initialize any Ruby threads. There are also a few other performance-related features I've enabled. Please READ THE DOCUMENTATION to understand what I've enabled. Notice, this is not a replacement for the configuration file, simply a list of the additional options you should insert and their relative location in the file.
After you have made these changes simply restart Apache
and Redmine will be accessible after your server finished restarting. I should also mention that the PassengerPreStart configuration line results in a HTTP request being sent localhost with header information indicating it is destined for fully.qualified.domain. This initial request initializes the rail environment and loads things into memory. The other configuration options above keep at least three threads running which should, in principle, keep the code in a ready-to-execute state, thereby decreasing the initial access slowness (e.g here) reported on the forums.


