Backup VPS

Offsite-Backup für einen Docker-basierten VPS mit WireGuard und rsync (OMV)

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:

  1. Datenbank-Dumps erstellen
  2. Containerdaten sichern
  3. Archiv erzeugen
  4. Prüfsummen generieren
  5. 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:

  1. Backup-Script auf dem VPS erzeugt Archiv
  2. Archiv wird lokal abgelegt
  3. WireGuard-Tunnel verbindet VPS mit Heimnetz
  4. NAS startet rsync Pull Job
  5. 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.