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}