Docker (recommandé)

Introduction

Ce manuel a été vérifié pour la dernière fois sur Alma Linux 8 et 9, en août 2023. Nous recommandons d’utiliser Linux comme système hôte.

Ce guide couvre l’installation et la configuration d’une instance Relution de base fonctionnant dans des conteneurs Docker.

Prérequis

Avant de commencer, assurez-vous que :

  • L’ordinateur hôte peut se connecter à Internet.
  • Vous êtes un utilisateur root ou avez les permissions pour les commandes sudo.
  • Vous avez un certificat SSL valide pour l’URL.

Les certificats auto-signés ne fonctionnent pas, car les appareils mobiles ne leur font pas confiance. ne leur font pas confiance. Vous pouvez installer votre certificat racine manuellement sur un appareil pour que l’appareil fasse confiance à votre certificat.

Cette approche n’est pas recommandée car elle nécessite beaucoup de travail. Les certificats de [Let’s Encrypt →] (https://letsencrypt.org/) ont été testés et fonctionnent. Notez que les appareils plus anciens peuvent ne pas faire confiance à ces certificats, étant donné qu’ils n’ont été que récemment mis en place en tant qu’autorité de certification (AC).

Préparation

Au cours de cette installation, certains fichiers doivent être édités manuellement. Si vous êtes familier avec vim, définissez-le comme éditeur par défaut à l’aide des commandes. Si vous n’êtes pas familier avec vim, veuillez sauter cette section et continuer à utiliser l’éditeur par défaut.

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

Vue d’ensemble

Composants :

  1. installer Docker et Docker Compose
  2. configurer les conteneurs
  3. Configurer nginx

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

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

systemctl enable docker
systemctl start docker

Configurer le conteneur

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

mkdir -p /opt/relution

Charger et éditer les fichiers de configuration

docker-compose.yml

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

Adaptez le fichier à votre environnement. Toutes les valeurs qui doivent être remplacées ont des espaces réservés sous la forme de ${Valeur}, par exemple ${MYSQL_ROOT_PASSWORD}. Vous devez remplacer les valeurs suivantes :

PlaceholderDescription
${MYSQL_ROOT_PASSWORD}Mot de passe racine de la base de données MariaDB
${MYSQL_PASSWORD}Le mot de passe de l’utilisateur de la base de données Relution
${NOM_DE_L’HÔTE_EXTERNE}Le nom d’hôte externe sous lequel Relution sera accessible

application.yml

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

Adaptez le fichier à votre environnement. Toutes les valeurs qui doivent être remplacées ont des espaces réservés sous la forme de %VALUE%, par exemple %EXT_HOSTNAME%. Les paramètres suivants doivent être adaptés :

PlaceholderDescription
%EXT_HOSTNAME_URL%L’adresse externe du serveur Relution, par exemple https://mdm.example.com
%MYSQL_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. **Le mot de passe initial de l’administrateur système doit être modifié après la première connexion, puis cette ligne doit être supprimée.
%SYSTEM_ADMIN_EMAIL%L’adresse e-mail de l’administrateur système.

Le fichier Docker Compose définit trois services : mariadb, relution et nginx.

Assurez-vous de remplacer les mots de passe définis dans ce fichier par des mots de passe plus sûrs. par des mots de passe plus sûrs. Par exemple, vous pouvez utiliser pwgen -snc 48 1 pour générer pour créer des mots de passe aléatoires et sûrs.

À l’exception du mot de passe de l’administrateur de l’organisation, ces mots de passe ne doivent pas être saisis par un humain. Il n’y a donc aucune raison d’utiliser des mots de passe faibles.

Si vous remplacez le mot de passe sur un conteneur de base de données, par exemple %MYSQL_PASSWORD%, assurez-vous d’utiliser le même mot de passe dans application.yml.

Si vous arrêtez un conteneur Docker, les données à l’intérieur du conteneur sont potentiellement perdues. Cela signifie que les données persistantes doivent être stockées en dehors du conteneur (par exemple, sur un volume monté).

La configuration par défaut fait correspondre les répertoires de données de MariaDB au système hôte. Relution stocke toutes ses données dans la base de données, aucune configuration supplémentaire n’est donc nécessaire.

Assurez-vous d’inclure MariaDB dans votre stratégie de sauvegarde.

Configuration de nginx

Nginx (“engine x”) est utilisé comme proxy inverse pour permettre l’accès à Relution et fournir simultanément un cryptage 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. Modifiez-le et adaptez-le à votre environnement si nécessaire.

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

Pour une sécurité accrue, vous devriez activer l’empilement SSL et utiliser un meilleur paramètre DH. DH. Fournissez les fichiers nécessaires et puis activez les options ssl_dhparam et ssl_stapling dans relution-nginx.conf.

Générer une clé

openssl dhparam -out /opt/relution/dhparams.pem 4096

relution-nginx.conf

ssl_dhparam /etc/nginx/dhparams.pem ;

Le fichier relution-nginx.conf est inclus dans le conteneur Docker en tant que volumevia le fichierdocker-compose.yml comme suit volumevia le fichierdocker-compose.yml comme suit :

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"

La configuration s’attend à ce que votre certificat SSL et votre clé dans /opt/relution/server.pem et /opt/relution/server.key. respectivement. Si ces fichiers se trouvent à un autre endroit ou ont un nom différent, ajustez les volumes du conteneur nginx en conséquence.

Convertir le certificat SSL →

Configuration de MariaDB

Téléchargez le fichier de configuration de MariaDB.

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

Ce fichier configure MariaDB pour qu’il utilise utf8mb4, ce qui est nécessaire pour le support des emojis et autres caractères Unicode. caractères Unicode. Sans cette configuration, l’importation des applications qui utilisent ces caractères dans leur nom ou leur description échouera.

NOTE : Le fichier relution.cnf est placé dans le conteneur Docker en tant que volume dans le répertoire relution.cnf. volume dans le fichier docker-compose.yml comme suit :

volumes :
  - "mariadb:/var/lib/mysql"
  - "/opt/relution/relution.cnf:/etc/mysql/conf.d/relution.cnf"

Si vous souhaitez déplacer ce fichier vers un autre emplacement, vous devez mettre à jour les volumes du conteneur mariadb en conséquence.

Démarrer la Relution

Pour démarrer les conteneurs Docker définis dans le fichier yaml, utilisez les commandes suivantes

cd /opt/relution/
docker compose up -d

Ceci téléchargera l’image Docker de chaque service défini dans le fichier docker-compose.yml. Les images sont mises en cache sur la machine locale afin que les lancements futurs soient plus rapides.

Il faut un certain temps pour que les services soient démarrés une fois que les téléchargements sont terminés. Pour voir le journal de sortie d’un conteneur particulier, utilisez la commande suivante :

docker logs -f <nom_du_conteneur>

Par exemple, utilisez docker logs -f docker_relution pour voir la sortie des logs de Relution.

Pour arrêter et supprimer les conteneurs, utilisez la commande suivante :

cd /opt/relution/
docker compose down

Cela ne supprimera pas les images téléchargées.

Mise à jour Relution

cd /opt/relution/
docker compose pull
docker compose up -d

Ceci téléchargera la dernière image Docker pour chaque conteneur avant que les conteneurs ne soient redémarrés. Le service Relution ne sera pas disponible tant que le redémarrage des conteneurs ne sera pas terminé.

Liste de contrôle pour l’installation sur site

Cette liste de contrôle est utilisée pour enregistrer l’état actuel de l’installation en cas de problèmes et pour permettre une assistance plus précise.

1. installation de base HôteTerminé
1.1 Distribution Linux installée (Alma / Rocky)Oui / Non
1.2 Internet disponible sur l’hôte (ping) Oui / Non
1.3 Root / Sudo disponible sur l’hôteOui / Non
1.4 Certificat SSL valide disponible pour l’URL Oui / Non
1.5 Connexion SSH ou TeamviewerOui / Non
2. logiciel nécessaireTerminé
2.1 Editeur de texte installé (Vim / Nano)Oui / Non
2.2 Docker installéOui / Non
2.3 docker compose installéOui / Non
2.4 Service Docker activé et démarréOui / Non
Préparation des fichiers de configuration - Terminé
3.1 Répertoire Relution crééOui / Non
3.2 docker-compose.yml chargéOui / Non
3.3 Placeholder in the docker-compose.yml editedYes / No
3.4 Proxy inverse nécessaire ?Oui / Non
3.5 application.yml chargéYes / No
3.6 Placeholder in application.yml éditéYes / No
4. configuration de nginxTerminé
4.1 Fichier de configuration chargéOui / Non
4.2 Paramètres DH créésOui / Non
4.3 Paramètres DH spécifiésOui / Non
4.4 Certificat SSL divisé en pem et cléOui / Non
4.5 pem et clé spécifiés en tant que volume Oui / Non
Configuration de MariaDB - Terminé
5.1 Fichier de configuration chargéOui / Non
6. RelutionTerminé
6.1 Relution démarreOui / Non

En cas de problèmes de démarrage avec Relution, veuillez envoyer le journal complet sous forme de fichier zip à l’assistance.

L’assistance est payante !