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.

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_tokenstringJaKunden-Registrierungstoken
nas_hostnamestringNeinNAS-Hostname
devicesarrayJa (min. 1)Array von Backup-Jobs
devices[].hostnamestringJaHostname des gesicherten Geräts
devices[].statusstring/intJaABB-Statuscode oder String
devices[].job_namestringNeinName des Backup-Jobs
devices[].bytesintegerNeinBackup-Größe in Bytes
devices[].durationintegerNeinBackup-Dauer in Sekunden
devices[].last_run_atmixedNeinUnix-Timestamp oder ISO-Datum
devices[].backup_typestringNeinz. 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
1runningBackup läuft gerade
2okErfolgreich abgeschlossen
3errorFehlgeschlagen
4errorAbgebrochen
5warningMit Warnungen abgeschlossen
8okErfolgreich (alternativer Code)

Alternativ können String-Werte (ok, warning, error, missed, running, unknown) direkt übergeben werden.