Docker (empfohlen)

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 root oder sudo Rechte 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:

  1. Docker und Docker Compose installieren.
  2. Container konfigurieren.
  3. 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

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:

PlatzhalterInhalt
/opt/relution/secrets/postgres_passwordDas Passwort des Relution-Datenbank-Benutzers
/opt/relution/secrets/system_admin_passwordDas initiale Passwort des Systemadministrator. Nach dem ersten Login ändern.

compose.yaml

Die Datei herunterladen:

compose.yaml
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:

application.yml
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:

PlatzhalterBeschreibung
%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:

relution.yaml
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
relution.yaml
http:
  routers:
    relution:
      rule: Host(`external.url`) # Platzhalter ersetzen

Optional

Traefik - statische Zertifikate

Die Konfigurationsdatei für statische Zertifikate herunterladen:

relution.static_cert.yaml
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
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:

compose.yaml
...
  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:

relution-nginx.conf
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:

compose.yaml
  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.

  1. Schlüssel generieren:

    openssl dhparam -out /opt/relution/dhparams.pem 4096
    
  2. relution-nginx.conf anpassen: Die Zeile hinzufügen (und ggf. ssl_stapling aktivieren):

    ssl_dhparam /etc/nginx/dhparams.pem;
    
  3. compose.yaml Volumes erweitern: Die Volumes des nginx-Containers anpassen, um die DH-Parameter einzubinden:

    compose.yaml
    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 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.

SSL Zertifikat umwandeln →


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
Top