Deployment guide

GLPI

Videos

Overview: GLPI on Azure: overview (watch on YouTube)

Launch and log in: GLPI on Azure: launch and log in (watch on YouTube)

Deep Dive: GLPI on Azure: deep dive (watch on YouTube)

Overview

GLPI is a leading open source IT Service Management (ITSM) and IT Asset Management (ITAM) platform. From an ordinary browser, your team can run a helpdesk, log and track tickets, build a CMDB and asset inventory, manage software licences and contracts, and report on it all.

This SecureAnyCloud image ships GLPI 11.0.8 served by nginx and PHP 8.3 FPM on a hardened Ubuntu 24.04 LTS base, patched at build time. It includes a bundled local MariaDB server, so the appliance is complete and useful on its own. GLPI runs behind an nginx reverse proxy on port 80. The bundled MariaDB listens only on the loopback interface (127.0.0.1:3306) and keeps its data on a dedicated Azure data disk. A unique Super-Admin password is generated on the first boot of every VM, and all four of the well-known GLPI default accounts are secured.

What you get:

  • GLPI 11.0.8 served by nginx and PHP 8.3 FPM, managed by systemd
  • A bundled MariaDB 10.11 server that holds the GLPI database, already installed and ready
  • The GLPI web console on :80 served from the hardened public/ web root
  • A per-VM Super-Admin password generated on first boot and recorded in a root-only file
  • All four GLPI default accounts secured: the glpi Super-Admin password is rotated per VM, and tech, normal and post-only are disabled
  • MariaDB bound to 127.0.0.1 only, never exposed to the network
  • Two dedicated Azure data disks: the MariaDB database at /var/lib/mysql and the GLPI files, dumps and sessions at /var/lib/glpi
  • nginx.service, php8.3-fpm.service and mariadb.service as enabled systemd units
  • An unauthenticated /healthz endpoint for Azure Load Balancer health probes
  • 24/7 SecureAnyCloud support

Prerequisites

You need an active Azure subscription, an SSH key pair, and a VNet with a subnet in the target region.

Standard_B2s (2 vCPU / 4 GiB RAM) is a sensible starting size. Choose a larger size for bigger inventories, more agents or heavier ticket volumes.

Configure the network security group (NSG) to allow inbound 22/tcp from your management network and 80/tcp for the web console. GLPI serves plain HTTP on port 80, so for production terminate TLS in front of it with your own domain. The bundled MariaDB is never exposed. It listens on 127.0.0.1 only, so port 3306 stays off the network.

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal, choose Create a resource, search the Marketplace for GLPI by SecureAnyCloud, and select Create.

On the Basics tab, pick your subscription, resource group, region and size. Under Administrator account, choose SSH public key and paste your key. Under Inbound port rules, allow SSH (22) and HTTP (80).

Review the dedicated data disks on the Disks tab, then select Review + create and Create.

Step 2 - Deploy from the Azure CLI

Create the VM with the Azure CLI:

# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:glpi-ubuntu-24-04:default:latest
az vm create \
  --resource-group <your-rg> \
  --name glpi \
  --image sac1647283583153:glpi-ubuntu-24-04:default:latest \
  --size Standard_B2s \
  --admin-username azureuser \
  --generate-ssh-keys \
  --public-ip-sku Standard

Then open port 80 for the web console:

az vm open-port --resource-group <your-rg> --name glpi --port 80

Step 3 - Confirm the services are running

SSH in as azureuser and confirm that nginx, PHP FPM and MariaDB are all active. MariaDB listens only on 127.0.0.1:3306, while nginx serves the web console on port 80.

systemctl is-active nginx php8.3-fpm mariadb glpi-firstboot
ss -tlnp | grep -E ':80 |:3306 ' | sed 's/ */ /g'

Step 4 - Retrieve the per-VM administrator password

Every VM generates its own GLPI Super-Admin password on first boot. It writes the password, along with the login user and URL, to a root-only credentials file. Read the file with sudo:

