Docker (empfohlen)
Einleitung
Die Anleitung wurde zuletzt auf Alma Linux 8 und 9 geprüft, Stand Ausgust 2023. Wir empfehlen die Verwendung von Linux für das Hostsystem.
Diese Anleitung behandelt die Installation und Konfiguration einer grundlegenden Relution Instanz, die in Docker-Containern ausgeführt wird.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass:
- Der Host-Rechner sich mit dem Internet verbinden kann.
- Sie
root
odersudo
Rechte haben. - Sie ein gültiges SSL Zertifikat für die URL haben.
Selbst signierte Zertifikate funktionieren nicht, da mobile Geräte ihnen nicht vertrauen. Sie können Ihr Root-Zertifikat manuell auf einem Gerät installieren, damit das Gerät Ihrem Zertifikat vertraut.
Da dies sehr viel Arbeit mit sich bringt, wird diese Vorgehensweise nicht empfohlen. Zertifikate von Let’s Encrypt → sind getestet und funktionieren. Beachten Sie, dass ältere Geräte möglicherweise nicht diesen Zertifikaten nicht vertrauen, da sie erst vor kurzem als Zertifizierungsstelle (CA) eingerichtet wurden.
Vorbereitung
Während dieser Installation müssen einige Dateien manuell bearbeitet werden. Wenn Sie mit vim vertraut sind, setzen Sie ihn als Standardeditor mit den Befehlen fest. Wenn Sie mit vim nicht vertraut sind, überspringen Sie diesen Abschnitt bitte und verwenden Sie weiterhin den Standardeditor.
sudo dnf install -y vim
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100
Übersicht
Komponenten:
- Docker und Docker Compose installieren.
- Konfigurieren der Container.
- nginx konfigurieren.
Docker und Docker Compose installieren
Um Relution in einem Docker Container zu betreiben, müssen Sie vorher Docker
und docker compose
installieren.
Docker installieren
Bitte folgen Sie für Alma Linux diesen Befehlen:
dnf install -y dnf-utils wget
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Stellen Sie sicher, dass Sie den Docker-Dienst nach der Installation starten und aktivieren
, damit er nach einem Systemneustart verfügbar ist.
systemctl enable docker
systemctl start docker
Container konfigurieren
Erstellen Sie ein Verzeichnis für Relution-Konfigurationsdateien, z.b. für docker compose
.
mkdir -p /opt/relution
Konfigurationsdateien laden und bearbeiten
docker-compose.yml
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/docker-compose.yml \
--directory-prefix=/opt/relution
vim /opt/relution/docker-compose.yml
Passen Sie die Datei an Ihre Umgebung an. Alle Werte, die ersetzt werden
müssen haben Platzhalter in Form von ${Value}
, zum Beispiel
${MYSQL_ROOT_PASSWORD}
. Sie müssen mindestens die folgenden Werte ersetzen:
Platzhalter | Beschreibung |
---|---|
${MYSQL_ROOT_PASSWORD} | Root Passwort der MariaDB |
${MYSQL_PASSWORD} | Das Passwort des Relution Datenbank Benutzers |
${EXTERNAL_HOSTNAME} | Der Externe Hostname unter dem Relution erreichbar sein wird |
application.yml
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/application.yml \
--directory-prefix=/opt/relution
vim /opt/relution/application.yml
Passen Sie die Datei an Ihre Umgebung an. Alle Werte, die ersetzt werden
müssen haben Platzhalter in Form von %VALUE%
, zum Beispiel
%EXT_HOSTNAME%
. Sie müssen die folgenden Werte ersetzen:
Platzhalter | Beschreibung |
---|---|
%EXT_HOSTNAME_URL% | Die externe Adresse des Relution-Servers, z.B.https://mdm.example.com |
%MYSQL_PASSWORD% | Das Passwort des Relution-Datenbank-Benutzers |
%SYSTEM_ADMIN_PASSWORD% | Das initiale Passwort des Systemadministrator. Ändern Sie dies nach dem ersten Login und entfernen Sie danach diese Zeile. |
%SYSTEM_ADMIN_EMAIL% | Die Mailadresse des Systemadministrators |
Die Docker-Compose-Datei definiert drei Dienste: mariadb
, relution
und nginx
.
Stellen Sie sicher, dass Sie die in dieser Datei definierten Passwörter
durch sicherere Passwörter ersetzen. Sie können z. B. mit pwgen -snc 48 1
sichere Zufallspasswörter erzeugen.
Wenn Sie den Passwort-Platzhalter auf einem Datenbank Container ersetzen
z. B. %MYSQL_PASSWORD%
, stellen Sie sicher, dass Sie das gleiche Kennwort auch in der application.yml verwenden.
Wenn Sie einen Docker-Container herunterfahren, gehen Daten innerhalb des Containers potentiell verloren. Das bedeutet, dass Daten, die persistiert werden müssen, außerhalb außerhalb des Containers gespeichert werden (z. B. auf einem gemounteten Volume).
Die Standard Konfiguration bildet die Datenverzeichnisse von MariaDB auf dem Host System ab. Relution speichert alle seine Daten in der Datenbank, so dass keine zusätzliche Konfiguration erforderlich ist.
Konfiguration von nginx
Laden Sie die nginx-Konfigurationsdatei herunter. Bearbeiten Sie sie und passen Sie bei Bedarf die Datei an Ihre Umgebung an.
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/relution-nginx.conf \
--directory-prefix=/opt/relution
Für erhöhte Sicherheit sollten Sie SSL-Stapling aktivieren und bessere
DH-Parameter verwenden. Stellen Sie die Dateien bei Bedarf bereit und
aktivieren Sie dann die Optionen ssl_dhparam
und ssl_stapling
in der relution-nginx.conf.
Schlüssel generieren
openssl dhparam -out /opt/relution/dhparams.pem 4096
relution-nginx.conf
ssl_dhparam /etc/nginx/dhparams.pem;
Die Datei relution-nginx.conf
wird in den Docker-Container als
Volume
über die Datei docker-compose.yml
wie folgt eingebunden:
volumes:
- "/opt/relution/relution-nginx.conf:/etc/nginx/conf.d/relution-nginx.conf"
- "/opt/relution/server.pem:/etc/nginx/server.pem"
- "/opt/relution/server.key:/etc/nginx/server.key"
- "/opt/relution/dhparams.pem:/etc/nginx/dhparams.pem"
Die Konfiguration erwartet, dass sich Ihr SSL-Zertifikat und Ihr
Schlüssel in /opt/relution/server.pem
und /opt/relution/server.key
befinden. Wenn sich diese Dateien an einem anderen Ort befinden oder
einen anderen Namen haben, passen Sie die Volumes
des nginx-Containers
entsprechend an.
Konfiguration von MariaDB
Laden Sie die MariaDB-Konfigurationsdatei herunter.
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/relution.cnf \
--directory-prefix=/opt/relution
Diese Datei konfiguriert MariaDB für die Verwendung von utf8mb4, das für die Unterstützung von Emojis und anderen Unicode-Zeichen erforderlich ist. Ohne diese Konfiguration schlägt der Import von Apps, die diese Zeichen in ihrem App-Namen oder ihrer Beschreibung verwenden, fehl.
HINWEIS: Die Datei relution.cnf
wird in den Docker-Container als
Volume
in der Datei docker-compose.yml
wie folgt eingebunden:
volumes:
- "mariadb:/var/lib/mysql"
- "/opt/relution/relution.cnf:/etc/mysql/conf.d/relution.cnf"
Wenn Sie diese Datei an einen anderen Ort verschieben möchten, müssen
Sie die volumes
des mariadb-Containers entsprechend aktualisieren.
Relution starten
Um die Docker-Container zu starten, die in der yaml-Datei definiert sind verwenden Sie folgende Befehle
cd /opt/relution/
docker compose up -d
Dadurch wird das Docker-Image jedes Dienstes heruntergeladen, der in der
Datei Datei docker-compose.yml
definierte wurde. Die Images werden auf
dem lokalen Rechner zwischengespeichert, sodass zukünftige Starts
schneller möglich sind.
Es dauert einige Zeit, bis die Dienste gestartet werden, sobald die Downloads abgeschlossen sind. Um das Log-Output eines bestimmten Containers zu sehen, verwenden Sie den folgenden Befehl:
docker logs -f <container_name>
Verwenden Sie zum Beispiel docker logs -f docker_relution
, um die Logausgabe von Relution einzusehen.
Zum Herunterfahren und Entfernen der Container verwenden Sie den folgenden Befehl:
cd /opt/relution/
docker compose down
Dadurch werden die heruntergeladenen Images nicht entfernt.
Relution Updaten
cd /opt/relution/
docker compose pull
docker compose up -d
Dadurch wird das neueste Docker-Image für jeden Container heruntergeladen, bevor die Container neu gestartet werden. Der Relution-Dienst wird nicht verfügbar sein, bis der Neustart der Container abgeschlossen ist.
Checkliste On-Premise-Installation
Diese Checkliste dient dazu, bei auftretenden Problemen den aktuellen Stand der Installation zu erfassen und eine genauere Unterstützung zu ermöglichen.
1. Grundinstallation Host | Abgeschlossen |
---|---|
1.1 Linux Distribution installiert (Alma / Rocky) | Ja / Nein |
1.2 Internet am Host verfügbar (ping) | Ja / Nein |
1.3 Root / Sudo am Host verfügbar | Ja / Nein |
1.4 Gültiges SSL Zertifikat für die URL vorhanden | Ja / Nein |
1.5 SSH oder TeamViewer Zugang | Ja / Nein |
2. Notwendige Software | Abgeschlossen |
---|---|
2.1 Texteditor installiert (Vim / Nano) | Ja / Nein |
2.2 Docker installiert | Ja / Nein |
2.3 docker compose installiert | Ja / Nein |
2.4 Docker Dienst aktiviert und gestartet | Ja / Nein |
3. Vorbereitung Konfigurationsdateien | Abgeschlossen |
---|---|
3.1 Relution Verzeichnis angelegt | Ja / Nein |
3.2 docker-compose.yml geladen | Ja / Nein |
3.3 Platzhalter in der docker-compose.yml bearbeitet | Ja / Nein |
3.4 Reverse Proxy notwendigt? | Ja / Nein |
3.5 application.yml geladen | Ja / Nein |
3.6 Platzhalter in der aplication.yml bearbeitet | Ja / Nein |
4. nginx konfiguration | Abgeschlossen |
---|---|
4.1 Konfiguratiosndatei geladen | Ja / Nein |
4.2 DH Parameter erstellt | Ja / Nein |
4.3 DH Parameter angegeben | Ja / Nein |
4.4 SSL Zertifikat in pem und key aufgeteilt | Ja / Nein |
4.5 pem und key als Volume angegeben | Ja / Nein |
5. MariaDB konfiguration | Abgeschlossen |
---|---|
5.1 Konfiguratiosndatei geladen | Ja / Nein |
6. Relution | Abgeschlossen |
---|---|
6.1 Relution startet | Ja / Nein |
Bei Startproblemen mit Relution bitte die komplette Log als Zip File an den Support senden.