versione pre-stable
This commit is contained in:
@@ -1,37 +1,130 @@
|
||||
# UrBackup Plugin for GLPI 11
|
||||
# UrBackup plugin for GLPI 11
|
||||
|
||||
Plugin **UrBackup** per GLPI 11, sviluppato in PHP 8.3, che consente la gestione
|
||||
centralizzata dei server UrBackup e dei client direttamente dall’interfaccia GLPI.
|
||||
[](https://glpi-project.org)
|
||||
[](https://php.net)
|
||||
[](LICENSE)
|
||||
|
||||
Il plugin permette di:
|
||||
- collegare asset GLPI (Computer e altri asset) ai server UrBackup;
|
||||
- visualizzare lo stato dei backup;
|
||||
- eseguire azioni UrBackup (backup, gestione client, impostazioni);
|
||||
- gestire i server UrBackup da GLPI;
|
||||
- integrare ACL complete per profili GLPI;
|
||||
- supportare multi‑lingua (IT / EN / DE).
|
||||
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
|
||||
|
||||
## ✅ Compatibilità
|
||||
- **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.
|
||||
|
||||
| Componente | Versione |
|
||||
|-----------|----------|
|
||||
| GLPI | 11.x |
|
||||
| PHP | ≥ 8.3 |
|
||||
| Database | MySQL / MariaDB (GLPI standard) |
|
||||
## Requirements
|
||||
|
||||
---
|
||||
| Component | Version |
|
||||
|-----------|---------|
|
||||
| **GLPI** | >= 11.0.6, < 12.0.0 |
|
||||
| **PHP** | >= 8.3.0 (8.4 supported) |
|
||||
| **Database** | MySQL 5.7+ / MariaDB 10.5+ |
|
||||
|
||||
## ✅ Funzionalità principali
|
||||
## Installation
|
||||
|
||||
### 🔧 Configurazione plugin
|
||||
- Percorso: **Configurazione → Plugin → UrBackup**
|
||||
- Asset supportati:
|
||||
- Computer (sempre attivo)
|
||||
- Altri asset GLPI configurabili
|
||||
- Attivazione automatica tab e massive action sugli asset abilitati
|
||||
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
|
||||
```
|
||||
|
||||
### 🗄️ Gestione server 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).
|
||||
|
||||
Reference in New Issue
Block a user