sudo cat /root/glpi-credentials.txt

Sign in to the GLPI web console as user glpi with the GLPI_ADMIN_PASSWORD from this file. On the VM itself, you can also run sudo mariadb to reach the database directly over the local socket without a password.

Step 5 - Sign in to the GLPI web console

Browse to http://<vm-public-ip>/. Sign in with username glpi and the password from Step 4. Leave the login source on GLPI internal database.

After you sign in, GLPI opens the Central dashboard, its home page. The left menu gives you Assets, Assistance (the helpdesk), Management, Tools, Administration and Setup. The dashboard tiles summarise your tickets, assets, software and more.

Step 6 - Log a helpdesk ticket

Open Assistance, select Tickets, and use the + button to raise a new ticket. Give the ticket a title and description, set the type, category, urgency and requester, and attach any files. Then select Add.

Technicians can then assign, track and resolve the ticket through its lifecycle.

Step 7 - Manage assets and inventory

Open the Assets menu to manage your IT estate: computers, monitors, software, network devices, peripherals, printers, racks and more. Each asset type has its own inventory list with search, filtering and bulk actions. Each list also links to the tickets, contracts and licences associated with the asset.

Step 8 - The secured default accounts

A stock GLPI install ships four well-known default accounts: glpi, tech, normal and post-only. The SecureAnyCloud image secures all four before capture. The glpi Super-Admin password is rotated to a unique per-VM secret, and tech, normal and post-only are disabled.

You can confirm the state directly. You can also run the built-in round-trip check, which shows that the per-VM administrator signs in while every default login is rejected:

sudo mariadb --protocol=socket -uroot -N -e "SELECT CONCAT(name,' is_active=',is_active) FROM glpi.glpi_users WHERE name IN ('glpi','tech','normal','post-only') ORDER BY FIELD(name,'glpi','tech','normal','post-only')"
sudo bash /usr/local/sbin/glpi-cred-roundtrip.sh

Step 9 - Verify the stack and where your data lives

The MariaDB database lives on the data disk mounted at /var/lib/mysql. GLPI's variable data (uploaded documents, dumps, sessions and cache) lives on the data disk mounted at /var/lib/glpi. All of your state is therefore kept separate from the operating system disk and rides with the VM.

Confirm the GLPI version, the health endpoint, the two dedicated data disks and the installed GLPI schema:

sudo -u www-data php /var/www/glpi/bin/console --version
curl -sI http://127.0.0.1/healthz | head -1
findmnt -no SOURCE,TARGET,FSTYPE,SIZE /var/lib/mysql;
findmnt -no SOURCE,TARGET,FSTYPE,SIZE /var/lib/glpi

Adding your own domain and TLS

The appliance serves plain HTTP on port 80. For production, front GLPI with your own domain and a TLS certificate. Then update the GLPI base URL under Setup > General, so that notification links and the API use the public address.

You can terminate TLS with Azure Application Gateway, an nginx or Caddy reverse proxy, or a managed load balancer with a certificate for your domain.

Security notes

  • Encrypt web traffic. GLPI serves plain HTTP on port 80. For anything beyond a trusted network, put it behind your own TLS-terminating reverse proxy or Azure Application Gateway with a certificate for your domain.
  • Keep MariaDB private. The bundled MariaDB listens on 127.0.0.1 only and is never reachable from the network. Administer it through GLPI or over SSH.
  • Protect the default accounts. All four GLPI default accounts are secured on every VM. The glpi Super-Admin password is unique per VM, and tech, normal and post-only are disabled. Keep /root/glpi-credentials.txt protected, and change the password from within GLPI if you share access.
  • Restrict network access. Limit inbound 80/tcp in your NSG to the networks that need the web console.

Support

SecureAnyCloud maintains this image and provides 24/7 support. For help deploying or operating GLPI on Azure, contact us at secureanycloud.com.

Deploy on Azure

Launch GLPI on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.

View this image

Need Help?

Our support team is available 24/7.

sales@secureanycloud.com

Deploy on Azure