Docker (Recommandé)

Installation de Relution avec Docker sur Hôte Linux

Introduction

Ce guide a été vérifié pour la dernière fois sur Rocky / Alma Linux 8, 9 et 10
(État Déc. 2025). Nous recommandons l’utilisation de Linux pour le système hôte.

Ce guide couvre l’installation et la configuration d’une instance Relution de base, qui s’exécute dans des conteneurs Docker.


Prérequis

Avant de commencer, assurez-vous que les exigences suivantes sont remplies :

  • La machine hôte peut se connecter à Internet.
  • Vous disposez des droits root ou sudo.
  • Optionnel : Un certificat SSL valide pour l’URL.

Important : Les certificats auto-signés ne fonctionnent pas, car les appareils mobiles ne leur font pas confiance. Vous pouvez installer manuellement votre certificat racine sur un appareil, mais cette procédure n’est pas recommandée en raison de l’effort considérable. Les certificats de Let’s Encrypt → ont été testés et fonctionnent.


Préparation

Si vous êtes familier avec vim, vous pouvez le définir comme éditeur par défaut. Veuillez ignorer cette section si vous souhaitez continuer à utiliser l’éditeur standard.

sudo dnf install -y vim
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100

Aperçu

L’installation est divisée en étapes principales suivantes :

  1. Installer Docker et Docker Compose.
  2. Configurer les Conteneurs.
  3. Configurer Traefik ou nginx.

Installation de Docker et Docker Compose

Pour exécuter Relution dans un conteneur Docker, vous devez d’abord installer Docker et docker compose.

Installer Docker

Veuillez suivre ces commandes pour Alma / Rocky Linux :

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

Assurez-vous de démarrer et d’activer le service Docker après l’installation afin qu’il soit disponible après un redémarrage du système.

systemctl enable docker
systemctl start docker

Configuration des Conteneurs

Créez un répertoire pour les fichiers de configuration Relution, par exemple pour docker compose.

mkdir -p /opt/relution

Téléchargement et Modification des Fichiers de Configuration

compose.yaml

Téléchargez le fichier :

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/compose.yaml \
    --directory-prefix=/opt/relution

Modifiez le fichier :

vim /opt/relution/compose.yaml

Adaptez le fichier à votre environnement. Vous devez remplacer au moins l’espace réservé suivant :

Espace RéservéDescription
%POSTGRES_PASSWORD%Le mot de passe de l’utilisateur de la base de données Relution

application.yml

Téléchargez le fichier :

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/application.yml \
    --directory-prefix=/opt/relution

Modifiez le fichier :

vim /opt/relution/application.yml

Adaptez le fichier à votre environnement. Vous devez remplacer les espaces réservés suivants :

Espace RéservéDescription
%EXT_HOSTNAME_URL%L’adresse externe du serveur Relution, par exemple https://mdm.example.com
%POSTGRES_PASSWORD%Le mot de passe de l’utilisateur de la base de données Relution
%SYSTEM_ADMIN_PASSWORD%Le mot de passe initial de l’administrateur système. Changez-le après la première connexion et supprimez ensuite cette ligne.
%SYSTEM_ADMIN_EMAIL%L’adresse e-mail de l’administrateur système

Remarque sur les Mots de Passe : Le fichier Compose définit trois services : database, relution et traefik. Utilisez des mots de passe aléatoires sécurisés pour les mots de passe (par exemple, avec pwgen -snc 48 1). Si vous remplacez l’espace réservé du mot de passe dans un conteneur (par exemple, %POSTGRES_PASSWORD%), assurez-vous d’utiliser le même mot de passe dans l’application.yml.

Persistance des Données : La configuration standard mappe les répertoires de données PostgreSQL au système hôte. Relution stocke toutes ses données dans la base de données, aucune configuration supplémentaire n’est donc requise. Assurez-vous d’inclure PostgreSQL dans votre stratégie de sauvegarde.


Configuration de Traefik (Proxy Inverse)

