Installation

Documentation d’installation de la PFI

La DevBox-Sante eProxy a besoin d’accéder à un service de base de données MongoDB et selon les besoins à Redis.

Docker Compose

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

  • mongodb : persistance des données (traces)
  • redis (optionel): gestions des sessions pour une scalabilité horizontale
  • eproxy : serveur du Proxu eSanté
  • back-office : outil d’administration et de visualisation des traces

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

!theme aws-orange

actor "BO_administrateur" as bo_admin
component "LGC" as lgc

card "Docker eproxy-network" {
  component "eproxy-back-office" as bo
  database mongodb as db
  component "eproxy-server" as eProxy
  component "redis" as redis
}


lgc -r-> eProxy : https
eProxy -d-> db 
bo -l-> db
eProxy -> redis : session (option)

bo_admin -u-> bo : https

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

name: devboxsante-eproxy
networks:
  eproxy-network:
    name: eproxy-network

x-common-env: &common-env
  MONGO_DB_URI: mongodb://mongodb:27017/eProxy
  DEVBOX_EPROXY_KEYSTORE_PASSWORD: changeIt
  REDIS_HOST: redis

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

services:

  # =========================
  # Redis
  # =========================
  redis:
    image: redis:8
    container_name: eproxy-redis
    restart: on-failure:5
    networks:
      - eproxy-network
    logging: *default-logging

  # =========================
  # MongoDB
  # =========================
  mongodb:
    image: mongo:8
    container_name: eproxy-mongodb
    restart: on-failure:5
    networks:
      - eproxy-network
    volumes:
      - ${DEVBOX_VOLUME_ROOT}/dbx/eproxy/mongo/data:/data/db:rw
    logging: *default-logging

  # =========================
  # eproxy-backoffice
  # =========================
  eproxy-bo:
    image: devboxsante/devboxsante-eproxy-backoffice:${DBX_VERSION:-dev}
    container_name: eproxy-bo
    depends_on:
      - mongodb
      - redis
    ports:
      - "8282:8282"
    environment:
      <<: *common-env
      DEVBOX_EPROXY_BO_ADMIN_PASSWORD: ${DEVBOX_EPROXY_BO_ADMIN_PASSWORD:-admin}
      SERVER_PORT: 8282
      SPRING_PROFILES_ACTIVE: SWAGGER,redis
      DEVBOX_EPROXY_BO_OTP_REQUIRED: true
    logging: *default-logging
    restart: on-failure:5
    volumes:
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/eproxy/back-office/config:/config:rw
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/eproxy/shared:/shared:rw
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/eproxy/back-office/logs:/logs:rw
    networks:
      - eproxy-network

  # =========================
  # eproxy
  # =========================
  eproxy:
    image: devboxsante/devboxsante-eproxy:${DBX_VERSION:-dev}
    container_name: eproxy
    depends_on:
      - mongodb
      - redis
    ports:
      - "8080:8080"
    environment:
      <<: *common-env
      DEVBOX_LM_ENV: ${DEVBOX_LM_ENV:-dev}
      DEVBOX_LM_CLIENT: ${DEVBOX_LM_CLIENT}
      DEVBOX_LM_TOKEN: ${DEVBOX_LM_TOKEN}
      DEVBOX_JWT_SECRET: changeIt________________________________________________________
      SPRING_PROFILES_ACTIVE: lm, psc-bas,edc-bas,redis,SWAGGER
      SERVER_PORT: 8080
    logging: *default-logging
    restart: on-failure:5
    volumes:
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/eproxy/server/config:/config:rw
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/eproxy/shared:/shared:rw
      - ${DEVBOX_VOLUME_ROOT:-}/dbx/eproxy/server/logs:/logs:rw
    networks:
      - eproxy-network

Bien sûr, il faudra veiller à le personnaliser et le configurer en fonction du besoin.