Redmine project management
Overview
Redmine is a powerful project management system. It is similar to the popular Trac, however it looks much more professional and is certainly easier to navigate.
Problem
There are no Ubuntu (nor Debian) packages of Redmine available, though some are in progress. Additionally as Redmine uses a Ruby on Rails framework, there are additional complexities ensuring that the Rails framework is current.
Howto
Rails setup
You need to be running rails v2.1.2 or later. As we were installing on Ubuntu 8.04 LTS, we used packages from Debian unstable:
- rails-2.2.2
- this means rake, ruby1.8, libruby1.8 and perhaps other ruby libraries too
- also install libxml-simple-ruby_1.0.11-2 (due to a path issue in older versions)
- otherwise the install will fail with "no such file to load -- xmlsimple"
Redmine install
- build a package from http://mentors.debian.net/debian/pool/main/r/redmine/
- or just download our pre-built package
- update: later versions of Redmine is now available in both Debian and Ubuntu so we've removed our packages
- now install the redmine package
- you might want to preseed redmine/default-language to "en"
- otherwise it defaults to "bg" and the database will contain "???" in many important fields
- we've sent this information to the package maintainer
echo "redmine redmine/default-language select en" | debconf-set-selections
- edit /etc/redmine/email.yml:
- the domain attribute is sent in the HELO to the email server
production: delivery_method: :smtp smtp_settings: address: localhost port: 25 domain: example.com
- the domain attribute is sent in the HELO to the email server
Apache configuration
The redmine installation can do this for you, however we prefer more control over our Apache installations so we did this by hand:
- install libapache2-mod-fcgid and libfcgi-ruby1.8
sed 's,<em>REDMINE_ALIAS</em>,/redmine,g' \ /usr/share/redmine/templates/apache2-alias.conf.template > /etc/apache2/conf.d/redmine
- restart apache
Redmine setup
- visit http://example.com/redmine
- login using the default username of "admin" with a password of "admin"
- administration -> users -> admin
- change password and email address
- administration -> settings -> general
- set hostname to example.com/redmine
- set protocol to https if required
- administration -> settings -> authentication
- enable "authentication required"
- administration -> settings -> projects
- disable "new projects are public"
- administration -> settings -> email notification
- set "emission address" correctly
- select all actions
- change footer web address to http://example.com/redmine/my/account
Optimisations
- if you have mod_deflate enabled on apache, this gain is very small
- using http://developer.yahoo.com/yslow/ shows up a few things to speedup
- in particular we can use the smaller version of prototype prototype_size_enhanced.js
- just replace the version in /usr/share/redmine/public/javascripts
Tweaks
Add favicon
Redmine ships an empty favicon.ico file in /usr/share/redmine/public which you can alter if redmine is the root application (i.e. on http://example.com). Otherwise:
- edit /usr/share/redmine/app/views/layouts/base.rhtml and add to the end of the meta lines:
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
Follow up
If you create an issue without an assignee, you may find that no-one is notified. The only way around this at the moment is to ensure that someone watches each project. They can do this by selecting "My account" and setting "Email notifications" to "For any event on all my projects".
Redmine's permissions and workflow are currently very primitive compared to something like JIRA. We can't wait for them to catch up and surpass it.
Passenger
To gain a useful speedup and reduction in memory, you can migrate to using mod_passenger. Most of the documentation and packages are supplied by the kind folks at BrightBox.
There are a few extra items due to running redmine under a subdirectory.
- ln -sf /usr/share/redmine/public $DOCUMENT_ROOT/redmine
- edit /usr/share/redmine/config/environment.rb directly (not sure why the SetEnv and DefaultInitEnv in apache do not work)
- ActionController::AbstractRequest.relative_url_root = "/redmine"
- snippet of apache config (you don't need the rewrite rules any more):
RailsAutoDetect off PassengerAppRoot /usr/share/redmine RailsBaseURI /redmine Alias "/redmine" /usr/share/redmine/public
We also needed to edit /var/lib/dpkg/status (naughty!) as a quick workaround to Ubuntu bug #257110 and to drop the ruby1.8 requirement for redmine from 1.8.7 to 1.8.6.