Backup-Verwaltung¶
enconf erstellt inkrementelle, deduplizierte und verschlüsselte Backups — lokal, auf S3-kompatiblem Speicher oder per FTP. Backups können zeitgesteuert oder manuell ausgeführt und jederzeit wiederhergestellt werden. Laufende Jobs sind systemweit sichtbar und bleiben auch beim Seitenwechsel aktiv.
Übersicht¶
Die Backup-Verwaltung ist in drei Tabs unterteilt:
| Tab | Inhalt |
|---|---|
| Zeitpläne | Konfigurierte Backup-Zeitpläne anlegen, bearbeiten, aktivieren |
| Verlauf | Alle ausgeführten und laufenden Backup- und Wiederherstellungs-Jobs |
| Wiederherstellen | Snapshots auswählen, durchsuchen, wiederherstellen — oder einen Snapshot manuell löschen (Danger-Bestätigung; entfernt gezielt einen Snapshot, unabhängig von der Aufbewahrung) |
Laufende Aufgaben¶
Solange mindestens ein Backup- oder Wiederherstellungs-Job läuft, erscheint ein blauer Banner oberhalb der Tabs. Dieser ist auf allen Tabs sichtbar und wird alle 5 Sekunden aktualisiert.
Der Banner zeigt für jeden laufenden Job: - Typ (Backup / Wiederherstellung) - Zeitplanname und Umfang - Status (Läuft / Wartend) - Startzeit
Abgeschlossene Jobs werden automatisch im Tab Verlauf aktualisiert.
Server-weite vs. kundenspezifische Backups¶
Als Admin haben Sie zwei Modi zur Auswahl:
| Modus | Wann verwenden | Repository-Pfad |
|---|---|---|
| Gesamter Server | Standard-Empfehlung. Ein einziger Zeitplan sichert die Daten aller Kunden (Web-Roots, Datenbanken, Mail-Vhosts, SSL-Zertifikate) in ein gemeinsames Backup-Repository. Kein Kundenpicker. | <bucket>/<pfad>/server |
| Einzelner Kunde | Nur wenn ein bestimmter Kunde eigene Aufbewahrungszeiten, Ziele oder Credentials braucht. | <bucket>/<pfad>/<customer_id> |
Kunden sehen ausschließlich ihre eigenen kundenspezifischen Zeitpläne. Server-weite Zeitpläne bleiben auf den Admin-Bereich beschränkt.
Migration bestehender Zeitpläne
Bestehende kundenspezifische Zeitpläne laufen unverändert weiter. Es gibt keine automatische Umstellung. Wenn Sie auf den server-weiten Modus umsteigen möchten, legen Sie einen neuen server-weiten Zeitplan an und deaktivieren Sie die alten kundenspezifischen Zeitpläne.
Bekannte Einschränkung
Im Modus Gesamter Server wird der Scope config aktuell nicht angewendet, da der Agent dabei einen einzelnen Linux-User benötigt. Verwenden Sie für server-weite Sicherungen die Scopes full, web, db, mail oder ssl.
Zeitpläne¶
Zeitplan erstellen¶
- Klicken Sie auf Zeitplan anlegen
- Füllen Sie das Formular aus:
| Feld | Pflicht | Beschreibung |
|---|---|---|
| Name | Ja | Bezeichnung des Zeitplans |
| Backup-Typ | Ja (Admin) | Kundendaten (Standard), Panel/System oder Node — siehe Hinweis unten |
| Backup-Umfang | Ja (Admin) | Gesamter Server (Standard) oder Einzelner Kunde |
| Kunde | Bei Einzelner Kunde | Zuordnung zu einem Kunden — wird nur eingeblendet wenn der Backup-Umfang auf Einzelner Kunde steht |
| Umfang | Ja | full, web, db, mail, ssl oder config |
| Häufigkeit | Ja | hourly, daily, weekly oder monthly |
| Uhrzeit | Nein | Stunde der Ausführung in UTC (0–23) |
| Wochentag | Bei weekly | Wochentag der Ausführung |
| Monatstag | Bei monthly | Tag des Monats (1–28) |
| Aufbewahrung | Ja | Anzahl der aufbewahrten Snapshots |
| Ziel | Ja | Lokal, S3 (empfohlen), SFTP oder FTP |
| S3 Endpoint | Nein | Eigener S3-Endpoint (leer = globale Einstellung) |
| S3 Access Key | Nein | Eigener Access Key (leer = globale Einstellung) |
| S3 Secret Key | Nein | Eigener Secret Key (leer = globale Einstellung) |
- Klicken Sie auf Erstellen
Verschlüsselungskey sichern
Nach dem Erstellen eines Zeitplans wird ein individueller Verschlüsselungskey generiert. Klicken Sie auf das Schlüssel-Symbol in der Zeitplan-Tabelle, um den Key anzuzeigen. Speichern Sie diesen Key extern (Passwort-Manager, USB-Stick, Tresor) — ohne ihn können Backups nicht wiederhergestellt werden.
Nur ein lokales Ziel pro Kunde
Pro Kunde ist ein kundenspezifischer Zeitplan mit Ziel Lokal möglich — das lokale Backup-Repository liegt pro Kunde an einem festen Pfad und wird geteilt (jeder Zeitplan hat einen eigenen Verschlüsselungskey). Für einen zweiten Zeitplan desselben Kunden wählen Sie ein anderes Ziel (S3, SFTP oder FTP). Der Versuch, ein zweites lokales Ziel anzulegen, wird mit einer klaren Meldung abgelehnt.
Backup-Typen: Kundendaten, Panel/System, Node
- Kundendaten sichert Web-Roots, Datenbanken, Mail und SSL der Kunden.
- Panel/System sichert den Panel-Host inklusive der Panel-Datenbank (Kunden, Subscriptions, Site-Metadaten) und der Systemkonfiguration.
- Node sichert die rollenspezifische Systemkonfiguration eines Remote-Servers (Web/DB/Mail/DNS) — ohne Panel-Datenbank — für die Disaster-Recovery im Mehrserver-Betrieb. Der Typ Node wird nur angeboten, wenn tatsächlich Remote-Nodes angebunden sind; auf einer Single-Server-Installation ist er ausgeblendet.
Verschlüsselungskey verwalten¶
Im Key-Dialog stehen vier Aktionen zur Verfügung:
| Aktion | Beschreibung |
|---|---|
| Kopieren | Key in die Zwischenablage kopieren |
| Als Datei herunterladen | Key als netcell-backup-key-<id>.txt speichern |
| Key ersetzen | Einen extern gesicherten Key übernehmen — z. B. um ein bestehendes Backup-Repository aus einer anderen Panel-Installation weiterzunutzen |
| Schließen | Dialog schließen |
Achtung beim Ersetzen
Wenn Sie den Key ersetzen, sind alle bisherigen Backups dieses Zeitplans mit dem neuen Key nicht mehr lesbar. Nutzen Sie diese Funktion ausschließlich, um nach einer Neuinstallation des Panels den Zugriff auf ein bestehendes externes Repository (S3 oder FTP) wiederherzustellen.
Migration auf ein neues Panel:
- Im alten Panel: Schlüssel-Symbol → Als Datei herunterladen
- Im neuen Panel: Backup-Zeitplan mit identischem Ziel (S3/FTP, Bucket, Pfad) anlegen
- Schlüssel-Symbol → Key ersetzen → Inhalt der heruntergeladenen Datei einfügen
- Snapshots werden anschließend wieder gelistet und können wiederhergestellt werden
Eigener S3-Speicher¶
Kunden können eigene S3-kompatible Speicher hinterlegen (z. B. AWS S3, Wasabi, MinIO, Hetzner Object Storage). Dafür werden S3 Endpoint, Access Key und Secret Key direkt am Zeitplan konfiguriert.
| Einstellung | Beschreibung |
|---|---|
| S3 Endpoint | URL des S3-kompatiblen Dienstes (z. B. https://s3.eu-central-1.amazonaws.com) |
| S3 Access Key | Zugriffsschlüssel für den S3-Dienst |
| S3 Secret Key | Geheimer Schlüssel (wird verschlüsselt gespeichert) |
| S3 Bucket | Name des S3-Buckets |
| S3 Pfad | Pfad innerhalb des Buckets |
Wenn die Felder leer bleiben, werden die globalen S3-Einstellungen des Admins verwendet (konfiguriert unter Einstellungen → Backup).
Permission: Eigener Backup-Speicher
Die Möglichkeit eigene S3/FTP-Credentials zu hinterlegen kann pro Paket über die Permission Eigener Backup-Speicher (S3/FTP) eingeschränkt werden. Standardmäßig ist diese Permission deaktiviert.
Umfang¶
| Wert | Was wird gesichert |
|---|---|
| full | Webdateien + Datenbanken + Mails + SSL + Konfiguration |
| web | Nur Webdateien (Webspace) |
| db | Nur Datenbanken (MariaDB) |
| Nur E-Mail-Postfächer (Maildir + Sieve) | |
| ssl | Nur SSL-Zertifikate |
| config | Nginx- und PHP-FPM-Konfiguration |
Speicherziele¶
Lokal (Server)¶
Backups werden im lokalen Backup-Repository des Servers gespeichert.
Lokale Backups
Lokale Backups schützen nicht vor Festplattenausfall. Kombinieren Sie lokale Backups mit einem externen Ziel.
S3 / S3-kompatibel — empfohlen¶
S3 ist das empfohlene Ziel
S3 (und S3-kompatible Dienste) schreiben Backups direkt vom Server, ohne lokalen Zwischenspeicher — das robusteste externe Ziel. Im Zeitplan-Dialog ist S3 als (empfohlen) markiert.
| Feld | Beschreibung |
|---|---|
| S3 Bucket | Bucket-Name |
| S3 Pfad | Unterverzeichnis im Bucket (optional) |
Die S3-Zugangsdaten (Endpoint, Region, Access Key, Secret Key) werden unter Einstellungen → Backup konfiguriert.
SFTP (SSH)¶
SFTP nutzt das native SFTP-Backend von restic über SSH — es schreibt direkt auf das Ziel, ohne lokalen Zwischenspeicher, und authentifiziert sich schlüsselbasiert (kein Passwort).
| Feld | Beschreibung |
|---|---|
| SFTP-Host | Server-Adresse |
| SFTP-Port | Standard: 22 |
| SFTP-Benutzer | Benutzername |
| Zielpfad | Zielverzeichnis auf dem SFTP-Server |
Beim Auswählen von SFTP zeigt das Panel den öffentlichen Schlüssel des Agenten an (kopierbar). Tragen Sie diesen einmalig in die ~/.ssh/authorized_keys des SFTP-Ziel-Benutzers ein — danach läuft die Authentifizierung ohne Passwort. Eine Keepalive-Konfiguration erkennt tote Verbindungen und bricht zügig ab, statt hängen zu bleiben.
FTP¶
FTP wird lokal zwischengespeichert
FTP-Backups werden zuerst lokal auf dem Server erstellt und anschließend per lftp auf das FTP-Ziel gespiegelt. Dafür muss auf dem Server genug freier Speicher vorhanden sein — vor jedem Lauf wird das geprüft; reicht der Platz nicht, bricht das Backup ab und meldet es (Benachrichtigung an den Admin). S3 und SFTP schreiben direkt und sind zu bevorzugen.
| Feld | Beschreibung |
|---|---|
| FTP-Host | Server-Adresse |
| FTP-Port | Standard: 21 |
| FTP-Benutzer | Benutzername |
| FTP-Passwort | Passwort |
| FTP-Pfad | Zielverzeichnis auf dem FTP-Server |
| Verschlüsselung | FTPS explizit (empfohlen) / implizit / unverschlüsselt |
Das lokale Repository ist die Quelle der Wahrheit; das FTP-Ziel ist ein Spiegel davon. Bei der ersten Ausführung wird ein bereits vorhandenes FTP-Repository einmalig heruntergeladen und danach inkrementell fortgeführt — der Umstieg auf dieses Verfahren ist verlustfrei. Lässt sich ein vorhandenes FTP-Repository nicht lokal bereitstellen, bricht der Lauf ab, statt die vorhandenen Backups zu überschreiben.
Netzwerkspeicher (NFS/CIFS)¶
Alternativ kann der lokale Backup-Pfad auf eine NFS- oder CIFS/SMB-Freigabe gelegt werden (unter Einstellungen → Backup → Netzwerkspeicher). Sowohl lokale als auch FTP-zwischengespeicherte Backups landen dann auf dem Netzwerkspeicher. Der Mount wird als systemd-Unit persistiert und übersteht Neustarts; die nötigen Client-Pakete (nfs-common bzw. cifs-utils) installiert der Agent bei Bedarf automatisch, und der Schreibzugriff wird beim Einrichten geprüft.
Verbindungstest¶
Klicken Sie auf Verbindung testen, um die Erreichbarkeit des Speicherziels zu prüfen, bevor Sie den Zeitplan speichern:
| Speicherziel | Testmethode |
|---|---|
| S3 | restic-Init gegen das Ziel — prüft Zugangsdaten, Bucket-Zugriff und Schreibberechtigung |
| SFTP | restic-Init über SSH — prüft Schlüssel-Authentifizierung, Erreichbarkeit und Schreibrecht |
| FTP | lftp-Login + Verzeichnis-Anlage — prüft Auth, TLS, Pfad und Schreibberechtigung |
| Lokal | Erstellt ein Testverzeichnis — prüft Schreibberechtigung im angegebenen Pfad |
Vor dem Speichern testen
Testen Sie die Verbindung immer vor dem Erstellen eines Zeitplans, um fehlgeschlagene Backups durch falsche Zugangsdaten zu vermeiden.
Aufbewahrung & Pruning¶
Die Aufbewahrung legt fest, wie viele Snapshots behalten werden. Diese Anzahl wird nach jedem Backup durchgesetzt — Snapshots über dem Limit verschwinden sofort aus der Liste.
Das Freigeben des Speicherplatzes dieser entfernten Snapshots (ein Prune) ist ein separater, deutlich aufwändigerer Vorgang. Damit Backups schnell bleiben, läuft er im Hintergrund und höchstens einmal pro Woche pro Repository — ein Backup ist also fertig, sobald sein Snapshot geschrieben ist, und wird nie durch das Pruning verzögert, selbst bei langsamem Speicher wie FTP. Ein abgebrochener Backup-Lauf kann einen Zeitplan nicht mehr blockieren: verwaiste Repository-Locks werden beim nächsten Lauf automatisch bereinigt.
Einzelnen Snapshot löschen geht sofort
Das Löschen eines Snapshots im Wiederherstellen-Tab entfernt ihn sofort aus der Liste; der Speicherplatz wird beim nächsten geplanten Prune frei. Es gibt keine minutenlange Wartezeit mehr beim Löschen.
Langsame FTP-Ziele — Prune begrenzen
Über FTP ist das Repacking der Packs netzwerkgebunden und kann langsam sein, daher wird es pro Lauf begrenzt und holt über die wöchentlichen Läufe auf (vollständig unreferenzierte Daten werden immer sofort komplett freigegeben). Das Limit ist für FTP-Ziele standardmäßig 64M und für S3/lokal unbegrenzt. Pro Installation anpassbar über BACKUP_PRUNE_MAX_REPACK in /etc/enconf/agent.env (z. B. BACKUP_PRUNE_MAX_REPACK=256M, oder unlimited zum Deaktivieren), danach den Agent neu starten.
Zeitplan aktivieren / deaktivieren¶
Deaktivierte Zeitpläne werden nicht automatisch ausgeführt, können aber manuell gestartet werden.
Zeitplan bearbeiten¶
- Klicken Sie auf das Bearbeiten-Symbol
- Passen Sie die Einstellungen an
- Klicken Sie auf Speichern
Zeitplan löschen¶
- Klicken Sie auf das Löschen-Symbol
- Bestätigen Sie die Löschung
Snapshots bleiben erhalten
Beim Löschen eines Zeitplans bleiben die am Speicherziel abgelegten Snapshots erhalten.
Manuelles Backup¶
Für jeden Zeitplan kann jederzeit ein sofortiges Backup ausgelöst werden:
- Klicken Sie auf den grünen Button Jetzt ausführen in der Aktionsspalte des gewünschten Zeitplans
- Der Backup-Job wird sofort gestartet und im Laufende-Aufgaben-Banner angezeigt
Alle starten: Klicken Sie auf Alle starten (oben rechts), um alle aktiven Zeitpläne gleichzeitig auszuführen.
Verlauf (Job-Tabelle)¶
Der Tab Verlauf zeigt alle ausgeführten und laufenden Backup- und Wiederherstellungs-Jobs.
Spalten¶
| Spalte | Beschreibung |
|---|---|
| Gestartet | Startzeit (z. B. „Heute, 03:00 Uhr"), darunter Laufzeit und Datenmenge |
| Zeitplan | Zeitplanname mit farbigem Umfang-Tag; bei Wiederherstellungen zusätzlich der Typ |
| Status | Farbige Statusanzeige |
| Snapshot | Kurzform der Snapshot-ID (nur bei Backups, nur auf großen Bildschirmen) |
| (Detailbutton) | Öffnet die Detailansicht |
Tipp: Eine Zeile anklicken öffnet ebenfalls die Detailansicht.
Status-Indikatoren¶
| Status | Farbe | Bedeutung |
|---|---|---|
| Wartend | Grau | Job wartet auf Ausführung |
| Läuft | Blau (animiert) | Wird gerade ausgeführt |
| Erfolg | Grün | Erfolgreich abgeschlossen |
| Fehler | Rot | Fehlgeschlagen |
Job-Typ¶
| Symbol | Farbe | Bedeutung |
|---|---|---|
| ↑ Wolke | Blau | Backup |
| ↩ Pfeil | Orange | Wiederherstellung |
Detailansicht¶
Klicken Sie auf eine Zeile oder den Info-Button, um die Detailansicht zu öffnen. Diese zeigt:
- Typ und Status als farbige Tags
- Zeitplan, Startzeit, Endzeit, Laufzeit, Datenmenge, Snapshot-ID
- Ausführungslog — dunkles Terminal-Fenster mit detaillierten Statistiken:
- Bei Backups: neue Dateien, geänderte Dateien, unveränderte Dateien, übertragene Datenmenge, Gesamtdauer
- Bei Wiederherstellungen: wiederhergestellte Dateien, übersprungene Dateien, Bytes, Laufzeit
- Fehlermeldung (bei fehlgeschlagenen Jobs)
Kein Log bei fehlgeschlagenem Backup
Das Ausführungslog wird nur bei erfolgreich abgeschlossenen Jobs angezeigt. Bei Fehlern erscheint stattdessen eine rote Fehlermeldung.
Alte Einträge löschen¶
Klicken Sie auf Alte Einträge löschen oberhalb der Tabelle, um abgeschlossene und fehlgeschlagene Jobs zu bereinigen, die älter als 30 Tage sind.
Automatische Bereinigung
Führen Sie die Bereinigung regelmäßig durch, um die Übersichtlichkeit des Verlaufs zu gewährleisten.
Snapshots und Wiederherstellung¶
Snapshots anzeigen¶
- Wechseln Sie zum Tab Wiederherstellen
- Wählen Sie einen Zeitplan aus der Dropdown-Liste
- Klicken Sie auf Snapshots laden
- Die verfügbaren Wiederherstellungspunkte werden angezeigt
| Spalte | Beschreibung |
|---|---|
| Erstellt am | Erstellungszeitpunkt (z. B. „Heute, 14:23 Uhr") |
| Enthält | Inhalts-Tags basierend auf dem Backup-Umfang |
| Aktionen | Wiederherstellen, Dateien durchsuchen |
Dateien durchsuchen¶
- Klicken Sie neben dem Snapshot auf Dateien durchsuchen
- Navigieren Sie durch die Verzeichnisstruktur des Snapshots
- Klicken Sie neben einer Datei auf Wiederherstellen, um diese Datei selektiv wiederherzustellen
Wiederherstellung starten¶
- Klicken Sie neben dem Snapshot auf Wiederherstellen
- Wählen Sie per Karten-Interface aus, was wiederhergestellt werden soll:
| Option | Beschreibung |
|---|---|
| Alles wiederherstellen | Alle Daten aus dem Backup (nur bei full-Umfang) |
| Webseiten-Dateien | Webdateien & Verzeichnisse |
| Datenbanken | Alle Datenbanken & Tabellen |
| E-Mail-Daten | E-Mails & Mailbox-Daten |
| SSL-Zertifikate | SSL-Zertifikate & Schlüssel |
| Konfiguration | Nginx, PHP-FPM Konfiguration |
| Einzelne Datei | Gezielter Dateipfad |
Die verfügbaren Optionen richten sich nach dem Umfang des Zeitplans.
- Bestätigen Sie die Wiederherstellung
Überschreibung
Eine Wiederherstellung überschreibt die aktuellen Daten. Erstellen Sie vorher ein manuelles Backup des aktuellen Stands.
Die Wiederherstellung läuft asynchron im Hintergrund. Der Fortschritt ist im Laufende-Aufgaben-Banner und nach Abschluss im Verlauf einsehbar.
Backup-Einstellungen¶
Die globalen Backup-Einstellungen werden unter Einstellungen → Backup konfiguriert:
| Einstellung | Beschreibung |
|---|---|
| S3-Endpoint | URL des S3-Dienstes (z. B. https://s3.amazonaws.com) |
| S3-Region | AWS-Region |
| S3-Access-Key | Zugangschlüssel |
| S3-Secret-Key | Geheimer Schlüssel |
| Backup aktiviert | Globaler Ein-/Ausschalter |
| Standard-Aufbewahrung | Standardmäßige Aufbewahrungsanzahl |
Hier lassen sich außerdem globale SFTP- und FTP-Zugangsdaten hinterlegen, die Zeitpläne als Fallback nutzen, wenn sie kein eigenes Ziel angeben.
Netzwerkspeicher (NFS/CIFS)¶
Unter Einstellungen → Backup → Netzwerkspeicher kann der lokale Backup-Pfad auf eine Netzwerkfreigabe gelegt werden:
| Feld | Beschreibung |
|---|---|
| Typ | Kein (lokale Festplatte), NFS oder CIFS/SMB |
| Server | Adresse des NFS-/CIFS-Servers |
| Export-Pfad / Freigabename | NFS-Export (z. B. /exports/backups) bzw. CIFS-Freigabe |
| Benutzer / Passwort | Nur CIFS — Zugangsdaten (verschlüsselt gespeichert, in einer root-only Credentials-Datei abgelegt) |
| Zusätzliche Mount-Optionen | Optional, komma-getrennt |
Speichern & Mounten richtet den Mount ein, prüft den Schreibzugriff und persistiert ihn als systemd-Unit (übersteht Neustarts). Trennen hängt die Freigabe wieder aus. Der aktuelle Status wird angezeigt, sobald ein Netzwerkspeicher aktiv ist.
S3 bevorzugen
Netzwerkspeicher und FTP legen Backups zunächst lokal ab. Für ein direktes, ausfallsicheres externes Ziel ist S3 (oder SFTP) vorzuziehen.