Das Ticketsystem Redmine ist in Ruby on Rails umgesetzt und bietet einen großen Funktionsumfang als Ticketverwaltung. Weiterhin kann es sehr stark auf die jeweiligen Bedürfnisse angepasst werden, zum einen über die Konfigurationsmöglichkeiten, zum anderen auch über eine große Anzahl an Erweiterungen.

Für das Änderungsmanagement - die Erfassung von Änderungen und Fehlermeldungen zu einem Projekt - werden folgende Funktionen angeboten:

  • Ticketverwaltung über verschiedene Tracker. Tickets können hierarchisch angelegt werden.
  • Wiki
  • Projektkalender
  • Datenverwaltung
  • Versionierungssystem Integration (z.B. für Git, Subversion, CVS, und viele weitere)
  • Time Tracking
  • Versionen (für Entwicklungsintervalle)
  • Gantt Diagramm
  • Burndown Chart (über Erweiterung, siehe weiter unten)
  • Emailbenachrichtigung

um die wichtigsten zu nennen.

Redmine Installation

Erstmal installieren wir die Pakete, die aus dem Debian Repository genutzt werden können:

aptitude install wget build-essential ruby1.8 ruby1.8-dev librmagick-ruby1.8 libmysql-ruby1.8 apache2-mpm-prefork bsd-mailx mailx unzip rdoc irb libcurl4-openssl-dev apache2-prefork-dev libapr1-dev libaprutil1-dev libopenssl-ruby libmagickwand-dev imagemagick

Nun installieren wir Rubygems von mit den Source Dateien, da die Version von Lenny zu alt ist:

wget http://rubyforge.org/frs/download.php/74343/rubygems-1.5.3.tgz
tar xzf rubygems-1.5.3.tgz
cd rubygems-1.5.3
ruby setup.rb
ln -s /usr/bin/gem1.8 /usr/bin/gem
gem update --system

Jetzt werden über Rubygems weitere Ruby Pakete installiert:

gem install rack -v 1.1.2
gem install fastthread mysql rmagick
gem install -v=2.3.11 rails
gem install -v=0.4.2 i18n

Jetzt wird Redmine heruntergeladen und ausgepackt:

cd /www
wget http://rubyforge.org/frs/download.php/75518/redmine-1.2.2.tar.gz
tar xfz redmine-1.2.2.tar.gz
rm redmine-1.2.2.tar.gz
mv redmine-1.2.2 redmine

Nun wird die MySQL Datenbank angelegt und die Berechtigungen dazu festgelegt:

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'geheim';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

Im Beispiel hier heißt die Datenbank redmine und auch der Datenbankbenutzer redmine. Das Kennwort ‘geheim’ unbedingt mit einem sicheren Kennwort ersetzen!

Redmine konfigurieren

Zuerst kopiert man die Beispielkonfiguration für die Datenbank und bearbeitet diese dann:

cd /www/redmine
cp config/database.yml.example config/database.yml
vim config/database.yml

Nun in der Datei database.yml die Datenbank Zugangsdaten anpassen. Darin dürfen keine Tabulatoren verwendet werden, sondern nur Leerzeichen.

Das gleiche Vorgehen für die Mailkonfiguration (damit Redmine auch Benachrichtigungsmails versenden kann).

cp config/email.yml.example config/email.yml
vi config/email.yml

Hier den Zugang zum Mailserver konfigurieren. Darin dürfen keine Tabulatoren verwendet werden, sondern nur Leerzeichen.

RAILS_ENV=production rake config/initializers/session_store.rb
rake generate_session_store
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data

Apache Konfiguration

Hier die Konfigurationsdatei für Apache, um Redmine über SSL zu verwenden:

# Redmine
<VirtualHost *:443>
  ServerName redmine.meinedomain.de
  DocumentRoot /www/redmine/public
	CustomLog /var/log/apache2/redmine_access.log combined env=!gif-image
	ErrorLog /var/log/apache2/redmine_error.log

	RemoveHandler .php

	<Directory /www/redmine/public>
		Options FollowSymLinks -MultiViews -ExecCGI
		AllowOverride all
	</Directory>

 	SSLEngine on
 	SSLOptions +StrictRequire
        # der Pfad zum SSL Zertifikation muss entsprechend angepasst werden.
 	SSLCertificateFile /etc/ssl/certs/server.crt
 	SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>

