Docker (empfohlen)
Auf dieser Seite
Die Anleitung wurde zuletzt auf Rocky / Alma Linux 9 und 10 geprüft.
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
Vor dem Beginn sicherstellen, 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.
Vorbereitung
Bei Vertrautheit mit vim lässt sich dieser als Standardeditor festlegen. Bei Verwendung des Standardeditors kann dieser Abschnitt übersprungen werden.
sudo dnf install -y vim
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100
Ablauf der Installation
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 vorher Docker und docker compose installiert werden.
Docker installieren
Für Alma / Rocky Linux gelten folgende Befehle:
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
Sicherstellen, dass der Docker-Dienst nach der Installation gestartet und aktiviert wird, damit er nach einem Systemneustart verfügbar ist.
systemctl enable docker
systemctl start docker
kernel-modules-extra, wodurch der Docker-Dienst nicht startet. In diesem Fall vor dem ersten Start von Docker die Schritte unter Docker startet nicht auf EL10 → ausführen. Auf EL9 ist dies nicht erforderlich.Container konfigurieren
Ein Verzeichnis für Relution-Konfigurationsdateien erstellen, z.b. für docker compose.
mkdir -p /opt/relution
mkdir /opt/relution/secrets
Vorbereitung Passwörter
Für die Passwörter sichere Zufallspasswörter verwenden (z. B. mit pwgen -snc 48 1).
Die folgenden Dateien erzeugen:
| Platzhalter | Inhalt |
|---|---|
/opt/relution/secrets/postgres_password | Das Passwort des Relution-Datenbank-Benutzers |
/opt/relution/secrets/system_admin_password | Das initiale Passwort des Systemadministrator. Nach dem ersten Login ändern. |
compose.yaml
Die Datei herunterladen:
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/compose.yaml \
--directory-prefix=/opt/relution
Die Compose-Datei definiert drei Dienste: database, relution und traefik.
application.yml
Die Datei herunterladen:
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/application.yml \
--directory-prefix=/opt/relution
Die Datei bearbeiten:
vim /opt/relution/application.yml
Die Datei an die eigene Umgebung anpassen. Dabei müssen die folgenden Platzhalter ersetzt werden:
| Platzhalter | Beschreibung |
|---|---|
%EXT_HOSTNAME_URL% | Die externe Adresse des Relution-Servers, z.B. https://mdm.example.com |
%SYSTEM_ADMIN_EMAIL% | Die Mailadresse des Systemadministrators |
Konfiguration von Traefik (Reverse Proxy)
Automatische Zertifikatserstellung (Let’s Encrypt)
Die Traefik-Konfigurationsdatei herunterladen und an die eigene Umgebung anpassen:
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
https://.Optional
Traefik - statische Zertifikate
Die Konfigurationsdatei für statische Zertifikate herunterladen:
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.static_cert.yaml muss der Platzhalter external.url durch die tatsächliche externe URL ersetzt werden:
vim /opt/relution/configs/traefik/relution.static_cert.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.yaml 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
...
Nginx alternativ zu Traefik (Reverse Proxy)
Die nginx-Konfigurationsdatei herunterladen:
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/relution-nginx.conf \
--directory-prefix=/opt/relution
Den traefik: Block in der compose.yaml durch diesen nginx: Block ersetzen:
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: Die Zeile hinzufügen (und ggf.ssl_staplingaktivieren):ssl_dhparam /etc/nginx/dhparams.pem;compose.yamlVolumes erweitern: DieVolumesdes nginx-Containers anpassen, um die DH-Parameter einzubinden:compose.yamlvolumes: - "/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 das SSL-Zertifikat und der Schlüssel in /opt/relution/server.pem und /opt/relution/server.key befinden. Andernfalls müssen die Volumes des nginx-Containers angepasst werden.
/Microsoft-Server-ActiveSync-Pfad in der nginx-Konfiguration auf den SMG-Dienst zeigen, nicht auf Relution. Siehe Secure Mail Gateway →.Zugang nicht gestattet kommen, da die Anfrage des Proxys standardmäßig nicht als vertrauenswürdig eingestuft wird. Zudem muss der Header proxy_set_header X-Forwarded-Proto $scheme; in der nginx-Konfiguration korrekt gesetzt sein. Lösung siehe Login: Zugang nicht gestattet →.Relution starten
In das Relution-Verzeichnis wechseln und die Docker-Container starten:
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