@ -1,186 +1,70 @@
# Project to deploy GLPI with docker
  [](http://microbadger.com/images/diouxx/glpi "Get your own image badge on microbadger.com") 
[](http://microbadger.com/images/diouxx/glpi "Get your own version badge on microbadger.com" ) [](http://microbadger.com/images/diouxx/glpi "Get your own image badge on microbadger.com")
# 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 )
1. [Introduction ](#introduction )
2. [Deploy CLI ](#deploy-with-CLI )
- [Deploy GLPI without database ](#deploy-glpi-without-database )
- [Deploy GLPI with existing database ](#deploy-glpi-with-existing-database )
- [Deploy GLPI with database and persistance container data ](#deploy-glpi-with-database-and-persistance-container-data )
- [Deploy a specific release of GLPI ](#deploy-a-specific-release-of-glpi )
3. [Deploy docker-compose ](#deploy-with-docker-compose )
4. [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 |
Install and run an GLPI instance with docker.
# Deploy with CLI
## Deploy GLPI
## Deploy GLPI without database
```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
docker run --name glpi -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
docker run --name glpi --link yourdatabase:mysql -p 80:80 -d diouxx/glpi
```
## Deploy GLPI with database and persistence data
## Deploy GLPI with database and persistance container data
For an usage on production environnement or daily usage, it's recommanded to use container with volumes to persistent data.
For an usage on production environnement or daily usage, it's recommanded to use a data container for persistent data.
* First, create MariaDB container with volume
* First, create data container
```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
docker create --name glpi-data --volume /var/www/html/glpi:/var/www/html/glpi busybox /bin/true
```
* Then, create GLPI container with volume and link MariaDB container
* Then, you link your data container with GLPI container
```sh
docker run --name glpi --link mariadb:mariadb --volume /var/www/html/glpi:/var/www/html/glpi -p 80:80 -d diouxx/glpi
docker run --name glpi --hostname glpi --link mysql:mysql --volumes-from glpi-data -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.
For an usage on production environnement, it's recommanded to use the latest 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
docker run --name glpi --hostname glpi --link mysql:mysql --volumes-from glpi-data -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 *mysql.env* file.
You can modify **_mysql.env_** to personalize settings like :
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
* MySQL 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
@ -194,13 +78,13 @@ 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
docker run --name glpi --hostname glpi --link mysql:mysql --volumes-from glpi-data -p 80:80 --env "TIMEZONE=Europe/Brussels" -d diouxx/glpi
```
From docker-compose
Modify this settings
```ya ml
```yml
environment:
TIMEZONE=Europe/Brussels
```