---
title: "Deploy GLPI"
description: "IT asset inventory and service desk in one application"
category: "Other"
url: https://railway.com/deploy/glpi
---

# Deploy GLPI

IT asset inventory and service desk in one application

**[Deploy GLPI on Railway](https://railway.com/template/glpi)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/glpi/manifest.json

- **Creator:** A3A
- **Category:** Other
- **Total deploys:** 1

## Template content

### MySQL https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/mysql.svg

- **Image:** mysql:9.4
- **Start command:** `docker-entrypoint.sh mysqld --innodb-use-native-aio=0 --disable-log-bin --performance_schema=0 --innodb-buffer-pool-size=1G`

### glpi https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/glpi.svg

- **Source:** https://github.com/gridalpha/glpi-railway
- **Health check:** /healthz
- **Public domain:** Yes

### Redis https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/redis.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

## Documentation

# Deploy and Host GLPI on Railway

GLPI is a free, open-source IT asset management and service desk platform, maintained for over twenty years by Teclib' and a large community. It inventories the hardware, software, licences and contracts an organisation owns, and puts an ITIL-shaped helpdesk on top, so a ticket points at the exact laptop, printer or switch it is about. IT departments, managed service providers and schools use it as the one place where "what do we own" and "what is broken" live together.

Deploy GLPI on Railway and this template wires up three services. The `glpi` service runs the official image behind Apache, with its scheduled-task worker alongside it, on a public domain. `MySQL` stores every asset, ticket and setting; `Redis` backs the application cache. A volume at `/var/glpi` holds documents, plugins and logs. Self-host GLPI this way and the database and cache stay on the private network, with only the web interface reachable from the internet.

![Diagram of the GLPI, MySQL and Redis services on Railway](https://res.cloudinary.com/rroe4rtk/image/upload/f_auto,q_auto/v1789382473/glpi-architecture.webp)

## Getting Started with GLPI on Railway

The schema is installed on the first boot, so there is no setup wizard. Open the public URL and sign in as `glpi` with the password in `GLPI_ADMIN_PASSWORD`, which Railway generates and shows in the Variables tab. GLPI ships three further demonstration accounts — `tech`, `normal` and `post-only` — and this template disables them before the web server accepts a request, so the published default logins do not work. Change the super-admin password under the avatar menu, then add your first real user under Administration → Users.

A good first action is to register an asset and raise a ticket against it: Assets → Computers → Add, give it a name and serial, then Assistance → Create ticket. The Home dashboard counts change immediately, confirming the application, database and cache all work. Setup → Notifications is where you add an SMTP server, and Setup → Inventory turns on agent-based discovery.

![GLPI central dashboard counting assets and open tickets](https://res.cloudinary.com/rroe4rtk/image/upload/f_auto,q_auto/v1789382475/glpi-dashboard.webp)
![GLPI ticket timeline showing the reported fault and its solution](https://res.cloudinary.com/rroe4rtk/image/upload/f_auto,q_auto/v1789382478/glpi-ticket-solution.webp)
![GLPI computer inventory listing two registered machines](https://res.cloudinary.com/rroe4rtk/image/upload/f_auto,q_auto/v1789382479/glpi-computer-inventory.webp)

## About Hosting GLPI

GLPI solves a problem most IT teams meet past a few dozen machines: the asset list and the support queue drift apart. Here both live in one database, so a ticket attaches to a configuration item carrying its warranty, contract, licences and history. Teams self-host it when the inventory is sensitive, when a regulator wants the data on infrastructure they control, or because the software is free.

- Inventory of computers, monitors, printers, network devices, phones and racks
- ITIL service desk with incidents, requests, problems and changes
- SLAs, escalation rules, business hours and reminders
- Software licence and contract tracking, with financial and warranty data
- Knowledge base, service catalogue and a self-service portal
- LDAP and Active Directory authentication, plus OAuth and CAS single sign-on
- A REST API and a plugin marketplace with several hundred extensions

The `glpi` service is the whole application: Apache with mod_php serving the interface, plus a worker running GLPI's scheduled tasks each minute. `MySQL` is the system of record; `Redis` holds the cache GLPI would otherwise write to disk.

## Why Deploy GLPI on Railway

Railway removes the server administration GLPI would otherwise need.

- MySQL and Redis are provisioned and connected for you
- The application gets a scoped database account, not the superuser
- A persistent volume keeps uploads and plugins across deploys
- TLS, a public domain and a private network come as standard
- Scheduled tasks run with no system crontab to configure
- Upstream security rebuilds flow through on redeploy

## Common Use Cases

- An IT department tracking laptops, licences and warranties, and running the helpdesk that supports them
- A managed service provider giving each client its own entity, with separate tickets, assets and SLAs
- A school keeping an auditable inventory of lab machines and network hardware across sites
- A team needing an asset register with full change history on infrastructure it controls

## GLPI vs Snipe-IT vs iTop

| | GLPI | Snipe-IT | iTop |
|---|---|---|---|
| Focus | ITSM plus asset management | Asset tracking | CMDB with ITSM on top |
| Built-in ticketing | Yes | No | Yes |
| Discovery agent | Native | No | Add-on |
| Setup effort | Moderate | Low | High |

Snipe-IT is easier if you only need an asset list; iTop models dependencies more deeply but takes longer to set up. GLPI is the middle path, and the only one of the three with a full service desk in the same install.

## Dependencies for GLPI

- **GLPI** — `glpi/glpi:11.0`, the official image from [glpi-project/docker-images](https://github.com/glpi-project/docker-images)
- **MySQL 9** — the store for every asset, ticket, rule and setting
- **Redis 8** — the application cache; GLPI falls back to the filesystem if it is unavailable
- **Volume at `/var/glpi`** — documents, plugins, configuration and logs

### Environment Variables Reference

| Variable | Purpose |
|---|---|
| `GLPI_ADMIN_PASSWORD` | Initial password for the `glpi` super-admin |
| `GLPI_DB_ADMIN_URL` | Used once to create the schema and a scoped role |
| `GLPI_DB_PASSWORD` | Password for the scoped database account |
| `GLPI_URL_BASE` | Public base URL for notification links and the API |
| `GLPI_CACHE_DSN` | Redis connection for the application cache |
| `GLPI_CRONTAB_ENABLED` | Set to `0` to stop the scheduled-task worker |
| `GLPI_DEMO_DASHBOARDS` | Set to `1` to restore GLPI's sample dashboard figures |
| `TZ` | Server timezone, also applied to PHP |

### Deployment Dependencies

- Source: [glpi-project/glpi](https://github.com/glpi-project/glpi)
- Image: [glpi/glpi on Docker Hub](https://hub.docker.com/r/glpi/glpi)
- Docs: [glpi-project.org/documentation](https://glpi-project.org/documentation/)
- Agent: [glpi-project/glpi-agent](https://github.com/glpi-project/glpi-agent)

## Hardware Requirements for Self-Hosting GLPI

| | Minimum | Recommended |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 1 GB | 2–4 GB |
| Storage | 5 GB volume | 10 GB+ with document uploads |
| Runtime | PHP 8.2+, MySQL 8.0+ or MariaDB 10.6+ | PHP 8.5, MySQL 9 |

Memory use follows concurrent web requests rather than inventory size, so a few thousand assets fit comfortably in 2 GB.

## Self-Hosting GLPI with Docker

The project publishes a ready-to-run image. A minimal Docker Compose file:

```
services:
  glpi:
    image: glpi/glpi:11.0
    ports: ["80:80"]
    environment:
      GLPI_DB_HOST: db
      GLPI_DB_PORT: 3306
      GLPI_DB_NAME: glpi
      GLPI_DB_USER: glpi
      GLPI_DB_PASSWORD: change-me
    volumes: ["glpi_data:/var/glpi"]
  db:
    image: mysql:9
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: "yes"
      MYSQL_DATABASE: glpi
      MYSQL_USER: glpi
      MYSQL_PASSWORD: change-me
volumes: { glpi_data: {} }
```

Run it, then check the container is serving:

```
docker compose up -d
curl -I http://localhost/
```

All five database variables must be present, or GLPI skips the automatic install and shows its browser-based setup wizard instead.

## How Much Does GLPI Cost to Self-Host?

GLPI is licensed under the GPLv3 and costs nothing to run. Teclib' sells a GLPI Network subscription for support, certified plugins and managed updates — from around €100 per month self-hosted — but none of it is required; the free build is the complete product, not a trial. On Railway you pay only for the compute, memory and storage the three services use.

## FAQ

**What is GLPI?**
An open-source IT asset management and service desk platform. It tracks hardware, software, licences and contracts, and includes an ITIL helpdesk that links tickets to the assets they concern.

**What does this Railway template deploy?**
Three services: GLPI on a public domain with a persistent volume, a MySQL database, and a Redis cache. The schema is installed and the administrator account configured on the first boot.

**Why does the template include MySQL and Redis?**
MySQL is GLPI's only supported database and holds all of its data. Redis is optional but recommended: it holds the cache GLPI reads on every page, and keeping it out of the filesystem makes page loads faster.

**What are the default GLPI login credentials?**
GLPI normally installs `glpi`, `tech`, `normal` and `post-only`, all with published passwords. This template disables the three demonstration accounts before the site is reachable and sets the `glpi` password from `GLPI_ADMIN_PASSWORD`, so use that value to sign in.

**How do I automatically inventory machines in self-hosted GLPI?**
Install the GLPI Agent on each machine and point it at `https://your-domain/front/inventory.php`, after enabling the feature under Setup → Inventory. Agents then report hardware, software and network details on a schedule.

**Can I install GLPI plugins on Railway?**
Yes. Marketplace plugins land on the volume at `/var/glpi/marketplace` and survive redeploys. The exception is a plugin needing an extra PHP extension, since those come from the image.

**How do I send ticket notifications by e-mail?**
Under Setup → Notifications, enable e-mail follow-ups and add your SMTP server. No mail server is bundled, so notifications stay off until you configure one.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/glpi
