Store GLPI documents and attachments in cloud storage (Azure Blob Storage, AWS S3 planned) instead of the local filesystem.
Zero core modifications: This plugin works 100% via GLPI's native hook system. No GLPI core files are modified, added, or removed.
GLPI stores all documents locally in /files/. This creates challenges in enterprise and cloud environments:
- Scalability - Local disk is limited and expensive to scale
- Availability - Server failure means documents are lost
- Backup - Requires separate filesystem backup
- Multi-instance - Can't share documents across GLPI instances
- Containers - Local storage is ephemeral in Docker/Kubernetes
This plugin redirects storage to cloud: unlimited capacity, high availability, geo-redundancy.
- Upload documents to cloud storage automatically via GLPI hooks
- Download via temporary URL redirect (fast) or proxy mode (private)
- SHA1-based deduplication (same as GLPI core)
- Encrypted credential storage using GLPI's native
SECURED_CONFIGS - CLI migration commands for existing documents
- Graceful fallback — cloud failures never block GLPI operations
- Path traversal protection and credential sanitization
| Provider | Status |
|---|---|
| Azure Blob Storage | Available |
| AWS S3 | Planned (Phase 2) |
| Google Cloud Storage | Planned (Phase 3) |
| Requirement | Minimum |
|---|---|
| GLPI | 11.0 |
| PHP | 8.2 |
| Cloud | Azure Storage Account (or Azurite for dev) |
# 1. Clone to GLPI plugins directory
git clone https://github.com/rafaelfariasbsb/glpi-cloud-storage.git /path/to/glpi/plugins/cloudstorage
# 2. Install PHP dependencies
cd /path/to/glpi/plugins/cloudstorage
composer install --no-dev
# 3. Install and activate
php /path/to/glpi/bin/console plugin:install cloudstorage --username=glpi
php /path/to/glpi/bin/console plugin:activate cloudstorageThen go to Setup > Plugins > Cloud Storage, configure your cloud credentials, and enable the plugin.
Full documentation is available in the docs/ directory:
- Installation — Prerequisites, Azure setup, CLI/web install
- Configuration — Credentials, storage modes, download methods
- Migration — Migrate existing documents to/from cloud
- Security — Encryption, SAS URLs, access control
- FAQ — Common questions and troubleshooting
- Architecture — System design, hooks, DB schema
- Development Guide — Setup, conventions, testing
- Roadmap & TODO — Prioritized backlog (P0–P4)
GPL-3.0-or-later