Wer ein leistungsstarkes Ticket- oder Projektmanagementsystem sucht, findet mit Redmine eventuell die perfekte Lösung. Auch ich verwende Redmine für Nocksoft. Da sich die manuelle Installation als nicht ganz einfach erweist, soll diese Anleitung es auch Einsteigern ermöglichen Redmine unter Ubuntu zu installieren. Die offizielle Anleitung ist hier zu finden und ebenfalls lesenswert.
Bereits mein alter Artikel Redmine unter Ubuntu 16.04 installieren ist auf großen Zuspruch gestoßen. Von daher ist es mit der neuen Ubuntu LTS-Version eine gute Gelegenheit diese Anleitung einmal zu aktualisieren.
Inhaltsverzeichnis
Installation des Betriebssystems
Bei der Installation des Betriebssystems ist auf nicht viel zu achten. Ich verwende für diese Anleitung einen frisch installierten Ubuntu Server. Lediglich den SSH-Server habe ich bei der Installation mitinstalliert, um den Server später per PuTTY o.ä. administrieren zu können.
Nach der Grundinstallation nehme ich noch einige Einstellungen vor. In meiner Installation ist die Zeitzone nicht korrekt gesetzt. Das hole ich nach:
sudo unlink /etc/localtime
sudo ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Anschließend installiere ich noch sämtliche zur Verfügung stehenden Updates:
sudo apt update && sudo apt upgrade -y
Apache und MySQL installieren
Redmine benötigt einen Webserver und eine Datenbank. Ich verwende standardmäßig Apache und MySQL. Für die Installation verwende ich folgenden Befehl:
sudo apt install apache2 mysql-server
Datenbank anlegen
Um eine neue Datenbank für Redmine anzulegen, muss sich zunächst an der MySQL-Shell angemeldet werden:
sudo mysql
Mit den folgenden Befehlen erstelle ich die Datenbank redmine und einen Benutzer redmine, der Berechtigungen hat, um sich an der neuen Datenbank anzumelden (password ist natürlich mit dem gewünschten Passwort für den neuen MySQL-Benutzer redmine zu ersetzen):
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

Redmine herunterladen und entpacken
Im nächsten Schritt kann Redmine heruntergeladen und installiert werden. Ich werde Redmine unter /var/www/redmine/ installieren. Natürlich kann hier auch ein anderer Pfad verwendet werden.
Mit den folgenden Befehlen wird Redmine heruntergeladen und anschließend entpackt:
cd /var/www/
sudo wget https://www.redmine.org/releases/redmine-4.1.1.zip
sudo apt install unzip
sudo unzip redmine-4.1.1.zip
sudo mv redmine-4.1.1 redmine
Berechtigungen für /var/www/redmine/ ändern
Damit auf das Verzeichnis /var/www/redmine/ zugegriffen werden kann, übernehme ich den Besitz mit folgendem Befehl (UBUNTUBENUTZER ist mit dem Ubuntu-Benutzer zu ersetzen. In meinem Beispiel heißt der Ubuntu-Benutzer administrator):
sudo chown -R UBUNTUBENUTZER /var/www/redmine/
Datenbankverbindung konfigurieren
Die Datenbankverbindung wird in der Datei /redmine/config/database.yml konfiguriert. Dafür muss die Datei database.yml.example zuvor entsprechend umbenannt werden.
cd /var/www/redmine/config/
cp database.yml.example database.yml
nano database.yml
Dort sind schließlich die Verbindungsparameter anzugeben. Es ist entsprechend der Benutzer zu verwenden, der vorhin bei der Datenbankerstellung angelegt wurde. In der Regel ist nur der Bereich production anzupassen:

Mit den Tasten Strg + O, ENTER und Strg + X lässt sich die Datei speichern und schließen.
Ruby installieren
Redmine ist in Ruby geschrieben und braucht daher auch Ruby, damit es funktioniert. Ruby lässt sich auf verschiedenen Wegen installieren. In dieser Anleitung habe ich bereits verschiedene Installationsmöglichkeiten für Ruby vorgestellt. Ich installiere hier Ruby 2.6 über RVM (BENUTZERNAME ist natürlich entsprechend zu ersetzen):
sudo apt-add-repository -y ppa:rael-gc/rvm
sudo apt update
sudo apt install rvm
sudo usermod -a -G rvm BENUTZERNAME
sudo reboot
rvm install 2.6
rvm list rubies
Der letzte Befehl gibt schließlich die aktivierte Ruby-Version aus. Sie sollte als "current && default" gesetzt sein:

Der Befehl ruby --version sollte dann auch die installierte Ruby-Version anzeigen.
Abhängigkeiten für Redmine installieren
Es sind noch weitere Abhängigkeiten zu installieren. Dies geschieht mit folgenden Befehlen:
sudo apt install build-essential libmysqlclient-dev
cd /var/www/redmine/
bundle install --without development test
Das optionale Paket ImageMagick lässt sich ebenfalls einfach installieren:
sudo apt install imagemagick
Verschlüsselte Cookies
Damit Sessioninformationen in verschlüsselten Cookies gespeichert werden können, muss ein zufälliger Schlüssel erzeugt werden, den Rails später verwenden kann:
bundle exec rake generate_secret_token
Datenbankstruktur erstellen
Um die Redminedatenbank initial befüllen zu lassen, sind folgende Befehle zu verwenden:
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
Beim zweiten Befehl ist das entsprechende Länderkürzel anzugeben, etwa de.
Passenger installieren
Um Redmine korrekt ausführen zu können, muss das Passenger-Modul installiert werden:
sudo apt install libcurl4-openssl-dev apache2-dev libapr1-dev libaprutil1-dev
gem install passenger --no-document
passenger-install-apache2-module
Während des letzten Befehls erscheint eine Konfiguration, die wir später noch für die Apache-Konfiguration brauchen. Diese sollte daher einmal gesichert werden. In meinem Beispiel etwa:

LoadModule passenger_module /usr/share/rvm/gems/ruby-2.6.6/gems/passenger-6.0.7/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/share/rvm/gems/ruby-2.6.6/gems/passenger-6.0.7
PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.6.6/wrappers/ruby
</IfModule>
Als nächstes erstelle ich zwei neue Konfigurationsdateien:
cd /etc/apache2/mods-available/
sudo touch passenger.load passenger.conf
Von der vorher gesicherten Konfiguration wird jetzt die erste Zeile LoadModule… in der neu angelegten Datei passenger.load eingetragen:
sudo nano passenger.load

Anschließend wird der komplette Block IfModule… in der Datei passenger.conf eingetragen:
sudo nano passenger.conf

Das Passenger-Modul ist jetzt noch zu aktivieren:
sudo a2enmod passenger
Apache konfigurieren
Der Apache erfordert noch einige weitere Konfigurationen, damit später alles reibungslos läuft. Ich erstelle einen VirtualHost für Redmine, wo ich alle relevanten Konfigurationen vornehme:
cd /etc/apache2/sites-available/
sudo nano redmine.conf
Dort nehme ich folgende Konfiguration vor:
<VirtualHost *:80>
ServerName 192.168.0.67
ServerAlias redmine
DocumentRoot /var/www/redmine/public
<Directory /var/www/redmine/public>
AllowOverride all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>

Die neue Konfiguration muss jetzt noch eingebunden werden:
sudo a2ensite redmine.conf
Damit alle neuen Konfigurationen (Passenger und VirtualHost) auch geladen werden, muss der Apache Webserver noch neu gestartet werden:
sudo service apache2 restart
Installation testen
Die Installation von Redmine ist jetzt komplett. Wenn alles richtig gemacht wurde, lässt sich Redmine jetzt im Browser aufrufen:

Redmine unter Ubuntu zu installieren wäre also erledigt. Künftige Updates von Redmine fallen unkomplizierter aus. Hier ist die offizielle Updateanleitung von Redmine ein guter Ratgeber.
HTTPS aktivieren
In einer produktiven Umgebung sollte auf jeden Fall noch HTTPS aktiviert werde. Wie das geht habe ich bereits in HTTPS mit SAN-Zertifikat für Apache unter Ubuntu konfigurieren ausführlich erklärt. Der VirtualHost für Redmine sähe in diesem Beispiel wie folgt aus:
<VirtualHost *:80>
ServerName 192.168.0.67
ServerAlias redmine
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/redmine.cer
SSLCertificateKeyFile /etc/apache2/ssl/redmine.key
SSLProtocol -ALL +TLSv1.2 +TLSv1.3
Header always set Strict-Transport-Security "max-age=4838400; includeSubdomains;"
ServerName 192.168.0.67
ServerAlias redmine
DocumentRoot /var/www/redmine/public
<Directory /var/www/redmine/public>
AllowOverride all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
Weiterführende Links
https://nocksoft.de/tutorials/ruby-unter-ubuntu-installieren/
https://rvm.io/deployment/cron
Quellen
https://linuxhint.com/change_timezone_ubuntu_2004/
https://github.com/rvm/ubuntu_rvm
https://www.phusionpassenger.com/docs/advanced_guides/install_and_upgrade/apache/install/oss/rubygems_rvm.html
https://github.com/rubygems/heroku-buildpack-bundler2/pull/1
3 Antworten auf „Redmine unter Ubuntu 20.04 installieren“
Vielen Dank für dieses ausführliche Tutorial!
Hat bei mir sehr gut geklappt!
Hallo Nils,
vielen Dank für die Rückmeldung! 🙂
LG Rafael
hoi, leider bekomme ich massive Probleme bei der rvm installation.
Ich musste den path setzten
export PATH="/usr/share/rvm/rubies/ruby-2.6.6/bin:$PATH"
sonnst findet er die ganzen bins nicht, da hilft auch kein reboot.
Des weiteren, sollte erwähnt werden dass
"bundle install --without development test" NICHT als ROOT ausgeführt werden sollte ..
und an dem Punkt passenger-install-apache2-module wähle ich Ruby aus ,und bekomme ich Fehler " * Checking for Apache 2...
Found: yes
Location of httpd: /usr/sbin/apache2
Apache version: 2.4.41
Unable to autodetect the currently active RVM gem set name. This could happen if you ran this program using 'sudo' instead of 'rvmsudo'. When using RVM, you're always supposed to use 'rvmsudo' instead of 'sudo!'.
Please try rerunning this program using 'rvmsudo'. If that doesn't help, please contact this program's author for support."
Und da komme ich ned weiter rvmsudo will er auch ned fressen.
habe alles auf frischer Ubuntu 20.04.2 LTS probiert. Hast nee idee ?