Die Datei wir unter /etc/apache2/sites-available/redmine abgespeichert und mit folgenden Befehl wird die Konfiguration aktiviert:

a2ensite redmine

Apache Passenger 3 installieren und konfigurieren

Die Phusion Passenger installiert man mit folgenden Befehlen:

gem install passenger
/usr/lib/ruby/gems/1.8/gems/passenger-3.0.9/bin/passenger-install-apache2-module # Apache2 Modul übersetzen

Konfigurationsdateien anlegen:

vim /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so

vim /etc/apache2/mods-available/passenger.conf

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.9
PassengerRuby /usr/bin/ruby1.8

Nun noch das Apache Modul aktivieren:

a2enmod passenger

Nun muss noch die .htaccess Datei aus dem public Verzeichnis gelöscht werden, da sonst ein Redirect of ein cgi oder fcgi Skript erfolgt (brauchen wir nicht, da wir Passenger benutzen):

rm /www/redmine/public/.htaccess

Redmine für FastCGI konfigurieren

Dazu kopiert man die Beispieldatei als zu verwendentes Skript:

cd /www/redmine
cp public/dispatch.fcgi.example public/dispatch.fcgi

Nun kommentiert man folgende Zeilen in der .htaccess Datei aus, um cgi zu deaktivieren:

# AddHandler cgi-script .cgi
# RewriteRule ^(.*)$ dispatch.cgi [QSA,L]

Wichtig: der Webserver benötigt Schreibrechte auf das redmine Verzeichnis, da Lock Dateien erzeugt werden (z.B. von rate).

gem install lockfile
rake db:migrate_plugins RAILS_ENV=production
chown -R www-data:www-data /www/redmine
invoke-rc.d apache2 restart

Weitere Anpassungen

Git Aktualisierung

Wenn man als Projektarchiv ein Git Repository in Redmine verwendet, kann man folgenden Git Hook verwenden, um in Redmine bei jeden Commit sofort die Änderungen angezeigt zu bekommen:

#!/bin/bash
CURL=/usr/bin/curl
URL=https://redmine.meinedomain.de
KEY=BM1aESoSjRdadsdsdsGGz

$CURL -S -s "$URL/sys/fetch_changesets?key=$KEY"

Hier ist URL mit der URL zu ersetzen, unter der das installierte Redmine installiert ist. Für KEY muss der Wert aus dem Adminbereich->Konfiguration->Projektarchive entnommen werden. Hier ist der API-Schlüssel zu entnehmen (und entsprechend vorher zu generieren).

Mailversand über Gmail

Damit Redmine Emails über Gmail und TLS verschicken kann, muss das Plugin action_mailer_optional_tls_plugin installiert werden:

cd /www/redmine
ruby script/plugin install git://github.com/collectiveidea/action_mailer_optional_tls.git

In der config/configuration.yml Konfigurationsdatei verwendet man:

default:
  delivery_method: :smtp
  smtp_settings:
    tls: true
    address: "smtp.gmail.com"
    port: '587'
    domain: "smtp.gmail.com"
    authentication: :plain
    user_name: "your_email@gmail.com"
    password: "your_password"

Wichtig ist, dass in der Datei nur Leerzeichen und keine Tabulatoren verwendet werden!

Im Adminbereich kann man testen, ob der Mailversand funktoniert:

  1. In den Redmine Administrationsbereich wechseln
  2. Den Menüpunkt Konfiguration und Mailbenachrichtigungen aufrufen
  3. Unten Rechts auf der Seite ist ganz versteckt der Link “Test-E-Mail senden”. Mit einen Klick darauf testen man die Mailversand, indem eine Testmail verschickt wird.

Erster Login

