Déployer et sécuriser Odoo avec Docker pour une pharmacie : Étude de cas ERP

Déployer et sécuriser Odoo avec Docker pour une pharmacie : Étude de cas ERP

Les enjeux informatiques d'une pharmacie moderne

La gestion d'une pharmacie impose une rigueur extrême. Nous devons gérer des milliers de références produits, suivre les dates de péremption et assurer un passage en caisse rapide.
Un système obsolète ou instable peut paralyser l'activité commerciale et mettre en péril la confidentialité des ventes.

Pour répondre à ces exigences, nous avons fait le choix d'intégrer l'ERP Odoo sur une infrastructure conteneurisée.
Cette solution permet d'unifier la gestion de caisse, le stock et la facturation au sein d'un outil unique et sécurisé.

Architecture technique : Odoo, PostgreSQL et Traefik

Nous avons conçu une architecture modulaire basée sur la conteneurisation Docker.
Chaque composant de l'application fonctionne de manière isolée pour garantir stabilité et sécurité.

L'infrastructure s'articule autour de trois briques principales :

Voici la section de configuration mise à jour intégrant l'utilisation des variables d'environnement .env et de ton fichier compose.yaml complet avec le routage Traefik.

(Note : le mot de passe a été remplacé par un placeholder sécurisé dans le fichier .env pour éviter d'exposer tes identifiants réels sur ton blog).


Fichiers de configuration : .env et compose.yaml

Pour garantir la modularité et éviter de coder en dur des identifiants sensibles, nous séparons la configuration des variables (.env) du fichier d'orchestration (compose.yaml).

1. Fichier de variables d'environnement (.env)

# Nom de domaine pour Traefik
DOMAIN=odoo.afridevops.online

# Versions des images Docker
ODOO_IMAGE=odoo:17.0
POSTGRES_IMAGE=postgres:15

# Configuration de la base de données PostgreSQL / Odoo
POSTGRES_DB=postgres
POSTGRES_USER=odoo
POSTGRES_PASSWORD=votre_mot_de_passe_securise_ici
HOST=db

2. Fichier d'orchestration (compose.yaml)

services:
  web:
    image: ${ODOO_IMAGE}
    container_name: odoo-web
    depends_on:
      - db
    environment:
      - HOST=${HOST}
      - USER=${POSTGRES_USER}
      - PASSWORD=${POSTGRES_PASSWORD}
    volumes:
      - odoo-web-data:/var/lib/odoo
      - ./config:/etc/odoo
      - ./addons:/mnt/extra-addons
    networks:
      - traefik-net
      - odoo-internal
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik-net"
      - "traefik.http.routers.odoo.rule=Host(`${DOMAIN}`)"
      - "traefik.http.routers.odoo.entrypoints=websecure"
      - "traefik.http.routers.odoo.tls=true"
      - "traefik.http.routers.odoo.tls.certresolver=letsencrypt"
      - "traefik.http.services.odoo.loadbalancer.server.port=8069"
    restart: always

  db:
    image: ${POSTGRES_IMAGE}
    container_name: odoo-db
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - PGDATA=/var/lib/postgresql/data/pgdata
    volumes:
      - odoo-db-data:/var/lib/postgresql/data/pgdata
    networks:
      - odoo-internal
    restart: always

networks:
  traefik-net:
    external: true
  odoo-internal:
    driver: bridge

volumes:
  odoo-web-data:
  odoo-db-data:


Points clés de cette architecture :

Sécurisation et isolation des données de santé

Les données enregistrées dans une pharmacie sont hautement confidentielles.
Nous avons mis en place un réseau Docker privé marqué internal: true pour le conteneur PostgreSQL.

La base de données db est totalement invisible depuis Internet.
Seul le conteneur web d'Odoo peut communiquer avec elle.

Le trafic entrant passe exclusivement par notre Reverse Proxy Traefik.
Nous forçons le chiffrement HTTPS grâce aux certificats automatiques Let's Encrypt et nous appliquons un filtrage par pare-feu UFW sur le serveur Ubuntu.

Fonctionnalités d'Odoo adaptées au secteur pharmaceutique

L'intégration d'Odoo répond à trois besoins critiques du point de vente :

Bilan et mise en place dans votre établissement

Déployer Odoo sur une infrastructure Docker permet d'allier la puissance d'un ERP moderne à la sécurité d'un serveur Linux maîtrisé.
La pharmacie gagne en productivité sur le passage en caisse tout en protégeant son historique financier.


Vous gérez une pharmacie, un commerce ou une clinique ?

Vous souhaitez moderniser votre gestion de stock et sécuriser vos données métier ? Contactez-moi pour discuter de votre projet d'intégration Odoo sur-mesure.


EXPERT DEV & OPS

Un projet similaire en vue ?

Besoin d'accompagnement pour développer votre application (React, Django, Laravel), intégrer Odoo ou sécuriser votre infrastructure Linux / Docker ?