GLPI is not your average PHP application. It’s a full-featured IT asset and service management system that has evolved over years to support a wide range of ITIL processes—from managing assets and configurations to incident tracking and project management. What’s striking is how it balances complexity and modularity in a traditionally challenging language for large-scale enterprise apps.
what glpi is and how it’s built
GLPI stands for Gestionnaire Libre de Parc Informatique, a free and open-source IT management software package aimed at organizations needing to track their IT assets, service desks, and infrastructure. Written in PHP, it targets PHP 8.2 or higher, leveraging modern language features and requiring a standard LAMP stack with MariaDB or MySQL as the backend database.
The architecture revolves around a web server (Apache, Nginx, or IIS) serving a PHP application that interacts with a relational database. It supports a modular design through plugins, allowing extensions without modifying the core. This plugin system is key to maintaining flexibility and scalability across diverse use cases.
Core features align closely with ITIL best practices: asset and configuration management, incident and problem management, change control, knowledge bases, and financial tracking for IT services. It also extends into data center infrastructure management (DCIM), license compliance, and project management, making it a broad platform rather than a niche tool.
what sets glpi’s approach apart
What distinguishes GLPI technically is its mature integration of a vast and complex domain within a PHP codebase that remains actively maintained and extensible. The code quality is surprisingly solid for a project of this size and scope in PHP, showcasing clear separation of concerns and a plugin architecture that avoids core bloat.
The database schema supports intricate relationships between assets, configurations, users, and tickets. This relational complexity is managed carefully to maintain performance and data integrity, especially important in large deployments.
Tradeoffs are evident: PHP as a language has intrinsic limitations around concurrency and performance compared with newer stacks. GLPI mitigates this with recommended PHP extensions like OPcache and careful database design. The self-hosted model means user responsibility for security and updates, which can be a hurdle for some organizations compared to SaaS alternatives.
Moreover, the plugin ecosystem, while powerful, requires discipline to avoid version conflicts and ensure compatibility with core updates. This is a common challenge in modular PHP apps but GLPI’s community and marketplace help manage it.
quick start with glpi
prerequisites
- A web server (Apache, Nginx, IIS, etc.)
- MariaDB >= 10.6 or MySQL >= 8.0
- PHP >= 8.2
- Mandatory PHP extensions:
- dom, fileinfo, filter, libxml, simplexml, xmlreader, xmlwriter (these are enabled in PHP by default)
- bcmath (QRCode generation)
- curl (access to remote resources, like inventory agents, marketplace API, RSS feeds, …)
- gd (pictures handling)
- intl (internationalization)
- mbstring (multibyte chars support and charset conversion)
- mysqli (communication with database server)
- openssl (email sending using SSL/TLS, encrypted communication with inventory agents and OAuth 2.0 authentication)
- zlib (handling of compressed communication with inventory agents, installation of gzip packages from marketplace, PDF generation)
- Suggested PHP extensions
- bz2, phar and zip (support of most common packages formats in marketplace)
- exif (security enhancement on images validation)
- ldap (usage of authentication through remote LDAP server)
- Zend OPcache (improve performances)
- Supported browsers:
- Edge
- Firefox (including 2 latest ESR versions)
- Chrome
Please, consider using browsers on editor’s supported version
navigating glpi’s codebase and documentation
If you’re diving into GLPI’s repo, start with the README and official documentation which cover installation, configuration, and plugin development guidelines. The code is organized with clear separation between core modules and plugins.
Pay particular attention to the database schema files and the plugin API—they’ll give you insight into how GLPI handles its complex asset and service relationships. The use of PHP 8.2 features also means you’ll find modern syntax and practices, which is a good sign of ongoing maintenance.
verdict
GLPI is a solid choice if you need a self-hosted, open-source IT asset and service management platform with a deep feature set aligned with ITIL. Its mature PHP codebase demonstrates how to manage complexity and extensibility in a language often criticized for large applications.
It’s best suited for organizations comfortable with maintaining their own infrastructure and PHP environment, and who want control over customization via plugins. The tradeoffs around PHP’s performance and concurrency are mitigated but not eliminated, so it may not be ideal for extremely high-scale deployments without additional tuning.
For anyone working in IT operations or service management with a PHP background, GLPI offers a practical, battle-tested platform that’s worth exploring and contributing to.
Related Articles
- Hatchet: durable background task orchestration with Go and Postgres — Hatchet offers a durable, fault-tolerant background task and workflow engine built with Go and Postgres. It supports com
- OpenAI Codex CLI: local-first AI coding assistant with ChatGPT integration — OpenAI Codex CLI brings AI coding assistance local to your terminal, integrating with ChatGPT plans for powerful hybrid
→ GitHub Repo: glpi-project/glpi ⭐ 5,810 · PHP