Nachdem die Installation abgeschlossen ist, meldet man sich über den Webbrowser und der in der vhosts verwendeten URL in Redmine an. Die Zugangsdaten für den ersten Login sind:

Benutzername: admin
Kennwort: admin

Das Kennwort ist aus Sicherheitsgründen sofort nach dem Login zu ändern!

Redmine Update

Um Redmine auf eine aktuellere Version zu aktualisieren, sind folgende Arbeitsschritte nötig:

  • das Redmine Verzeichnis umbenennen, z.B. redmine in redmine.old
  • neue Redmine Version herunterladen, extrahieren in Verzeichnis redmine ablegen
  • Dateien und Verzeichnisse aus dem gesicherten, alten Verzeichnis ins das neue Verzeichnis übernehmen:
cp redmine.old/config/database.yml redmine/config/database.yml
cp redmine.old/config/email.yml redmine/config/email.yml
cp -r redmine.old/files redmine/files

Und alle selbst installierten Plugins von redmine.old/vendor/plugins nach redmine/vendor/plugins kopieren.

Nun noch den Owner der Dateien und Verzeichnisse korrigieren:

chown -R www-data:www-data redmine
  • Neue Dateien installieren
  • Ausführen:
cd /www/redmine
rake generate_session_store
rake db:migrate RAILS_ENV=production
rake db:migrate_plugins RAILS_ENV=production
rake tmp:cache:clear
rake tmp:sessions:clear

Danach noch den Webserver neu starten und die neue Version ist einsatzbereit:

service apache2 restart

Weiterführende Informationen gibt es hier: Redmine Upgrading

Plugins für Redmine

Hier eine Liste von Redmine Plugins, die sich als Funtionalitätsserweiterungen anbieten:

  • charts: Durch dieses Plugin wird ein Burndown Chart und weitere Charts bezüglich der gebuchten Stunden bereitgestellt
  • graphs: Durch dieses Plugin werden weitere Graphen für die Tickets bereitgestellt: offene alternde Tickets, Gesamtzeit zu Tickets und Gesamttickets vs geschlossener Tickets zu einer Version (Entwicklungsintervall)
  • budget: Mit dem Budget Modul kann man Liefergegenstände verwalten und automatische Berechnung der Kennzahlen berechnen, die die Rentabilität eines Projektes aufzeigen. Das Plugin Rate wird für dieses Modul vorausgesetzt.
  • timesheet_plugin Damit werden gebucht Zeiten über viele Filtermöglichkeiten aufgelistet und exportierbar. Die Filter sind auf Projekte, Benutzer, Zeitabschnitten, u.s.w. anwendbar.
  • Code Review: Mit dem Code Review Plugin kann man Tickets für einen Code Review erstellen, welcher zu einem Commit durchgeführt werden soll. Weiterhin kann zum Quellcode zeilenbasiert einen Review erstellen.
  • Wiki Extensions: Viele nützliche Erweiterungen für die Wiki, wie Fußnoten, Kommentare, Verlinkung zu anderen Projekten, TAGs, Bearbeitbare Stylesheets, Footer, u.s.w.

Im Adminbereich findet man eine Liste aller installierten Plugins unter der URL /admin/plugins

Redmine Plugin Übersicht - Liste aller installierten Plugins

Um auch auf Benutzerprofile verlinken zu können, indem man die Schlüsselwörter user#1 oder user:admin verwendet, muss folgender Patch eingespielt werden: Redmine link to user profile

Weitere Ressourcen

Wie wir Ihnen helfen

Wir helfen, wenn Sie ein Tool wie Redmine in einem Projekt oder unternehmensweit effizient(er) einsetzen möchten. Gerne unterstützen wir Sie bei der Evaluierung des richtigen Tools, der Installation und Konfiguration, sowie Datenmitgration. Anschließend führen wir Ihr Team in die sinnvolle Nutzung des gewählten Tools (z.B. Redmine) ein, bauen das nötige Wissen im Unternehmen auf, oder übernehmen bei Bedarf gerne die Betreuung für Sie.

Aktualisiert: