Wie man Redmine mit Apache und Let’s Encrypt SSL unter Debian 12 installiert

Redmine ist ein kostenloses und quelloffenes Projektmanagement- und Problemverfolgungsprogramm. Es ist webbasiert und hauptsächlich in Ruby on Rails geschrieben. Es ist plattformübergreifend und unterstützt mehrere Datenbanken und mehrere Sprachen.

Redmine ist flexibel und kann für verschiedene Arten von Organisationen und Projekten eingesetzt werden, von kleinen über mittlere bis hin zu großen Organisationen. Mit Redmine kannst du mehrere Projekte erstellen und verwalten, und jedes Projekt hat sein eigenes Wiki, seine eigenen Foren, seine eigene Problemverfolgung usw. Außerdem kannst du eigene Rollen erstellen, die auf die Bedürfnisse deines Unternehmens zugeschnitten sind, und vieles mehr.

Redmine wird unter der GNU GPL v2 Lizenz veröffentlicht und kann auf jedem Betriebssystem wie Linux, Windows oder macOS installiert werden. Es unterstützt verschiedene Arten von Datenbanken, darunter PostgreSQL, MySQL und SQLite (Standard).

Folge dieser Schritt-für-Schritt-Anleitung, um Redmine, ein Tool zur Projektverwaltung und Fehlerverfolgung, auf Debian 12 Server zu installieren. Wenn du diese Anleitung befolgst, installierst du Redmine mit MariaDB als Datenbankserver und Apache2 als Webserver.

Voraussetzungen

Um mit dem Prozess zu beginnen, stelle sicher, dass du Folgendes sichergestellt hast

  • Einen Debian 12 Server.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.
  • Einen Domainnamen, der auf die IP-Adresse des Servers zeigt.

Installieren der Abhängigkeiten

Redmine ist eine webbasierte Projektverwaltung, die in Ruby on Rails geschrieben wurde. Um Redmine zu installieren, musst du zunächst die folgenden Pakete installieren:

  • Apache Webserver: Dieser wird als Webserver für Redmine verwendet.
  • MariaDB-Server: Redmine kann mit Datenbanken wie MySQL/MariaDB und PostgreSQL betrieben werden. In diesem Leitfaden wird der MariaDB-Server verwendet.
  • Ruby: Zum Zeitpunkt der Erstellung dieses Artikels kann die stabile Version 5.0.6 von Redmine mit Ruby 3.1 installiert werden.
  • Zusätzliche Pakete: Certbot zum Erzeugen von SSL/TLS-Zertifikaten, build-essential zum Kompilieren von Ruby-Code und Subversion als Versionskontrollsystem.

Bevor du die Abhängigkeiten installierst, musst du dein Debian-Repository mit dem folgenden Befehl aktualisieren und auffrischen.

sudo apt update

Repo aktualisieren

Führe nun den Befehl apt install aus, um die Abhängigkeiten für Redmine zu installieren. Dazu gehören Apache2, MariaDB, Ruby, ImageMagick, Certbot und Subversion.

sudo apt install apache2 libapache2-mod-passenger mariadb-server certbot python3-certbot-apache ruby ruby-dev build-essential default-mysql-server default-libmysqlclient-dev libxml2-dev libxslt1-dev zlib1g-dev imagemagick libmagickwand-dev subversion

Gib y ein, um mit der Installation fortzufahren.

deps installieren

Nachdem die Abhängigkeiten installiert sind, überprüfe jede Abhängigkeit, indem du den folgenden Befehl ausführst.

Überprüfe den apache2-Dienst, um sicherzustellen, dass der Dienst läuft und aktiviert ist.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Die unten angezeigte Ausgabe bestätigt, dass apache2 aktiviert ist und läuft.

apache2 prüfen

Überprüfe nun den Dienst mariadb, indem du den folgenden Befehl ausführst.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Die Ausgabe sollte ähnlich aussehen wie die des apache2-Dienstes und bestätigt, dass der Dienst läuft und aktiviert ist.

mariadb prüfen

Als Nächstes überprüfst du die Ruby-Version auf deinem System mit dem folgenden Befehl. Du solltest sehen, dass Ruby 3.1.2 auf deinem Debian-Rechner installiert ist.

ruby --version

Rubin prüfen

Zuletzt überprüfst du Subversion mit dem folgenden Befehl. Damit stellst du sicher, dass Subversion installiert ist.

svn --version

Die angezeigte Ausgabe sollte in etwa so aussehen:

Subversion prüfen

MariaDB Server konfigurieren

Nach der Installation der Abhängigkeiten konfigurierst du deine MariaDB-Server-Installation mit dem Dienstprogramm mariadb-secure-installation und legst eine neue Datenbank und einen neuen Benutzer an, die Redmine verwenden soll.

