Backup & Synology API — Active Backup for Business Integration
Die Synology-Integration ermöglicht es, Backup-Status von Synology Active Backup for Business automatisch an das IT-Dashboard zu melden. Dafür stehen ein Shell-Script, ein SPK-Paket und die REST-API zur Verfügung.
Inhalt
1. Authentifizierung
Alle Backup-Endpunkte nutzen das Kunden-Registrierungstoken (customer_token), das in den Kundeneinstellungen hinterlegt ist. Es wird im Request-Body oder als Query-Parameter übergeben.
Wichtig: Kein Bearer-Header. Das Token wird direkt als Parameter gesendet.
2. POST /api/backup/synology
Meldet Backup-Job-Status von einem Synology NAS. Wird typischerweise alle 5 Minuten vom Shell-Script aufgerufen.
Request
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| customer_token | string | Ja | Kunden-Registrierungstoken |
| nas_hostname | string | Nein | NAS-Hostname |
| devices | array | Ja (min. 1) | Array von Backup-Jobs |
| devices[].hostname | string | Ja | Hostname des gesicherten Geräts |
| devices[].status | string/int | Ja | ABB-Statuscode oder String |
| devices[].job_name | string | Nein | Name des Backup-Jobs |
| devices[].bytes | integer | Nein | Backup-Größe in Bytes |
| devices[].duration | integer | Nein | Backup-Dauer in Sekunden |
| devices[].last_run_at | mixed | Nein | Unix-Timestamp oder ISO-Datum |
| devices[].backup_type | string | Nein | z. B. „PC", „VM", „FileServer" |
Beispiel
curl -X POST https://it-dashboard.de/api/backup/synology \
-H "Content-Type: application/json" \
-d '{
"customer_token": "abc123...",
"nas_hostname": "SynologyNAS",
"devices": [
{
"hostname": "SERVER01",
"status": 2,
"job_name": "ABB: SERVER01",
"bytes": 1073741824,
"duration": 3600,
"last_run_at": 1709456400
}
]
}'
Antwort (200)
{
"success": true,
"processed": 3,
"matched": 3,
"unmatched": ["unknown-host"],
"message": "3 Backup-Jobs verarbeitet, 1 Geräte nicht zugeordnet"
}
Device-Matching
Geräte werden anhand des Hostnames mit der Gerätedatenbank abgeglichen. Verglichen werden: vollständiger Hostname, Kurzname (vor dem ersten Punkt) und sys_name. Nicht zugeordnete Geräte werden in unmatched aufgelistet.
3. GET /api/backup/synology-status
Ruft den aktuellen Backup-Status ab. CORS-fähig — kann direkt von JavaScript im NAS-Web-UI aufgerufen werden.
GET /api/backup/synology-status?customer_token=abc123...
Antwort (200)
{
"success": true,
"customer": "Acme Corp",
"last_report_at": "2026-03-01T10:30:00+00:00",
"devices": [
{
"hostname": "SERVER01",
"status": "ok",
"job_name": "ABB: SERVER01",
"last_run_at": "2026-03-01T10:30:00+00:00",
"last_size_bytes": 1073741824,
"last_duration_seconds": 3600,
"error_message": null,
"nas_hostname": "SynologyNAS"
}
],
"total": 1, "ok": 1, "error": 0, "warning": 0, "running": 0
}
4. SPK-Paket herunterladen
GET /api/backup/synology-spk
Lädt das SPK-Installationspaket für Synology DSM 7.x herunter. Authentifizierung entweder als eingeloggter Admin oder per customer_token.
GET /api/backup/synology-spk?customer_token=abc123...
GET /api/synology/{'{customerToken}'}/download
Alternativer Download-Endpunkt, der vom DSM Package Center verwendet wird.
5. Synology Package Feed
Kann als Paketquelle im DSM Package Center eingetragen werden:
https://it-dashboard.de/api/synology/{'{customerToken}'}
DSM sendet automatisch GET- oder POST-Anfragen mit Architektur- und Build-Informationen. Der Feed gibt das SPK-Paket mit Metadaten im Synology-kompatiblen JSON-Format zurück.
6. ABB Status-Codes
| ABB-Code | Interner Status | Bedeutung |
|---|---|---|
| 1 | running | Backup läuft gerade |
| 2 | ok | Erfolgreich abgeschlossen |
| 3 | error | Fehlgeschlagen |
| 4 | error | Abgebrochen |
| 5 | warning | Mit Warnungen abgeschlossen |
| 8 | ok | Erfolgreich (alternativer Code) |
Alternativ können String-Werte (ok, warning, error, missed, running, unknown) direkt übergeben werden.