# Project to deploy GLPI with docker ![Docker Pulls](https://img.shields.io/docker/pulls/diouxx/glpi) ![Docker Stars](https://img.shields.io/docker/stars/diouxx/glpi) [![](https://images.microbadger.com/badges/image/diouxx/glpi.svg)](http://microbadger.com/images/diouxx/glpi "Get your own image badge on microbadger.com") ![Docker Cloud Automated build](https://img.shields.io/docker/cloud/automated/diouxx/glpi) # Table of Contents - [Project to deploy GLPI with docker](#project-to-deploy-glpi-with-docker) - [Table of Contents](#table-of-contents) - [Introduction](#introduction) - [Default accounts](#default-accounts) - [Deploy with CLI](#deploy-with-cli) - [Deploy GLPI](#deploy-glpi) - [Deploy GLPI with existing database](#deploy-glpi-with-existing-database) - [Deploy GLPI with database and persistence data](#deploy-glpi-with-database-and-persistence-data) - [Deploy a specific release of GLPI](#deploy-a-specific-release-of-glpi) - [Deploy with docker-compose](#deploy-with-docker-compose) - [Deploy without persistence data ( for quickly test )](#deploy-without-persistence-data--for-quickly-test-) - [Deploy a specific release](#deploy-a-specific-release) - [Deploy with persistence data](#deploy-with-persistence-data) - [mariadb.env](#mariadbenv) - [docker-compose .yml](#docker-compose-yml) - [Environnment variables](#environnment-variables) - [TIMEZONE](#timezone) # Introduction Install and run an GLPI instance with docker ## Default accounts More info in the 📄[Docs](https://glpi-install.readthedocs.io/en/latest/install/wizard.html#end-of-installation) | Login/Password | Role | |-------------------- |------------------- | | glpi/glpi | admin account | | tech/tech | technical account | | normal/normal | "normal" account | | post-only/postonly | post-only account | # Deploy with CLI ## Deploy GLPI ```sh docker run --name mariadb -e MARIADB_ROOT_PASSWORD=diouxx -e MARIADB_DATABASE=glpidb -e MARIADB_USER=glpi_user -e MARIADB_PASSWORD=glpi -d mariadb:10.7 docker run --name glpi --link mariadb:mariadb -p 80:80 -d diouxx/glpi ``` ## Deploy GLPI with existing database ```sh docker run --name glpi --link yourdatabase:mariadb -p 80:80 -d diouxx/glpi ``` ## Deploy GLPI with database and persistence data For an usage on production environnement or daily usage, it's recommanded to use container with volumes to persistent data. * First, create MariaDB container with volume ```sh docker run --name mariadb -e MARIADB_ROOT_PASSWORD=diouxx -e MARIADB_DATABASE=glpidb -e MARIADB_USER=glpi_user -e MARIADB_PASSWORD=glpi --volume /var/lib/mysql:/var/lib/mysql -d mariadb:10.7 ``` * Then, create GLPI container with volume and link MariaDB container ```sh docker run --name glpi --link mariadb:mariadb --volume /var/www/html/glpi:/var/www/html/glpi -p 80:80 -d diouxx/glpi ``` Enjoy :) ## Deploy a specific release of GLPI Default, docker run will use the latest release of GLPI. For an usage on production environnement, it's recommanded to set specific release. Here an example for release 9.1.6 : ```sh docker run --name glpi --hostname glpi --link mariadb:mariadb --volume /var/www/html/glpi:/var/www/html/glpi -p 80:80 --env "VERSION_GLPI=9.1.6" -d diouxx/glpi ``` # Deploy with docker-compose ## Deploy without persistence data ( for quickly test ) ```yaml version: "3.8" services: #MariaDB Container mariadb: image: mariadb:10.7 container_name: mariadb hostname: mariadb environment: - MARIADB_ROOT_PASSWORD=password - MARIADB_DATABASE=glpidb - MARIADB_USER=glpi_user - MARIADB_PASSWORD=glpi #GLPI Container glpi: image: diouxx/glpi container_name : glpi hostname: glpi ports: - "80:80" ``` ## Deploy a specific release ```yaml version: "3.8" services: #MariaDB Container mariadb: image: mariadb:10.7 container_name: mariadb hostname: mariadb environment: - MARIADB_ROOT_PASSWORD=password - MARIADB_DATABASE=glpidb - MARIADB_USER=glpi_user - MARIADB_PASSWORD=glpi #GLPI Container glpi: image: diouxx/glpi container_name : glpi hostname: glpi environment: - VERSION_GLPI=9.5.6 ports: - "80:80" ``` ## Deploy with persistence data To deploy with docker compose, you use *docker-compose.yml* and *mariadb.env* file. You can modify **_mariadb.env_** to personalize settings like : * MariaDB root password * GLPI database * GLPI user database * GLPI user password ### mariadb.env ``` MARIADB_ROOT_PASSWORD=diouxx MARIADB_DATABASE=glpidb MARIADB_USER=glpi_user MARIADB_PASSWORD=glpi ``` ### docker-compose .yml ```yaml version: "3.2" services: #MariaDB Container mariadb: image: mariadb:10.7 container_name: mariadb hostname: mariadb volumes: - /var/lib/mysql:/var/lib/mysql env_file: - ./mariadb.env restart: always #GLPI Container glpi: image: diouxx/glpi container_name : glpi hostname: glpi ports: - "80:80" volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - /var/www/html/glpi/:/var/www/html/glpi environment: - TIMEZONE=Europe/Brussels restart: always ``` To deploy, just run the following command on the same directory as files ```sh docker-compose up -d ``` # Environnment variables ## TIMEZONE If you need to set timezone for Apache and PHP From commande line ```sh docker run --name glpi --hostname glpi --link mariadb:mariadb --volumes-from glpi-data -p 80:80 --env "TIMEZONE=Europe/Brussels" -d diouxx/glpi ``` From docker-compose Modify this settings ```yaml environment: TIMEZONE=Europe/Brussels ```