Ein zuverlässiges Offsite-Backup gehört zu den grundlegenden Anforderungen beim Betrieb eines Servers.
Gerade bei einem VPS mit containerisierten Diensten ist es sinnvoll, Daten strukturiert zu sichern und zusätzlich außerhalb der Infrastruktur zu speichern.
Im folgenden Setup wird ein Docker-basierter VPS regelmäßig gesichert und die Backups automatisiert in ein Heimnetz übertragen. Die Übertragung erfolgt über eine WireGuard-VPN-Verbindung, während ein NAS mit OpenMediaVault (OMV) die Sicherung mittels rsync Pull übernimmt.
Das Ziel dieses Setups ist eine Lösung, die:
- automatisiert läuft
- ohne öffentlich erreichbare Backup-Ports auskommt
- über ein VPN abgesichert ist
- mit einfachen, etablierten Werkzeugen arbeitet
Serverstruktur
Der VPS hostet mehrere containerisierte Dienste über Docker, darunter typische Web-Services wie:
- Nextcloud
- WordPress
- Reverse Proxy
- Datenbankcontainer
- Redis
Persistente Daten liegen strukturiert unter einer gemeinsamen Basisstruktur:
/opt/containers
Dort befinden sich:
- Docker-Volumes
- Konfigurationen
- Upload-Daten
- Datenbankdaten
Durch diese Struktur lässt sich ein konsistentes Backup relativ einfach erzeugen.
Lokales Backup auf dem VPS
Auf dem Server läuft ein Backup-Script, das regelmäßig folgende Schritte ausführt:
- Datenbank-Dumps erstellen
- Containerdaten sichern
- Archiv erzeugen
- Prüfsummen generieren
- alte Backups rotieren
Die erzeugten Archive werden lokal abgelegt, z. B. unter:
/var/backups/docker-vps/
Beispielhafte Dateien:
backup_YYYY-MM-DD.tar.zst
backup_YYYY-MM-DD.sha256
Die Kompression erfolgt mit zstd, wodurch relativ kleine Archive bei gleichzeitig guter Geschwindigkeit entstehen.
Damit existiert zunächst ein vollständiges lokales Backup des Servers.
Offsite-Backup Architektur
Die Offsite-Sicherung erfolgt über eine VPN-Verbindung in ein Heimnetz.
Die Architektur ist bewusst einfach gehalten:
VPS
│
│ Backup Script
│ erzeugt Archiv
│
WireGuard VPN
│
Heimnetz
│
NAS (OpenMediaVault)
│
rsync Pull Job
Der entscheidende Punkt:
Das NAS initiiert die Übertragung selbst und zieht die Daten vom Server.
WireGuard-Verbindung ins Heimnetz
Der VPS fungiert als WireGuard-Client und verbindet sich mit einem Router im Heimnetz.
Die Konfiguration basiert auf einer exportierten WireGuard-Client-Konfiguration.
Eine wichtige Anpassung betrifft die Routing-Konfiguration.
Exportierte Konfigurationen enthalten häufig:
AllowedIPs = 0.0.0.0/0
Dies führt dazu, dass der gesamte Netzwerkverkehr des Servers über das VPN geleitet wird.
In einem Server-Setup kann das dazu führen, dass:
- Dienste von außen nicht mehr erreichbar sind
- bestehende Verbindungen abbrechen
- Docker-Services nicht mehr korrekt antworten
Stattdessen sollte die Routing-Regel auf das benötigte Netzwerk begrenzt werden.
Beispiel:
AllowedIPs = 10.x.x.x/24
Damit wird nur der Verkehr zum Heimnetz über das VPN geleitet.
Backup-Ablage auf dem VPS
Das Backup-Script erzeugt regelmäßig Archive im Backup-Verzeichnis:
/var/backups/docker-vps/
Typischer Inhalt:
backup_2026-03-13.tar.zst
backup_2026-03-14.tar.zst
backup_2026-03-15.tar.zst
Zusätzlich werden Prüfsummen abgelegt, um Integrität später verifizieren zu können.
rsync Pull mit OpenMediaVault
Die eigentliche Offsite-Übertragung übernimmt ein NAS mit OpenMediaVault.
Dort ist ein rsync-Job im Pull-Modus konfiguriert.
Konzeptuell:
Typ: Entfernt
Modus: Pull
Quelle:
user@vpn-ip:/var/backups/docker-vps/
Ziel:
lokales Backup-Verzeichnis
Der NAS-Server verbindet sich über das VPN zum VPS und überträgt die Backups mittels rsync.
Der Vorteil dieser Architektur:
- kein offener rsync-Port auf dem VPS
- Kommunikation ausschließlich über SSH
- Übertragung erfolgt nur über das VPN
SSH-Authentifizierung
Für den rsync-Job wird ein dediziertes SSH-Schlüsselpaar verwendet.
Auf dem NAS:
ssh-keygen -t ed25519
Der öffentliche Schlüssel wird anschließend auf dem VPS hinterlegt:
~/.ssh/authorized_keys
Damit kann sich der NAS-Server per SSH anmelden, ohne ein Passwort zu benötigen.
Test:
ssh -i <key> user@vpn-ip
Erst wenn dieser Test erfolgreich ist, sollte der rsync-Job konfiguriert werden.
Ablauf der Sicherung
Der vollständige Backup-Workflow sieht folgendermaßen aus:
- Backup-Script auf dem VPS erzeugt Archiv
- Archiv wird lokal abgelegt
- WireGuard-Tunnel verbindet VPS mit Heimnetz
- NAS startet rsync Pull Job
- Backup wird lokal auf dem NAS gespeichert
Die Sicherung erfolgt vollständig automatisiert.
Vorteile des Setups
Diese Architektur bietet mehrere Vorteile:
- keine öffentlich erreichbaren Backup-Ports
- Übertragung ausschließlich über VPN
- einfache und robuste Werkzeuge
- geringe Komplexität
- vollständige Kontrolle über die Daten
Darüber hinaus ist das Setup leicht nachvollziehbar und gut wartbar.
Mögliche Erweiterungen
Für produktivere Umgebungen können zusätzliche Maßnahmen sinnvoll sein:
- zusätzliche Snapshot-Rotation auf dem NAS
- verschlüsselte Backups
- automatisierte Integritätsprüfungen
- Monitoring der Backup-Jobs
Fazit
Mit einem strukturierten Backup-Script auf dem VPS, einer WireGuard-VPN-Verbindung und einem rsync Pull Job auf einem NAS lässt sich eine robuste Offsite-Backup-Lösung aufbauen.
Die Kombination aus Docker-Containerstruktur, VPN-Transport und rsync-Synchronisation ermöglicht ein zuverlässiges Backup-Konzept mit vergleichsweise geringem Aufwand.