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-connect-example

x-common-env: &common-env
  MONGO_DB_URI: "mongodb://mongodb:27017/pfi"
  DEVBOX_PFI_KEYSTORE_PASSWORD: ${DEVBOX_PFI_KEYSTORE_PASSWORD:-changeIt}

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

networks:
   pfi-network:

  # =========================
  # MongoDB
  # =========================
  mongodb:
    image: mongo:8
    container_name: pfi-mongodb
    restart: on-failure:5
    logging: *default-logging
    volumes:
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/pfi/mongodb:/data/db:rw  # contient les fichiers de la base pour sauvegarde
    networks:
      - pfi-network

  # =========================
  # Clamav
  # =========================
  clamav:
    image: clamav/clamav:1.5.1
    container_name: pfi-clamav
    restart: on-failure:5
    logging: *default-logging
    volumes:
      -  ${DEVBOX_VOLUME_ROOT:-}/dbx/pfi/clamav:/var/lib/clamav
    networks:
      - pfi-network

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

    # =========================
  # Back-Office
  # =========================
  back-office:
    image: devboxsante/devboxsante-pfi-backoffice:${DEVBOX_PFI_VERSION:-dev}
    container_name: pfi-backoffice
    depends_on:
      - mongodb
    ports:
      - "8282:8282"
    environment:
      <<: *common-env
      DEVBOX_PFI_BO_ADMIN_PASSWORD: ${DEVBOX_PFI_BO_ADMIN_PASSWORD:-admin}
      SERVER_PORT: 8282
      SPRING_PROFILES_ACTIVE: SWAGGER
      DEVBOX_PFI_EXPOSED_PORT_RANGE: ${DEVBOX_PFI_EXPOSED_PORT_RANGE:-2020-2050}
    logging: *default-logging
    restart: on-failure:5
    volumes:
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/pfi/back-office/config:/config:rw
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/pfi/shared:/shared:rw
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/pfi/back-office/logs:/logs:rw
    networks:
      - pfi-network