Führe den folgenden Befehl aus, um deine MariaDB Server-Installation zu sichern.

sudo mariadb-secure-installation

Gib während des Vorgangs Y ein, um die Änderungen zu bestätigen und anzuwenden, oder n für No, um sie abzulehnen. Im Folgenden findest du einige der MariaDB Server-Konfigurationen, nach denen du gefragt wirst:

  • Auf unix_socket-Authentifizierung umschalten? Gib n ein und drücke ENTER. Der Standard-MariaDB-Root-Benutzer ist bereits geschützt. Optional kannst du ihn auch aktivieren, indem du y für Ja eingibst.
  • Ändere das Root-Passwort? Gib y ein, um zu bestätigen und dein neues MariaDB Root-Passwort einzurichten.
  • Anonymen Benutzer entfernen? Gib y ein, um zu bestätigen.
  • Root-Login aus der Ferne verbieten? Gib zur Bestätigung y ein. Wenn du den MariaDB Root-Benutzer verwendest, wird nur eine lokale Verbindung zugelassen.
  • Testdatenbank und Zugriff auf sie entfernen? Bestätige mit y und entferne die Standarddatenbank „test“.
  • Gib abschließend erneut y ein, um alle Tabellenrechte auf deinem MariaDB-Server neu zu laden und die neuen Änderungen anzuwenden.

Nachdem du den MariaDB Server konfiguriert hast, melde dich mit dem unten stehenden Befehl mariadb client beim MariaDB Server an. Gib dein MariaDB Root-Passwort ein, wenn du dazu aufgefordert wirst.

sudo mariadb -u root -p

Führe nun die folgenden Abfragen aus, um eine neue Datenbank redmine und einen neuen Benutzer redmine mit dem Passwort secretPassword zu erstellen. Die folgenden Angaben zur Datenbank werden von Redmine verwendet und du solltest das Passwort ändern.

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'secretPassword';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;

Datenbankbenutzer anlegen

Als Nächstes führst du die folgende Abfrage aus, um die Rechte des Benutzers redmine zu überprüfen.

SHOW GRANTS FOR redmine@localhost;

Die folgende Ausgabe bestätigt, dass der Benutzer redmine auf die Datenbank redmine zugreifen kann.

Benutzerberechtigungen prüfen

Gib quit ein, um den MariaDB Server zu verlassen.

Herunterladen und Installieren von Redmine

Im folgenden Abschnitt wirst du Redmine herunterladen und auf deinem Debian-Rechner installieren. Du lädst den Redmine-Quellcode über Subversion herunter, konfigurierst Redmine mit dem MariaDB-Datenbankserver und installierst dann die Ruby-Abhängigkeiten über Bundler.

Bevor du loslegst, installiere einen Bundler auf deinem System, indem du den folgenden Befehl ausführst.

gem install bundler

Bundler installieren

Wechsle in das Verzeichnis /var/www und lade den Redmine-Quellcode mit dem unten stehenden svn-Befehl herunter. In diesem Beispiel lädst du Redmine stable 5.0 in das Verzeichnis redmine-5.0 herunter. Dein Redmine-Installationsverzeichnis sollte also /var/www/redmine-5.0 sein.

cd /var/www
svn co https://svn.redmine.org/redmine/branches/5.0-stable redmine-5.0

Redmine herunterladen

Gehe in das Verzeichnis /var/www/redmine-5.0 und kopiere die Standard-Datenbankkonfiguration nach config/database.yml.

cd /var/www/redmine-5.0
cp config/database.yml.example config/database.yml

Öffne die Redmine-Datenbankkonfiguration config/database.yml mit dem folgenden nano-Editor-Befehl.

nano config/database.yml

Überprüfe die Datenbankkonfiguration im Abschnitt “ Produktion“ mit den folgenden Angaben. Achte darauf, dass du den Datenbanknamen, den Benutzer und das Passwort änderst.

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "secretPassword" 
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4

Speichere und schließe die Datei, wenn du fertig bist.

Als Nächstes führst du den folgenden Bundle-Befehl aus, um Entwicklung und Test zu deaktivieren, und installierst dann die Ruby-Abhängigkeiten für Redmine.

bundle config set --local without 'development test' 
bundle install

Während des Prozesses sollte die angezeigte Ausgabe ähnlich wie diese aussehen:

Ruby-Abhängigkeiten installieren

Erstelle nun das geheime Token und migriere die Datenbank, indem du den folgenden Befehl ausführst.

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

Während der Datenbankmigration wird die unten stehende Ausgabe angezeigt.

Datenbank migrieren

Führe zum Schluss den folgenden Befehl aus, um die Standarddaten in deine Redmine-Installation zu laden.

RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data

Wenn dies erfolgreich war, solltest du die Ausgabe„Standardkonfigurationsdaten geladen“ erhalten.

Standarddaten laden

Apache2 Virtual Host konfigurieren

Nachdem du Redmine heruntergeladen und installiert hast, musst du im nächsten Schritt einen neuen virtuellen Apache2-Host erstellen, auf dem Redmine läuft und der SSL/TLS-Zertifikate über Certbot und Letsencrypt generiert. Bevor du fortfährst, stelle sicher, dass du einen Domainnamen hast, der auf die IP-Adresse des Servers zeigt.

Erstelle eine neue virtuelle Hostkonfiguration /etc/apache2/sites-available/redmine.conf mit dem folgenden Befehl des nano Editors.

sudo nano /etc/apache2/sites-available/redmine.conf

Füge die folgende Konfiguration ein und achte darauf, dass du den Domainnamen in der Zeile ServerName änderst.

<VirtualHost *:80>
ServerName redmine.hwdomain.io
RailsEnv production
DocumentRoot /var/www/redmine-5.0/public

ErrorLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.error.log
CustomLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.access.log combined

<Directory "/var/www/redmine-5.0/public">
Allow from all
Require all granted
</Directory>

</VirtualHost>

Speichere und schließe die Datei, wenn du fertig bist.

Als Nächstes aktivierst du mit folgendem Befehl das Rewrite-Modul auf dem Apache2-Webserver und aktivierst die virtuelle Hostdatei redmine.conf.

sudo a2enmod rewrite
sudo a2ensite redmine.conf

Danach überprüfst du die Apache2-Syntax, indem du den folgenden Befehl ausführst. Wenn du die richtige Syntax hast, wird die Ausgabe„Syntax OK“ angezeigt.

sudo apachectl configtest

Als Nächstes führst du den folgenden systemctl-Befehl aus, um den Apache2-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart apache2

vhost-Einrichtung

Zuletzt generierst du mit dem folgenden certbot-Befehl neue SSL/TLS-Zertifikate für deine Redmine-Installation. Achte darauf, dass du den Domänennamen und die E-Mail-Adresse mit deinen Daten änderst.

sudo certbot --apache --agree-tos --no-eff-email  --redirect --hsts --staple-ocsp --email admin@hwdomain.io -d redmine.hwdomain.io

Nachdem der Vorgang abgeschlossen ist, werden deine SSL/TLS-Zertifikate im Verzeichnis /etc/letsencrypt/live/redmine.hwdomain.io/ generiert. Außerdem wird deine virtuelle Hostdatei redmine.conf automatisch mit HTTPS über das Certbot Apache Plugin konfiguriert.

Zugriff auf die Redmine-Installation

Starte deinen Webbrowser und rufe deinen Redmine-Domainnamen auf, z. B. https://redmine.hwdomain.io. Wenn deine Installation erfolgreich war, wird die folgende Redmine-Startseite angezeigt.

redmine home

Klicke oben rechts auf den Link Anmelden, um die Redmine-Anmeldeseite aufzurufen. Gib dann den Standardbenutzer admin mit dem Passwort admin ein und klicke auf Anmelden.

Anmeldung Redmine

Zuerst wirst du aufgefordert, das Standardpasswort admin zu ändern. Gib das alte Passwort admin ein, gib dann dein neues Passwort ein und wiederhole es.

Standardpass ändern

Jetzt wirst du zu deinem Admin-Profil weitergeleitet und solltest die Meldung„Das Passwort wurde erfolgreich aktualisiert“ erhalten. Von hier aus kannst du auch die Details deines Admin-Benutzers ändern und dann mit Speichern bestätigen.

Profil aktualisieren

Klicke abschließend auf Verwaltung > Informationen, um detaillierte Informationen über deine Redmine-Installation zu erhalten. Die folgende Seite wird angezeigt. Bestätige dort, dass Redmine 5.0.6 stable mit Ruby 3.1.2, Rails 6.1, Mysql2-Datenbanktreiber und Subversion 1.14 installiert ist.

redmine installation info

Fazit

Zusammenfassend lässt sich sagen, dass du Redmine, ein Tool zur Projektverwaltung und Fehlerverfolgung, Schritt für Schritt erfolgreich auf dem Debian 12 Server installiert hast. Du hast Redmine mit einem Apache2-Webserver und einem MariaDB-Datenbankserver installiert und deine Redmine-Installation mit SSL/TLS-Zertifikaten von Letsencrypt abgesichert. Hier kannst du nun einen SMTP-Server zu Redmine hinzufügen und zusätzliche Erweiterungen und Themen für deine Redmine-Projektmanagement-Webanwendung installieren.

Das könnte dich auch interessieren …