131 lines
4.8 KiB
Markdown
131 lines
4.8 KiB
Markdown
# UrBackup plugin for GLPI 11
|
||
|
||
[](https://glpi-project.org)
|
||
[](https://php.net)
|
||
[](LICENSE)
|
||
|
||
Integrate [UrBackup](https://www.urbackup.org/) backup server management directly into GLPI. Monitor clients, manage backups, and link assets to UrBackup servers from within GLPI's asset management interface.
|
||
|
||
## Features
|
||
|
||
- **Server management** – Register UrBackup servers by location; test API connectivity.
|
||
- **Asset linking** – Link Computers (and other GLPI 11 asset types) to UrBackup clients.
|
||
- **Backup actions** – Start file/image incremental and full backups directly from the asset form.
|
||
- **Client lifecycle** – Create, rename, and delete UrBackup clients from GLPI.
|
||
- **Internet mode** – Toggle internet mode and configure default backup directories per asset.
|
||
- **Capacity system** – Native GLPI 11 integration via `UrBackupCapacity`; enable per Asset Definition.
|
||
- **Location-aware** – Auto-match assets to servers based on location hierarchy.
|
||
- **Massive actions** – Link/unlink assets to servers in bulk.
|
||
|
||
## Requirements
|
||
|
||
| Component | Version |
|
||
|-----------|---------|
|
||
| **GLPI** | >= 11.0.6, < 12.0.0 |
|
||
| **PHP** | >= 8.3.0 (8.4 supported) |
|
||
| **Database** | MySQL 5.7+ / MariaDB 10.5+ |
|
||
|
||
## Installation
|
||
|
||
1. **Download** the plugin and extract it to `GLPI_ROOT/plugins/urbackup/`
|
||
2. **Install** via GLPI web interface or CLI:
|
||
|
||
```bash
|
||
php bin/console glpi:plugin:install urbackup
|
||
php bin/console glpi:plugin:activate urbackup
|
||
```
|
||
|
||
3. **Configure rights** – Go to *Administration > Profiles*, select a profile, and set *UrBackup* rights (READ / UPDATE / CREATE / DELETE / PURGE).
|
||
4. **Add servers** – Navigate to *Admin > UrBackup servers* and register your UrBackup instances.
|
||
5. **Enable capacity** – Go to *Config > Asset definitions*, open an asset type, and enable *UrBackup* in the Capacities tab.
|
||
|
||
## Usage
|
||
|
||
### Linking assets to a server
|
||
|
||
- Open an asset (Computer, etc.) and go to the **UrBackup** tab.
|
||
- Select a server from the dropdown and click **Connect**.
|
||
- The asset appears in the server's *Linked clients* tab and backup actions become available.
|
||
|
||
### Starting a backup
|
||
|
||
1. Open a linked asset and go to its UrBackup tab.
|
||
2. Click **Start file backup** (incremental) or **Start image backup**.
|
||
3. Monitor progress in the UrBackup server web interface.
|
||
|
||
### Managing servers
|
||
|
||
- **Add**: *Admin > UrBackup servers > Add*
|
||
- **Edit**: Click a server name or the edit icon.
|
||
- **Test API**: The plugin auto-tests the API when saving; status is shown in the list.
|
||
|
||
## Permissions
|
||
|
||
| Right | Description |
|
||
|-------------|-------------|
|
||
| `READ` | View servers and asset backup status |
|
||
| `UPDATE` | Edit servers, start backups, toggle internet mode |
|
||
| `CREATE` | Add new servers, create clients |
|
||
| `DELETE` | Disconnect assets from servers |
|
||
| `PURGE` | Delete clients from UrBackup server |
|
||
|
||
## Development
|
||
|
||
```bash
|
||
# Lint
|
||
php -l src/*.php front/*.php
|
||
|
||
# Type checking (requires PHPStan)
|
||
vendor/bin/phpstan analyse --level 8 src/
|
||
|
||
# Database migration testing
|
||
# Install/uninstall/reinstall via CLI:
|
||
php bin/console glpi:plugin:install urbackup
|
||
php bin/console glpi:plugin:uninstall urbackup
|
||
```
|
||
|
||
## Project Structure
|
||
|
||
```
|
||
plugin_urbackup/
|
||
├── front/ # Entry points (form handlers, AJAX endpoints)
|
||
├── install/ # DB schema (mysql/) and install/uninstall scripts
|
||
├── public/ # Static assets (CSS, JS)
|
||
├── src/ # PHP classes (PSR-4: Plugin\Urbackup\)
|
||
│ ├── AssetTab.php
|
||
│ ├── Capacity/ # GLPI 11 capacity integration
|
||
│ ├── Config.php
|
||
│ ├── LocationHelper.php
|
||
│ ├── Profile.php
|
||
│ ├── Server.php
|
||
│ ├── ServerAsset.php
|
||
│ └── UrbackupApiClient.php
|
||
├── templates/ # Twig templates
|
||
├── setup.php # Plugin metadata, hooks, class registration
|
||
├── hook.php # Install/upgrade/uninstall + massive actions
|
||
└── README.md
|
||
```
|
||
|
||
## Changelog
|
||
|
||
### 0.7.0
|
||
- Dropped legacy `glpi_plugin_urbackup_profiles` and `glpi_plugin_urbackup_assettypes` tables
|
||
- Added composite index `(locations_id, is_active)` on servers table
|
||
- Added `date_creation`/`date_mod` columns to serverassets table
|
||
- Removed deprecated files and dead Symfony controller code
|
||
- CSRF hardening on all POST handlers
|
||
- Bumped minimum PHP to 8.3
|
||
|
||
### 0.6.0
|
||
- GLPI 11 compatibility with Asset Definition capacity system
|
||
- Migrated from Symfony to native GLPI form handling
|
||
- Added location-aware server matching
|
||
|
||
### 0.5.0
|
||
- Initial GLPI 10 compatibility
|
||
- Profile-based rights management
|
||
|
||
## License
|
||
|
||
GNU General Public License v2.0 or later. See [LICENSE](LICENSE).
|