Skip to main content

GLPI docker SSL + LDAP

1. INSTALLATION DOCKER & DOCKER-COMPOSE

# Mise à jour système
sudo apt update && sudo apt upgrade -y

# Installation Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Installation Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# Services + utilisateur
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

# Vérification
docker --version
docker compose version

2. INSTALLATION MKCERT (SUR L'HÔTE)

# Dépendances
sudo apt install libnss3-tools wget -y

# Téléchargement mkcert
wget https://github.com/FiloSottile/mkcert/releases/latest/download/mkcert-v1.4.4-linux-amd64
sudo mv mkcert-v1.4.4-linux-amd64 /usr/local/bin/mkcert
sudo chmod +x /usr/local/bin/mkcert

# Installation CA locale
sudo mkcert -install

# Vérification
mkcert -version

3. CRÉATION DOSSIER & CERTIFICATS MKCERT

# Dossier GLPI
sudo mkdir -p /var/www/support.eyrode.lan
cd /var/www/support.eyrode.lan

# Génération certificats mkcert
mkcert support.eyrode.lan 172.16.82.2 localhost 127.0.0.1 ::1

# Vérification certificats
ls -la support.eyrode.lan*.pem
chmod 600 support.eyrode.lan*.pem

Fichiers créés :

support.eyrode.lan.pem      ← Certificat public

support.eyrode.lan-key.pem  ← Clé privée

5. CRÉATION DOCKER-COMPOSE.YML

cat > docker-compose.yml << 'EOF'
services:
  mariadb:
    image: mariadb
    container_name: mariadb
    hostname: mariadb
    volumes:
      - /var/lib/mysql:/var/lib/mysql
    env_file:
      - ./mariadb.env
    restart: always
    
  glpi:
    image: diouxx/glpi
    container_name: glpi
    hostname: glpi
    volumes:
      - /var/www/html/glpi/:/var/www/html/glpi
    environment:
      - TIMEZONE=Europe/Paris
    restart: always
  caddy:
    image: caddy:alpine
    container_name: caddy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./support.eyrode.lan.pem:/etc/caddy/certs/support.eyrode.lan.pem:ro
      - ./support.eyrode.lan-key.pem:/etc/caddy/certs/support.eyrode.lan-key.pem:ro
      - caddy_data:/data
      - caddy_config:/config
    depends_on:
      - glpi
    restart: always

volumes:
  caddy_data:
  caddy_config:
EOF

 

6. CRÉATION MARIADB.ENV

cat > mariadb.env << 'EOF'
MYSQL_ROOT_PASSWORD=SuperRoot2026!
MYSQL_DATABASE=glpidb
MYSQL_USER=glpi
MYSQL_PASSWORD=GlpiSupport2026!
EOF
chmod 600 mariadb.env

 

7. CRÉATION CADDYFILE

cat > Caddyfile << 'EOF'
support.eyrode.lan {
    tls /etc/caddy/certs/support.eyrode.lan.pem /etc/caddy/certs/support.eyrode.lan-key.pem
    reverse_proxy glpi:80 {
        header_up Host {upstream_hostport}
        header_up X-Real-IP {remote_host}
        header_up X-Forwarded-Proto https
        header_up X-Forwarded-For {remote_host}
    }
}
EOF

 

8. PRÉPARATION VOLUMES PERSISTANTS

sudo mkdir -p /var/www/html/glpi /var/lib/mysql
sudo chown -R 33:33 /var/www/html/glpi/
sudo chmod -R 755 /var/www/html/glpi/

 

9. DÉPLOIEMENT (Lancement)

cd /var/www/support.eyrode.lan/

# Lancement
docker compose up -d

# Attente initialisation
sleep 30

 

# Vérification
docker compose ps
docker compose logs caddy

 

Logs attendus :

caddy    | serving initial configuration

mariadb  | 2026-03-05 21:30:00 0 [Note] /usr/sbin/mariadbd: ready for connections

glpi     | Apache/2.4.x (Debian) Server started

 

10. CONFIGURATION INITIALE GLPI

Ouvrir : https://support.eyrode.lan

Assistant installation :Langue : Français

Base de données : 

  • Hôte : mariadb 
  • Utilisateur : root 
  • Mot de passe : SuperRoot2026! 
  • Base : glpidb

Continuer → Login : glpi/glpi 

11. VÉRIFICATIONS FINALES

# Statut services
docker compose ps  → 3/3 Up

# Test HTTPS mkcert (cadenas vert)
curl -k https://support.eyrode.lan  → HTML GLPI

# Test backend interne
docker exec caddy curl http://glpi:80  → Page login

# Base glpidb
docker exec mariadb mysql -u root -pSuperRoot2026! -e "SHOW TABLES FROM glpidb;" | wc -l  → 442

# Certificats mkcert
docker exec caddy ls -la /etc/caddy/certs/  → support.eyrode.lan.pem

12. SAUVEGARDE IMMÉDIATE

cd /var/www/support.eyrode.lan/

# Base + fichiers + mkcert
docker exec mariadb mysqldump -u root -pSuperRoot2026! glpidb > glpi-$(date +%Y%m%d).sql
tar czf glpi-complete-$(date +%Y%m%d).tar.gz docker-compose.yml mariadb.env Caddyfile support.eyrode.lan*.pem -C /var/www/html/glpi .
ls -lh glpi-*.sql glpi-complete-*.tar.gz

COMMANDES UTILITAIRES

# Redémarrage rapide
docker compose restart caddy

# Mise à jour
docker compose pull && docker compose up -d

# Logs temps réel
docker compose logs -f

# Nettoyage
docker compose down && docker system prune -f