GLPI docker SSL + LDAP
1. INSTALLATION DOCKER Documentation& 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
📋 Documentation Utilisateur : GLPI avec HTTPS (Docker + Caddy) Production ✅
Infrastructure : GLPI + MariaDB + Caddy (reverse proxy HTTPS)
Accès : https://support.eyrode.lan (cadenas vert ✅)
IP : 172.16.82.2 |localhost Date déploiement127.0.0.1 ::1
05/03/2026# Vérification certificats
ls -la support.eyrode.lan*.pem
chmod 600 support.eyrode.lan*.pem
Fichiers créés :
📑 Table des matières
🔐 Accès & Identifiants
👨💼 Utilisation quotidienne
⚙️ Configuration technique
💾 Sauvegarde & Restauration
🔧 Maintenance
🆘 Dépannage
🔒 Sécurité
🔐 Accès & Identifiants
ServiceURLStatutIdentifiantsNotes
GLPIhttps://support.eyrode.lan✅lan.pem Actifglpi← /Certificat glpiChanger immédiatement
Adminhttps://support.eyrode.lan✅ Actifglpi / glpiInterface complète
DNS local : 172.16.82.2 support.eyrode.lan (/etc/hosts)
public
support.eyrode.lan-key.pem ← 👨💼Clé Utilisation quotidienne
Connexion
Ouvrir https://support.eyrode.lan
Login : glpi | Password : glpi
Setup → Général → Changer mot de passe IMMÉDIATEMENT
privée
5. CRÉATION
Première configuration
Langue → Français
Base : glpidb (déjà configurée avec 442 tables)
Règles d'inventaire → Activer
Plugins Marketplace → FusionInventory, etc.
Fonctions principales
Inventaire : Auto-discovery SNMP/WMI
Tickets : Gestion demandes utilisateurs
Parc : PC, imprimantes, switches
Alertes : Équipements HS
⚙️ Configuration technique
Structure fichiers
DOCKER-COMPOSE.YML
/var/www/support.eyrode.lan/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: Caddyfilealways
└──glpi:
image: diouxx/glpi
container_name: glpi
hostname: glpi
volumes:
- /var/www/html/glpi/ (données persistantes)
└── :/var/lib/mysql/www/html/glpi
(baseenvironment:
glpidb)- 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 Caddyfile (configuration HTTPS)
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
Architecture
8. PRÉPARATION VOLUMES PERSISTANTS
Navigateursudo →mkdir Caddy(443)-p →/var/www/html/glpi GLPI(80/var/lib/mysql
interne)sudo →chown MariaDB(glpidb)-R ↕️33:33 HTTPS/var/www/html/glpi/
mkcertsudo ↕️chmod HTTP-R Docker755 network/var/www/html/glpi/
9. 💾 Sauvegarde & Restauration
Sauvegarde complèteDÉPLOIEMENT (5 min)
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 -p$(grep MYSQL_ROOT_PASSWORD mariadb.env | cut -d= -f2)pSuperRoot2026! glpidb > glpi-$(date +%Y%m%d).sql
Fichiers + config
tar czf glpi-full-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-full-.tar.gz
Restauration
cd /var/www/support.eyrode.lan/
docker compose down
cat glpi-*.sql | docker exec -i mariadb mysql -u root -p$(grep MYSQL_ROOT_PASSWORD mariadb.env | cut -d= -f2) glpidb
tar xzf glpi-full-complete-*.tar.gz -C /var/www/html/glpi/
docker compose up -d
COMMANDES
🔧 Maintenance
Mise à jour
cd /var/www/support.eyrode.lan/
docker compose pull
docker compose up -d
Redémarrage
UTILITAIRES
# CaddyRedémarrage uniquement (HTTPS)rapide
docker compose restart caddy
GLPI uniquement
docker compose restart glpi
Tout
docker compose restart
Santé
docker compose ps # 3/3Mise Upà docker stats # CPU/RAMjour
docker compose logs --tail=20
🆘 Dépannage
Problèmes courants
SymptômeCauseSolution
Page blancheCaddy headersdocker compose restart caddy
Port 80 occupéAncien GLPIdocker compose downpull && docker compose up -d
Certificat KO/etc/hostsecho "172.16.82.2 support.eyrode.lan" | sudo tee -a /etc/hosts
Base inaccessibleglpidb vs glpiInterface → DB: glpidb
Diagnostics rapides
# Test backend GLPI
docker exec caddy curl -f http://glpi:80 || echo "❌ GLPI KO"
Logs Caddy
temps réel
docker compose logs caddy-f
--tail=20# |Nettoyage
grepdocker -vcompose "maxprocs"
Permissions
sudo chown -R 33:33 /var/www/html/glpi/down && sudodocker chmodsystem prune -R 755 /var/www/html/glpi/
f
🔒 Sécurité
Statut actuel
✅ HTTPS mkcert (cadenas vert)
✅ Ports 80/443 uniquement exposés
✅ Réseau Docker interne (glpi:mariadb)
✅ Base glpidb isolée
✅ Permissions 33:33 (www-data)
Améliorations
Changer glpi/glpi → mot de passe fort
Plugin 2FA
LDAP/AD (Setup → Authentification)
IP whitelist Caddy : @allowed ip 172.16.82.0/24
📞 Support
ProblèmeContactAction
HTTPS blancIT Admindocker compose logs caddy
Login GLPISupportglpi/glpi → changer
Base glpidbDBAdocker exec mariadb mysql -u root -p... glpidb