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:
- In den Redmine Administrationsbereich wechseln
- Den Menüpunkt Konfiguration und Mailbenachrichtigungen aufrufen
- 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
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
- Installing Redmine
- installing redmine on debian/lenny using mod_passenger
- HowTo Install Redmine on Debian with Ruby-on-Rails and Apache2 Passenge
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.