Traefik est utilisé comme proxy inverse pour permettre l’accès à Relution tout en fournissant le chiffrement SSL/TLS. Sans Traefik ou un proxy similaire, l’accès à Relution n’est possible que localement via localhost.

Création Automatique de Certificats (Let’s Encrypt)

Téléchargez le fichier de configuration Traefik et adaptez-le à votre environnement :

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/relution.yaml \
    --directory-prefix=/opt/relution/configs/traefik

Dans le fichier /opt/relution/configs/traefik/relution.yaml, l’espace réservé external.url doit être remplacé par l’URL externe réelle sous laquelle Relution doit être accessible :

vim /opt/relution/configs/traefik/relution.yaml
http:
  routers:
    relution:
      rule: Host(`external.url`) # Remplacer l'espace réservé

Remarque : L’URL externe ici est spécifiée sans le préfixe https://, contrairement à l’application.yml.

Certificats Obtenus par d’Autres Moyens (Statiques)

Téléchargez le fichier de configuration pour les certificats statiques :

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/relution.static_cert.yaml \
    --directory-prefix=/opt/relution/configs/traefik

Dans le fichier /opt/relution/configs/traefik/relution.yaml, l’espace réservé external.url doit être remplacé par l’URL externe réelle sous laquelle Relution doit être accessible :

vim /opt/relution/configs/traefik/relution.yaml
http:
  routers:
    relution:
      rule: Host(`external.url`) # Remplacer l'espace réservé

La chaîne de certificats et la clé privée correspondante doivent être placées sous server.pem et server.key dans le répertoire /opt/relution/certs/static.

De plus, le bloc traefik: dans le compose.yml doit être ajusté :

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

Configuration de nginx comme Alternative à Traefik (Proxy Inverse)

Nginx est utilisé comme proxy inverse pour permettre l’accès à Relution tout en fournissant le chiffrement SSL/TLS. Sans Nginx ou un proxy similaire, l’accès à Relution n’est possible que localement via localhost.

Téléchargez le fichier de configuration nginx :

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/relution-nginx.conf \
    --directory-prefix=/opt/relution

Remplacez le bloc traefik: dans le compose.yaml par ce bloc nginx: :

  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"

Pour une sécurité accrue, l’utilisation de meilleurs paramètres DH est recommandée.

  1. Générer la clé :

    openssl dhparam -out /opt/relution/dhparams.pem 4096
    
  2. Ajuster relution-nginx.conf : Ajoutez la ligne (et activez ssl_stapling si nécessaire) :

    ssl_dhparam /etc/nginx/dhparams.pem;
    
  3. Étendre les Volumes compose.yaml : Ajustez les Volumes du conteneur nginx pour inclure les paramètres DH :

    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" # Ajouté
    

La configuration s’attend à ce que votre certificat SSL et votre clé se trouvent dans /opt/relution/server.pem et /opt/relution/server.key. Sinon, ajustez les Volumes du conteneur nginx en conséquence.

Conversion du Certificat SSL →


Démarrage de Relution

Accédez au répertoire Relution et démarrez les conteneurs Docker :

cd /opt/relution/
docker compose up -d

Ceci téléchargera les images et démarrera les services. Il faudra peut-être un certain temps avant que les services ne soient disponibles.

Pour afficher la sortie du journal d’un conteneur spécifique (par exemple, Relution) :

docker logs -f <container_name> # Exemple : docker logs -f relution

Arrêt

Pour arrêter et supprimer les conteneurs (les images sont conservées) :

cd /opt/relution/
docker compose down

Mise à Jour de Relution

Pour mettre à jour les services, utilisez les commandes suivantes :

cd /opt/relution/
docker compose pull # Télécharge la dernière image
docker compose up -d # Arrête et redémarre les conteneurs

Le service Relution ne sera pas disponible tant que le redémarrage du conteneur ne sera pas terminé.


En cas de problèmes de démarrage avec Relution, veuillez envoyer le journal complet sous forme de fichier Zip au support. Le support est payant.