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