Produit - GLPI

Solution de gestion du SI, inventaire et outil de ticketing et gestion de projet.

GLPI - Personaliser l'UI avec CSS

image.png

Difficulté : Intermédiaire


Notions : GLPI, personalisation



I. Introduction

Depuis l'apparition du plugin payant "Branding", il n'existe plus d'options officielle pour personnaliser GLPI.

De plus, l'édition manuelle des pages peut s'avérer hasardeux.

 

Cependant, l'éditeur à tout de même prévu la possibilité de personnaliser le produit dans une certaine mesure afin de présenter aux différentes entités une façade personnalisée lors de la connexion. Pour cela, ils ont mis en place un système permettant de faire un "override" du style css.

 


II. Personnaliser GLPI

Aller dans le menu "Administration --> Entités " et sélectionner l'entité racine.

image.png

 

Cliquer sur l'entité racine.

image.png

 

Puis aller dans la page "Personnalisation de l'interface"

image.png

 

Passer 'Activer la personnalisation CSS' à 'Oui' et entrer le code suivant dans le bloc de code :

body.welcome-anonymous .card-body { background-color:#cfdcea}
body.welcome-anonymous .glpi-logo {
    --logo: url("<url du logo>");
      content: var(--logo);
    height: 200px;
      width: 380px;
}
.page .glpi-logo {
  background: url("<url du logo>") no-repeat;
  background-size: 100px 50px;
}

 

Et sauvegarder.

image.png

 

La page est maintenant personnalisée.

image.png

 

Et le logo custom apparait désormais en haut à gauche.

image.png

GLPI - Installation (standalone)

image.png

Difficulté : Intermédiaire


Notions : Stack LAMP, GLPI, ITIL



I. Introduction

Info : Cette documentation s'applique à GLPI v11 et supérieur. 


Cette procédure vise à décrire l'installation de GLPI sur un serveur DEBIAN 13 / UBUNTU 24.

Elle couvrira dans ce cas l'installation sur un serveur dit "standalone". C'est à dire un serveur dédié sur lequel tous les composants seront installés et qui ne dépendra, de fait, d'aucun autre serveur pour fonctionner.

Cependant, l'installation pourrait aussi bien être faite sur des serveurs séparés et/ou des serveurs existants mutualisés à côté d'autres services (par exemple la DB sur un serveur mutualisé et le site web sur un autre serveur apache contenant déjà plusieurs virtualhosts).

Elle a été testée avec GLPI 11 sur ubuntu 24.04 LTS.

Prérequis :


II. Installation stack LAMP pour GLPI

2.1 Installation du stack

image.png

Procéder à une mise à jour des repo avec :

apt update

image.png

Installer les paquets de bases :

apt install -y mysql-server apache2 libapache2-mod-php php

Attention : Sur Debian, le paquest mysql-server est remplacé par MariaDB. Donc 'mariadb-server'.

image.png

2.2 Installation des modules

GLPI requiers tout un tas de modules complémentaires pour fonctionner correctement.

Beaucoup sont nécessaire, mais il peuvent tous être installés en une fois grâce à la commande ci-après.

Obligatoires :

Optionnels :

Pour tout installer en une fois :

apt install -y php-{common,mysql,xml,apcu,fpm,xmlrpc,curl,gd,intl,bcmath,mbstring,bz2,phar,zip,exif,ldap}


III. Préparation du stack

3.1 Préparation BDD

Optionnel - Sécuriser le serveur Mysql / MariaDB

La première chose à faire est de préparer la base de donnée.

Tout d'abord, sécuriser à minima l'installation avec la commande :

mysql_secure_installation

Activer le composant 'Validate Password'. Celui-ci forcera l'utilisation de mots de passes sécurisés.

image.png

Appliquer la stratégie de mot de passe fort avec '2'.

image.png

Supprimer l'utilisateur anonyme.

image.png

 

Retirer l'autorisation de connexion à distance pour root.

image.png

 

Supprimer la base de test.

image.png

 

Une fois l'ensemble des changements effectués, le serveur va demander à recharger la table de privilèges. Valider.

image.png

Il faudra créer la base de donnée et l'utilisateur qui fera le lien avec celle-ci.

Passer en 'su' et se connecter à la base de donnée avec :

mysql -u root -p

Info : -u spécifie que la connexion se fait avec l'utilisateur spécifique donné, -p spécifie d'utiliser le mot de passe (système) pour authentifier la connexion.

image.png

Une fois connecté, il faudra utiliser les commandes SQL suivantes :

Créer la base de donnée.

CREATE DATABASE glpi;

image.png

Pour voir si la base existe :

SHOW DATABASES;

image.png

Créer l'utilisateur :

CREATE USER 'glpi'@'localhost' IDENTIFIED BY '<motdepasse>';

image.png

Vérifier que l'utilisateur est bien créé :

SELECT User,Host FROM mysql.user WHERE User='glpi';

image.png

Donner les droits à l'utilisateur GLPI sur la base de donnée glpi :

GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost';

image.png

Quitter l'invite de commande SQL :

EXIT

image.png

3.2 Préparation PHP

Il peut être utile d'effectuer un certain nombre d'ajustements sur PHP pour optimiser le fonctionnement de GLPI.

Pour cela, éditer le fichier '/etc/php/<version>/apache2/php.ini'

Modifier les valeurs suivantes :

3.3 Activation des modules apache2 et de 

Activer les modules apache nécessaire au bon fonctionnement du site.

a2enmod proxy_fcgi setenvif rewrite

Activer la configuration FPM.

a2enconf php*-fpm

image.png


IV. Installation GLPI

4.1 Télécharger GLPI & configurer apache2

Récupérer le lien de l'archive GLPI en .tar.gz à installer sur : Releases · glpi-project/glpi

ici, pour GLPI 11 : 'https://github.com/glpi-project/glpi/archive/refs/tags/11.0.2.tar.gz'

Se placer dans le répertoire '/var/www/' et télécharger l'archive avec :

wget https://github.com/glpi-project/glpi/archive/refs/tags/11.0.2.tar.gz

image.png

Supprimer le dossier par défaut 'html'.

rm -r /var/www/html

image.png

Décompresser l'archive téléchargée :

tar -xvzf ./<version>.tar.gz

image.png

Renommer le répertoire extrait en 'glpi'.

mv glpi-<version>/ glpi

image.png

Afin de rendre le dossier accessible au serveur web, changer le propriétaire de l'objet.

chown -R www-data glpi/

image.png

4.2 Configurer apache

Aller dans le répertoire '/etc/apache2/sites-available'.

Désactiver tous les sites web publiés par apache avec :

a2dissite *

image.png

Créer un fichier 'glpi.conf' et y coller le contenu suivant :

<VirtualHost *:80>
    ServerName URLDuGLPI

    DocumentRoot /var/www/glpi/public

    <Directory /var/www/glpi/public>
        Require all granted
        RewriteEngine On

        # Redirect all requests to GLPI router, unless file exists.
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>

</VirtualHost>

Activer le site.

a2ensite glpi.conf

image.png

Redémarrer le service apache2.

service apache2 restart

image.png

Vérifier l'état des services, les 3 services suivants doivent être up :

service --status-all

image.png

4.2 Terminer l'installation

Se connecter sur le serveur en Web avec un navigateur web : "http://<ip du serveur>/"

image.png

Cliquer sur "Aller à la page d'installation".

image.png

Sélectionner la langue, ici 'français'. Puis cliquer sur 'OK'.

image.png

Accepter le contrat de licnce en cliquant sur "Continuer".

image.png

Comme c'est une nouvelle installation, cliquer sur 'Installer'.

image.png

L'installer fait une vérification des prérequis, si tout est OK, cliquer sur "Continuer".

image.png

Configurer la connexion à la base SQL en entrant les détails de la connexion. Puis cliquer sur "Continuer".

image.png

Sélectionner la base de donnée GLPI précédemment créée. Puis cliquer sur "Continuer".

image.png

La base de donnée va être initialisée. Attendre la fin de la création.

image.png

A la fin de la création l'écran récapitulatif s'affiche. Cliquer sur "Continuer".

image.png

Décocher "Envoyer statistiques d'usage". Puis cliquer sur "Continuer".

image.png

Valider simplement l'écran suivant.

image.png

Enfin, prendre connaissance des éléments de connexion par défaut et cliquer sur "Utiliser GLPI".

image.png


V. Conclusion

La page de connexion est désormais accessible. Comme vu à l'étape précédente, les informations de connexion sont "glpi / glpi".

image.png

2 dernières actions sont nécessaires :

image.png

Les mots de passe peuvent êtres changés dans : "Administration --> utilisateurs", puis changer les mots de passes ou désactiver les comptes si ils ne seront pas utilisés.

image.png