GLPI – Déploiement ITSM dockerisé (GLPI + MySQL 5.7)

Docker : GLPI – ITSM & Inventaire

Mise en place d’une plateforme GLPI sur Debian 12 (VM VirtualBox) via Docker Compose : persistance MySQL, configuration initiale, et intégration du plugin FusionInventory pour l’inventaire automatisé.

Docker Compose GLPI MySQL 5.7 FusionInventory Debian 12 VirtualBox
  • Catégorie : ITSM / Gestion de parc
  • Contexte : VM Debian 12 (local)
  • Livrables : Stack Compose, .env, persistance, plugin, tests fonctionnels
Voir le repository GitHub
Contexte & objectifs

Objectif : déployer GLPI pour la gestion des tickets, des actifs et des licences, de façon portable et reproductible via Docker. La cible est une VM Debian 12 sous VirtualBox, avec persistance des données et une intégration FusionInventory pour automatiser l’inventaire matériel/logiciel.

Architecture & Docker Compose

Deux services : glpi (front/app) et db (MySQL 5.7) sur le même réseau avec volumes persistants. Les secrets sont externalisés via .env.

version: "3.8"
services:
  glpi:
    image: glpi/glpi:latest
    restart: unless-stopped
    volumes:
      - ./storage/glpi:/var/glpi:rw
    env_file: .env
    depends_on:
      - db
    ports:
      - "8083:80"

  db:
    image: mysql:5.7
    restart: unless-stopped
    volumes:
      - ./storage/mysql:/var/lib/mysql
    environment:
      MYSQL_DATABASE: ${GLPI_DB_NAME}
      MYSQL_USER: ${GLPI_DB_USER}
      MYSQL_PASSWORD: ${GLPI_DB_PASSWORD}
      MYSQL_ROOT_PASSWORD: root
    expose:
      - "3306"
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-u", "${GLPI_DB_USER}", "--password=${GLPI_DB_PASSWORD}"]
      interval: 5s
      timeout: 5s
      retries: 10

Lancement : docker compose up -d → GLPI sur http://localhost:8083.

Arborescence projet & variables (.env)

Arborescence minimale :

$ mkdir -p ~/projet-ecf/glpi
$ cd ~/projet-ecf/glpi
$ tree -L 2
.
├── docker-compose.yml
├── .env
└── storage/
    ├── glpi/
    └── mysql/

Fichier .env :

GLPI_DB_HOST=db
GLPI_DB_PORT=3306
GLPI_DB_NAME=glpi
GLPI_DB_USER=glpi
GLPI_DB_PASSWORD=glpi
Déploiement & accès

Commandes clés :

# Démarrage
docker compose up -d

# Santé & logs
docker ps
docker compose logs -f db
docker compose logs -f glpi

# Accès applicatif
# → http://localhost:8083
# Compte initial : glpi / glpi (à changer immédiatement)

Vérifications effectuées : conteneurs db et glpi OK, persistance des données OK après redémarrage de la stack.

GLPI – Configuration initiale & tests
  • Création des entités, groupes, utilisateurs et profils.
  • Paramétrage des catégories de tickets, SLA, notifications.
  • Tests réalisés : création/suivi de tickets, ajout de matériels, gestion de licences — OK.
Plugin FusionInventory (inventaire automatisé)

FusionInventory apporte l’inventaire automatique (postes, serveurs, réseaux), la découverte réseau (SNMP, plages IP) et l’automatisation de tâches de gestion de parc.

  1. Télécharger le plugin et le déposer dans /var/glpi/plugins/ (volume storage/glpi côté hôte).
  2. Activer depuis Configuration → Plugins.
  3. Déployer un agent FusionInventory sur un poste test et vérifier la remontée.

Résultat : inventaire fonctionnel synchronisé dans GLPI — OK.

Sécurité & supervision minimales
  • Secrets en .env, pas d’identifiants en clair dans le YAML.
  • Volumes storage/glpi et storage/mysql pour la persistance.
  • Journalisation : docker compose logs -f, contrôle des ports via ss -tulnp.
  • Exposition externe : reverse proxy + authentification (à prévoir si publication).
  • Projet connexe : pare-feu pfSense pour filtrer/contrôler les flux.
Résultats & enseignements
  • Stack reproductible GLPI + MySQL, prête à être intégrée dans une infra plus large.
  • Inventaire automatisé via FusionInventory et jeux de tests validés.
  • Base pour ajouter supervision, sauvegardes planifiées et durcissement réseau.

Ouvrir le repo (Compose, .env & docs)