Docker (empfohlen)
Relution Installation mit Docker auf Linux Host
Einleitung
Die Anleitung wurde zuletzt auf Rocky / Alma Linux 8, 9 und 10 geprüft
(Stand Dez. 2025). 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 folgende Punkte erfüllt sind:
- Der Host-Rechner sich mit dem Internet verbinden kann.
- Über
rootodersudoRechte verfügen. - Optional: Ein gültiges SSL Zertifikat für die URL.
Wichtig: Selbst signierte Zertifikate funktionieren nicht, da mobile Geräte ihnen nicht vertrauen. Sie können Ihr Root-Zertifikat manuell auf einem Gerät installieren, aber diese Vorgehensweise ist aufgrund des hohen Aufwands nicht empfohlen. Zertifikate von Let’s Encrypt → sind getestet und funktionieren.
Vorbereitung
Wenn Sie mit vim vertraut sind, können Sie ihn als Standardeditor festlegen. Überspringen Sie diesen Abschnitt, wenn Sie den Standardeditor verwenden möchten.
sudo dnf install -y vim
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100
Übersicht
Die Installation gliedert sich in folgende Hauptschritte:
- Docker und Docker Compose installieren.
- Container konfigurieren.
- Traefik oder 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 / Rocky 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
compose.yaml
Laden Sie die Datei herunter:
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/compose.yaml \
--directory-prefix=/opt/relution
Bearbeiten Sie die Datei:
vim /opt/relution/compose.yaml
Passen Sie die Datei an Ihre Umgebung an. Sie müssen mindestens den folgenden Platzhalter ersetzen:
| Platzhalter | Beschreibung |
|---|---|
%POSTGRES_PASSWORD% | Das Passwort des Relution Datenbank Benutzer |
application.yml
Laden Sie die Datei herunter:
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/application.yml \
--directory-prefix=/opt/relution
Bearbeiten Sie die Datei:
vim /opt/relution/application.yml
Passen Sie die Datei an Ihre Umgebung an. Sie müssen die folgenden Platzhalter ersetzen:
| Platzhalter | Beschreibung |
|---|---|
%EXT_HOSTNAME_URL% | Die externe Adresse des Relution-Servers, z.B. https://mdm.example.com |
%POSTGRES_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 |
Hinweis zu Passwörtern: Die Compose-Datei definiert drei Dienste:
database,relutionundtraefik. Verwenden Sie für die Passwörter sichere Zufallspasswörter (z. B. mitpwgen -snc 48 1). Wenn Sie den Passwort-Platzhalter in einem Container (z. B.%POSTGRES_PASSWORD%) ersetzen, stellen Sie sicher, dass Sie das gleiche Kennwort auch in derapplication.ymlverwenden.
Datenpersistenz: Die Standard Konfiguration bildet die Datenverzeichnisse von PostgreSQL auf das Host System ab. Relution speichert alle seine Daten in der Datenbank, so dass keine zusätzliche Konfiguration erforderlich ist. Stellen Sie sicher, dass Sie PostgreSQL in Ihre Backup-Strategie einbeziehen.
Konfiguration von Traefik (Reverse Proxy)
Traefik wird als Reverse Proxy verwendet, um den Zugriff auf Relution zu ermöglichen und gleichzeitig SSL/TLS-Verschlüsselung bereitzustellen. Ohne Traefik oder einen ähnlichen Proxy ist der Zugriff auf Relution nur lokal über localhost möglich.
Automatische Zertifikatserstellung (Let’s Encrypt)
Laden Sie die Traefik-Konfigurationsdatei herunter und passen Sie sie an Ihre Umgebung an:
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/relution.yaml \
--directory-prefix=/opt/relution/configs/traefik
In der Datei /opt/relution/configs/traefik/relution.yaml muss der Platzhalter external.url durch die tatsächliche externe URL ersetzt werden:
vim /opt/relution/configs/traefik/relution.yaml
http:
routers:
relution:
rule: Host(`external.url`) # Platzhalter ersetzen
Hinweis: Die Angabe der External URL erfolgt hier, anders als in der application.yml, ohne vorangeführtem
https://.
Anderweitig bezogene Zertifikate (Statisch)
Laden Sie die Konfigurationsdatei für statische Zertifikate herunter:
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/relution.static_cert.yaml \
--directory-prefix=/opt/relution/configs/traefik
In der Datei /opt/relution/configs/traefik/relution.yaml muss der Platzhalter external.url durch die tatsächliche externe URL ersetzt werden:
vim /opt/relution/configs/traefik/relution.yaml
http:
routers:
relution:
rule: Host(`external.url`) # Platzhalter ersetzen
Die Zertifikatskette und der entsprechende private Schlüssel müssen unter server.pem und server.key im Verzeichnis /opt/relution/certs/static abgelegt werden.
Zudem muss der traefik: Block in der compose.yml angepasst werden:
...
traefik:
...
command:
- --providers.file.directory=/opt/traefik/
- --entryPoints.web.address=:80
- --entryPoints.web.http.redirections.entryPoint.to=websecure
- --entryPoints.web.http.redirections.entryPoint.scheme=https
- --entryPoints.websecure.address=:443
...
volumes:
- ./configs/traefik:/opt/traefik
- ./certs/static:/opt/certs
...
Konfiguration von nginx alternativ zu Traefik (Reverse Proxy)
Nginx wird als Reverse Proxy verwendet, um den Zugriff auf Relution zu ermöglichen und gleichzeitig SSL/TLS-Verschlüsselung bereitzustellen. Ohne Nginx oder einen ähnlichen Proxy ist der Zugriff auf Relution nur lokal über localhost möglich.
Laden Sie die nginx-Konfigurationsdatei herunter:
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/relution-nginx.conf \
--directory-prefix=/opt/relution
Ersetzen Sie den traefik: Block in der compose.yaml durch diesen nginx: Block:
nginx:
image: nginx:stable
restart: unless-stopped
container_name: nginx
depends_on:
- relution
environment:
TZ: "Europe/Berlin"
NGINX_HOST: "%EXT_HOSTNAME%"
ports:
- "80:80"
- "443:443"
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"
Für erhöhte Sicherheit wird die Verwendung besserer DH-Parameter empfohlen.
Schlüssel generieren:
openssl dhparam -out /opt/relution/dhparams.pem 4096relution-nginx.confanpassen: Fügen Sie die Zeile hinzu (und aktivieren Sie ggf.ssl_stapling):ssl_dhparam /etc/nginx/dhparams.pem;compose.yamlVolumes erweitern: Passen Sie dieVolumesdes nginx-Containers an, um die DH-Parameter einzubinden: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" # Hinzugefügt
Die Konfiguration erwartet, dass sich Ihr SSL-Zertifikat und Ihr Schlüssel in /opt/relution/server.pem und /opt/relution/server.key befinden. Andernfalls passen Sie die Volumes des nginx-Containers an.
Relution starten
Wechseln Sie in das Relution-Verzeichnis und starten Sie die Docker-Container:
cd /opt/relution/
docker compose up -d
Dadurch werden die Images heruntergeladen und die Dienste gestartet. Es kann einige Zeit dauern, bis die Dienste verfügbar sind.
Um die Log-Ausgabe eines bestimmten Containers zu sehen (z.B. Relution):
docker logs -f <container_name> # Beispiel: docker logs -f relution
Herunterfahren
Zum Herunterfahren und Entfernen der Container (die Images bleiben erhalten):
cd /opt/relution/
docker compose down
Relution Updaten
Um die Dienste zu aktualisieren, verwenden Sie folgende Befehle:
cd /opt/relution/
docker compose pull # Lädt das neueste Image herunter
docker compose up -d # Stoppt und startet die Container neu
Der Relution-Dienst wird während des Neustarts nicht verfügbar sein.
Bei Startproblemen mit Relution bitte die komplette Log als Zip-Datei an den Support senden. Der Support ist kostenpflichtig!