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

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

Optimisations

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.