Docker (Recommandé)
Ce guide a été vérifié pour la dernière fois sur Rocky / Alma Linux 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, s’assurer que les exigences suivantes sont remplies :
- La machine hôte peut se connecter à Internet.
- Disposer des droits
rootousudo. - Optionnel : Un certificat SSL valide pour l’URL.
Préparation
En cas de familiarité avec vim, il peut être défini comme éditeur par défaut. Ignorer cette section pour 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 :
- Installer Docker et Docker Compose.
- Configurer les Conteneurs.
- Configurer Traefik ou nginx.
Installation de Docker et Docker Compose
Pour exécuter Relution dans un conteneur Docker, Docker et docker compose doivent d’abord être installés.
Installer Docker
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
S’assurer 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
kernel-modules-extra, ce qui empêche le service Docker de démarrer. Dans ce cas, exécuter les étapes décrites dans Docker ne démarre pas sur EL10 → avant le premier démarrage de Docker. Sur EL9, cela n’est pas nécessaire.Configuration des Conteneurs
Créer un répertoire pour les fichiers de configuration Relution, par exemple pour docker compose.
mkdir -p /opt/relution
compose.yaml
Télécharger le fichier :
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/compose.yaml \
--directory-prefix=/opt/relution
Modifier le fichier :
vim /opt/relution/compose.yaml
Adapter le fichier à l’environnement. Au moins l’espace réservé suivant doit être remplacé :
| Espace Réservé | Description |
|---|---|
%POSTGRES_PASSWORD% | Le mot de passe de l’utilisateur de la base de données Relution |
application.yml
Télécharger le fichier :
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/docker/Linux/opt/relution/application.yml \
--directory-prefix=/opt/relution
Modifier le fichier :
vim /opt/relution/application.yml
Adapter le fichier à l’environnement. Les espaces réservés suivants doivent être remplacés :
| 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. À changer après la première connexion, puis à supprimer de 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. Utiliser des mots de passe aléatoires sécurisés pour les mots de passe (par exemple, avec pwgen -snc 48 1).
En cas de remplacement de l’espace réservé du mot de passe dans un conteneur (par exemple, %POSTGRES_PASSWORD%), s’assurer d’utiliser le même mot de passe dans l’application.yml.
Configuration de Traefik (Proxy Inverse)
Création Automatique de Certificats (Let’s Encrypt)
Télécharger le fichier de configuration Traefik et l’adapter à l’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é
https://, contrairement à l’application.yml.Démarrage de Relution
Accéder au répertoire Relution et démarrer 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
Facultatif
Statiques traefik Certificats
Télécharger 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.static_cert.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.static_cert.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
...
Nginx comme Alternative à Traefik (Proxy Inverse)
Télécharger 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
Remplacer 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.
Générer la clé :
openssl dhparam -out /opt/relution/dhparams.pem 4096Ajuster
relution-nginx.conf: Ajouter la ligne (et activerssl_staplingsi nécessaire) :ssl_dhparam /etc/nginx/dhparams.pem;Étendre les Volumes
compose.yaml: Ajuster lesVolumesdu 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 le certificat SSL et la clé se trouvent dans /opt/relution/server.pem et /opt/relution/server.key. Sinon, ajuster les Volumes du conteneur nginx en conséquence.
Conversion du Certificat SSL →
/Microsoft-Server-ActiveSync dans la configuration nginx doit pointer vers le service SMG et non vers Relution. Voir Secure Mail Gateway →.L'accès est interdit lors de la connexion, car la requête du proxy n’est par défaut pas considérée comme fiable. De plus, l’en-tête proxy_set_header X-Forwarded-Proto $scheme; doit être correctement défini dans la configuration nginx. Pour la solution, voir Connexion : L’accès est interdit →.Mise à Jour de Relution
Pour mettre à jour les services, utiliser 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, envoyer le journal complet sous forme de fichier Zip au support. Le support est payant.