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 yum -y install 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
Installieren Sie Docker Compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
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
Erstellen Sie ein Verzeichnis für Relution:
mkdir /opt/relution/
Container konfigurieren
Erstellen Sie ein Verzeichnis für die Konfigurationsdatei von 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
vi /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 https://mdm.example.com |
${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
editor /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 mindestens 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 |
%SMTP_HOSTNAME% | Der Hostname des SMTP Servers |
%SMTP_PORT% | Der Port des SMTP Servers (default: 25) |
%SMTP_USERNAME% | Der Benutzername des SMTP Servers |
%SMTP_PASSWORD% | Das PAsswort des SMTP Serverbenutzers |
%SYSTEM_ADMIN_PASSWORD% | Das initiale Passwort des
Systemadministrators |
%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.