Installation

Documentation d’installation de la PFI

La DevBox-Sante PFI a besoin d’accéder à un service de base de données MongoDB ainsi qu’à l’antivirus Clamav.

La DevBox-Sante PFI est un serveur qui peut être configuré sur différents protocoles de communication :

  • mllp
  • file
  • sftp

Pré-requis

Il faut disposer d’une VM (8Go RAM minimum) permettant d’accueillir un environnement “dockerisé” pour lequel il faudra prévoir un espace de stockage pour la base de données MongoDB (1 To minimum).

Docker Compose

Pour une installation de la Devbox-santé, il faut mettre en place 4 services :

  • mongodb : persistance des données (traces)
  • clamav : antivirus
  • pfi : serveur de la pfi
  • back-office : outil d’administration et de visualisation des traces

Tout cela Au sein d’un meme réseau : pfi-network protégé.

!theme aws-orange

actor "BO_administrateur" as bo_admin
component "DPI" as dpi

card "Docker pfi-network" {
  component "pfi-back-office" as bo
  database mongodb as db
  component "pfi-server" as pfi
  component "clamav" as av
}


dpi -r-> pfi : mllp/sftp/file
pfi -d-> db 
bo -l-> db
pfi -> av

bo_admin -u-> bo : http

Un bon point de départ est ce fichier compose.yml :

name: devboxsante-pfi-${DEVBOX_PFI_VERSION}

x-common-env: &common-env
  DEVBOX_LM_ENV: ${DEVBOX_LM_ENV:-dev}
  DEVBOX_LM_CLIENT: ${DEVBOX_LM_CLIENT}
  DEVBOX_LM_TOKEN: ${DEVBOX_LM_TOKEN}
  DEVBOX_PFI_KEYSTORE_PATH: ${DEVBOX_PFI_KEYSTORE_PATH:-file:/shared/keystore/pfi-keystore.jks}
  DEVBOX_PFI_KEYSTORE_PASSWORD: ${DEVBOX_PFI_KEYSTORE_PASSWORD:-changeIt}
  MONGO_DB_URI: mongodb://mongodb:27017/pfi

x-logging: &default-logging
  driver: "json-file"
  options:
    max-size: "20m"
    max-file: "10"

networks:
  pfi-network:

services:

  # =========================
  # MongoDB
  # =========================
  mongodb:
    image: mongo:8
    container_name: pfi-mongodb
    networks:
      - pfi-network
    volumes:
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/pfi/mongodb:/data/db  # contient les fichiers de la base pour sauvegarde

    restart: unless-stopped

  # =========================
  # Clamav
  # =========================
  clamav:
    image: clamav/clamav:1.5.1
    container_name: pfi-clamav
    networks:
      - pfi-network
    volumes:
      -  ${DEVBOX_VOLUME_ROOT:-}/dbx/pfi/clamav:/var/lib/clamav
    restart: unless-stopped


  # =========================
  # Pfi server
  # =========================
  pfi:
    image: devboxsante/devboxsante-pfi-server:${DEVBOX_PFI_VERSION:-dev}
    container_name: pfi-server
    depends_on:
      - mongodb
    networks:
      - pfi-network
    ports:
      - "${DEVBOX_PFI_EXPOSED_PORT_RANGE:-2020-2050}:${DEVBOX_PFI_EXPOSED_PORT_RANGE:-2020-2050}"
    logging: *default-logging
    volumes:
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/pfi/server/config:/config  # contient la config springframework (application.yml)
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/pfi/shared:/shared # volume partagé avec pfi-connect de la devbox-sante
    
    environment:
      <<: *common-env
      JAVA_OPTS: "-Xms1024M -Xmx1536M"
      
    restart: on-failure:1


  # =========================
  # Back-Office
  # =========================
  back-office:
    image: devboxsante/devboxsante-pfi-backoffice:${DEVBOX_PFI_VERSION:-dev}
    container_name: pfi-backoffice
    depends_on:
      - mongodb
    ports:
      - "${DEVBOX_PFI_BO_SERVER_PORT:-80}:${DEVBOX_PFI_BO_SERVER_PORT:-80}"
    networks:
      - pfi-network
    logging: *default-logging
    volumes:
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/pfi/shared:/shared # volume partagé avec pfi-connect de la devbox-sante
    environment:
      <<: *common-env
      DEVBOX_PFI_BO_ADMIN_PASSWORD: ${DEVBOX_PFI_BO_ADMIN_PASSWORD:-admin}
      DEVBOX_PFI_BO_OTP_REQUIRED: ${DEVBOX_PFI_BO_OTP_REQUIRED:-false}
      SERVER_PORT: ${DEVBOX_PFI_BO_SERVER_PORT:-80}
      SPRING_PROFILES_ACTIVE: ${DEVBOX_PFI_BO_PROFILES_ACTIVE:-}
      DEVBOX_EPROXY_BO_OTP_REQUIRED: true
      GANDI_KEY: ${GANDI_KEY}
      DEVBOX_PFI_BO_SERVER_DOMAIN: ${DEVBOX_PFI_BO_SERVER_DOMAIN}
      DEVBOX_PFI_EXPOSED_PORT_RANGE: ${DEVBOX_PFI_EXPOSED_PORT_RANGE:-2020-2050}