How to Install GLPI 11 on Docker: The Definitive Guide

Step-by-step tutorial to install GLPI 11 with Docker Compose, including MariaDB, reverse proxy, SSL and production best practices.

Docker is the fastest and most secure way to install GLPI 11. In less than 10 minutes, you have a complete environment running with MariaDB, persistent volumes and ready for production.

Prerequisites

  • Linux server (Debian 12, Ubuntu 22.04+ or AlmaLinux 9)
  • Docker Engine 24+ and Docker Compose v2
  • Minimum 2 GB of RAM and 20 GB of disk
  • Domain pointing to the server (for SSL)

1. Directory structure

Create the structure for persistent volumes:

mkdir -p /opt/glpi/{data,config,plugins,marketplace}
mkdir -p /opt/glpi/db

This ensures that GLPI and database data survive container recreations.

2. Docker Compose

Create the docker-compose.yml file:

version: "3.8"

services:
  glpi-db:
    image: mariadb:10.11
    container_name: glpi-db
    restart: unless-stopped
    environment:
      MARIADB_ROOT_PASSWORD: SuaSenhaForte123
      MARIADB_DATABASE: glpi
      MARIADB_USER: glpi
      MARIADB_PASSWORD: SuaSenhaGLPI456
    volumes:
      - /opt/glpi/db:/var/lib/mysql
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

  glpi:
    image: glpi/glpi:11.0
    container_name: glpi-app
    restart: unless-stopped
    ports:
      - "8080:80"
    depends_on:
      - glpi-db
    volumes:
      - /opt/glpi/data:/var/lib/glpi
      - /opt/glpi/config:/etc/glpi
      - /opt/glpi/plugins:/var/www/glpi/plugins
      - /opt/glpi/marketplace:/var/www/glpi/marketplace
    environment:
      GLPI_DB_HOST: glpi-db
      GLPI_DB_NAME: glpi
      GLPI_DB_USER: glpi
      GLPI_DB_PASSWORD: SuaSenhaGLPI456

3. Start the containers

docker compose up -d

Wait 30 seconds for the database to initialize. Check the logs:

docker compose logs -f glpi

Instead of using the web wizard, install via CLI for automation:

docker exec -it glpi-app php bin/console db:install \
  --db-host=glpi-db \
  --db-name=glpi \
  --db-user=glpi \
  --db-password=SuaSenhaGLPI456 \
  --default-language=pt_BR \
  --no-interaction

5. Remove installation files

For security, remove the installation script after completing:

docker exec -it glpi-app rm -f /var/www/glpi/install/install.php

6. Reverse proxy with SSL

In production, never expose GLPI directly on port 80. Use a reverse proxy (Nginx Proxy Manager, Traefik or manual Nginx) with an SSL certificate.

Example with Nginx:

server {
    listen 443 ssl http2;
    server_name glpi.suaempresa.com;

    ssl_certificate /etc/ssl/certs/glpi.crt;
    ssl_certificate_key /etc/ssl/private/glpi.key;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

7. First access

Access https://glpi.suaempresa.com and log in with the default credentials:

  • Admin: glpi / glpi
  • Technician: tech / tech
  • Normal: normal / normal

Important: change all default passwords immediately after the first access.

8. Production best practices

  • Configure automatic backup of the /opt/glpi/db and /opt/glpi/data volumes
  • Use environment variables in a .env file (never hardcode passwords in the compose file)
  • Enable the GLPI cron: docker exec glpi-app crontab -l
  • Configure SMTP for email notifications
  • Install plugins via Marketplace (Configuration > Plugins)

Next step

With GLPI running, configure SLA and OLA, create your service catalog and activate the NexTool modules to expand the functionality.

Frequently Asked Questions

Yes. Teclib provides official images on Docker Hub based on AlmaLinux 9, with support for GLPI 10 and 11.

Yes. Docker is the recommended approach for production environments: it simplifies updates, backups and reproducibility. Use persistent volumes and configure SSL via a reverse proxy.

GLPI 11 requires PHP 8.1 or higher. The official Docker image already ships with the correct version.

It is not mandatory, but highly recommended. Docker Compose allows you to define GLPI + database in a single reproducible YAML file.

Need help?