Installer un dossier patient informatisé en quelques clics avec Docker

Le logiciel de dossier patient informatisé MedShakeEHR peut être complexe à installer sur Windows et macOS. Je montrais déjà dans deux précédents tutoriels comment installer l’un et l’autre au moyen de machines virtuelles. Une méthode plus simple et unifiée est possible avec Docker. Elle rend aussi l’installation sur les plateformes ARM64 possible.

Installation de Docker

Quel que soit l’OS, vous pouvez passer la création de compte et les questionnaires lors de l’installation. Dans les paramètres, vous pourrez également désactiver l’envoi de statistique anonyme et activer le lancement automatique au démarrage

macOS

Rendez-vous sur la page de téléchargement. Choisissez le binaire pour Mac sous Intel ou Apple Silicon en fonction de votre modèle et installez-le comme n’importe quel autre logiciel, en suivant les différentes étapes d’installation.

Windows

Ouvrez d’abord le logiciel PowerShell en tant qu’administrateur et lancez la commande wsl –install.
Puis téléchargez le bon binaire suivant si votre processeur est X86 ou ARM.
Suivez l’installation, pensez bien à cocher Use WSL 2 instead of Hyper-V (recommanded).
Il vous sera demandé de redémarrer à la fin de l’installation si vous n’aviez pas encore installé WSL 2.
Installez Ubuntu via le Windows Store. Lancez l’application pour configurer un utilisateur et un mot de passe.

Récupération et personnalisation de la configuration

Lancez Docker Desktop.
Ouvrez un terminal en bas à droite de l’interface, créez et placez-vous dans le dossier de votre choix qui accueillera les fichiers de configurations de MedShakeEHR.
Par exemple pour un dossier MedShakeEHR dans Documents :

mkdir -p ~/Documents/MedShakeEHR # créer le dossier.
cd Documents/MedShakeEHR # se déplacer dans le dossier.
curl https://raw.githubusercontent.com/MedShake/MedShakeEHR-base/refs/heads/master/tools/docker/compose.yml -o compose.# Télécharger la pile logiciel docker compose.
curl https://raw.githubusercontent.com/MedShake/MedShakeEHR-base/refs/heads/master/tools/docker/sample.env -o .env # Télécharger les variables d'environnements à personnaliser.
nano .env # Modifier le fichier d'environnement, sous Windows, préfixez la commande par wsl -d Ubuntu

Le .env contient plusieurs variables :

TZ=Europe/Paris # Votre fuseau horaire.
MYSQL_ROOT_PASSWORD=PASSWORD # Le mot de passe administrateur de la base de donnée, à changer absolument.  
MYSQL_USER=docker # Le nom d'utilisateur de votre base de donnée qui contiendra les données de vos patients.  
MYSQL_PASSWORD=PASSWORD # Le mot de passe de la base de donnée qui contiendra les données de vos patients, à changer absolument. 
MYSQL_DATABASE=medshakeehr # Le nom de la base de donnée qui contiendra les données de vos patients.
MARIADB_AUTO_UPGRADE=1 # Ce paramètre mettra à jour automatiquement la base de donnée en cas de montée de version, 0 pour annuler ce comportement .
VIRTUAL_HOST=msehr.localhost # le nom de domaine local d'accès à votre site.
PROTO=https # Le protocole.
PORT=”” # le port d'accès si différent de 80 ou 443.
COOKIED=31104000 # le temps de conservation du cookie d'authentification.
FINGERPRINT=03Akxqa66Yw # supprimez cette ligne.
SQLVARPSWD=3Hcha5n9Bs # supprimez cette ligne.
USER_ID=1000 # l'id de votre utilisateur, vous pouvez taper dans votre terminal echo $UID et mettre le nombre donné.
GROUP_ID=1000 # le gid de votre utilisateur, le même que le USER_ID à priori.

# Si vous voulez configurer un VPN, sinon vous pouvez le supprimer.
VPN_CONFIG_PATH=vpn-config
VPN_DOM= wireguard.domain.com
INTERNAL_SUBNET=10.13.13.0

# Paramètre de mise à jour automatique des conteneurs ici vérification des mises à jour tous les jours à 2 heures du matin.  
WATCHTOWER_SCHEDULE= 0 \* 2 \* \* \*  # Mise à jour des conteneurs tous les jours à 2 heures du matin
WATCHTOWER_ROLLING_RESTART=true # Redémarre une image à la fois plutôt que toutes d'un coup
WATCHTOWER_CLEANUP=true # Supprime les anciennes images

Une fois toutes vos modifications effectuées, vous pouvez faire ctrl + x puis o pour sauvegarder et quitter

Une fois cette personnalisation faite, vous pouvez faire de même pour le compose.yml.
nano compose.yml

services:
  medshakeehr:
  ...
   	# Commentez cette ligne si vous savez construire l'image vous-même et dé-commentez celle du build
    image: marsante/msehr:latest 
    # build: 
    #  context: ./
    #  tags:
    #    - "marsante/msehr:master"
  ...
    volumes:
      # si vous voulez que le volume soit géré par docker, dé-commentez également le volume en bas du fichier
      # - medshakeehr:/var/www/html
      # if you use bind volume with arbitrary user create first the folder with the good permissions
      - ./data:/var/www/html
      # Si vous voulez personnaliser la configuration de php crée le fichier et dé-commentez cette ligne.
      # - ./config/30-custom-php.ini:/usr/local/etc/php/30-custom-php.ini:ro
  ...

ctrl + x puis o pour sauvegarder et fermer.

Quand tout est bon, tapez docker compose up -d, c’est parti pour le premier téléchargement, si vous voulez suivre l’évolution de l’installation, vous pouvez taper docker compose logs --follow.

Une fois l’ensemble des composants téléchargés, l’application sera disponible dans cet exemple sur https://msehr.localhost, accepter l’exception de sécurité du certificat autosigné et vous pouvez reprendre la documentation classique pour découvrir le logiciel.

Vous pouvez installer le module ostéopathe à partir de cet article.

Pour aller plus loin

Dans le fichier compose, vous pouvez voir des services avec l’option profiles. Ils ne sont pas lancés par défaut avec la commande docker compose up -d. Il faut appeler le profil par son nom, exemple pour le serveur Dicom (si vous avez un échographe ou pour phonecapture) docker compose --profile dicom up -d.

Toujours dans le fichier compose, vous pouvez voir au niveau du service proxy, l’option port. Si vous ne comptez utiliser votre logiciel que sur votre ordinateur, vous pouvez modifier l’ouverture des ports ainsi : - "127.0.0.1:80:80".

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Retour en haut