Schritt für Schritt

Backups und Updates

Kapitel 16 von 163 Min. Lesezeitaktualisiert 17.10.2026

Selbst hosten ist nur so gut wie das letzte Backup, das man auch wirklich zurückspielen konnte. Dieser Teil ist unspektakulär und trotzdem der wichtigste.

Die 3-2-1-Regel

  • 3 Kopien der Daten (das Original und zwei Sicherungen),
  • auf 2 verschiedenen Datenträgern,
  • 1 davon an einem anderen Ort, z. B. bei einem zweiten Vorstandsmitglied oder verschlüsselt in der Cloud.

Ebene 1: Proxmox sichert jeden Container

Weil jeder Dienst in seinem eigenen Container läuft, lässt sich auch jeder einzeln zurückspielen. Unter Rechenzentrum → Backup → Hinzufügen einen Job anlegen:

Speicherdas Datenlaufwerk oder eine USB-Platte, nicht die System-SSD
Zeitplantäglich, z. B. 03:00
Auswahlalle Container außer der Vorlage 9000
ModusSnapshot (die Dienste laufen während der Sicherung weiter)
Aufbewahrungz. B. 7 tägliche, 4 wöchentliche, 6 monatliche
BenachrichtigungE-Mail bei Fehlern

Mount Points mit großen Datenmengen (Fotos, Scans) werden nur mitgesichert, wenn bei ihnen „Backup“ angehakt ist. Das bewusst entscheiden. Wer mehr will, setzt einen Proxmox Backup Server auf einem zweiten Gerät auf: Er speichert nur Änderungen, verschlüsselt und prüft die Sicherungen selbstständig.

Ebene 2: Anwendungen exportieren ihre Daten

Ein Container-Backup ist bequem, aber nur mit Proxmox lesbar. Zusätzlich exportiere ich die Inhalte nachts in offene Formate, jeweils im Container selbst:

# Admidio, WordPress und Nextcloud (MariaDB im Container), per Cron als root
0 1 * * * mariadb-dump --all-databases | gzip > /srv/backup/db-$(date +\%F).sql.gz

# Paperless: alle Dokumente samt Metadaten
0 2 * * * cd /opt/paperless && docker compose exec -T webserver document_exporter ../export

Mit Ansible verteilt man solche Cron-Jobs an alle betroffenen Container auf einmal, mit dem Modul ansible.builtin.cron.

Ebene 3: eine Kopie außer Haus

Mit rclone lassen sich die Backup-Dateien verschlüsselt zu einem Speicheranbieter in Deutschland hochladen. Alternativ zwei USB-Platten im Wechsel: eine hängt am Server, die andere liegt bei einem Vorstandsmitglied.

Ein Backup, das nie zurückgespielt wurde, ist nur eine Hoffnung. Einmal im Quartal einen Container aus dem Backup unter neuer ID wiederherstellen, starten, kurz prüfen, wieder löschen. Das dauert zehn Minuten und schafft echte Sicherheit.

Updates

WasWieWann
Proxmox(Knoten) → Updates → Aktualisieren, dann Upgrademonatlich
Alle ContainerSicherheitsupdates automatisch, alles andere mit ansible-playbook update.ymlmonatlich
Paperless, Keycloak, Vaultwarden, Uptime Kumadocker compose pull && docker compose up -dmonatlich
Nextcloudeingebauter Updater, nie mehrere Hauptversionen auf einmal überspringensobald verfügbar
n8nnpm install -g n8n@latest, dann Dienst neu startenmonatlich
Admidio, ResourceSpace, WordPressüber die eigene Update-Funktion der Anwendungsobald verfügbar

Vor jedem größeren Update einen Snapshot der betroffenen Container anlegen. Das geht auf einen Schlag in der Proxmox-Shell:

for id in 100 101 102 110 111 112 113 114 115 116; do
  pct snapshot $id vor-update-$(date +%Y%m%d)
done

Läuft danach etwas nicht, ist der einzelne Container mit pct rollback <ID> vor-update-… in Sekunden zurück. Bei großen Versionssprüngen (z. B. eine neue Hauptversion von PostgreSQL oder Proxmox) immer erst die Upgrade-Hinweise des Herstellers lesen.

Überwachung

Ob die nächtlichen Backups wirklich gelaufen sind, meldet Uptime Kuma mit einem Push-Monitor: Jedes Backup-Skript ruft am Ende eine URL auf, bleibt der Aufruf aus, gibt es Alarm.

Moin!

Stehst du vor ähnlichen Fragen?

Ob eigener Verein, Homelab oder einfach Neugier: Ich freue mich über Fragen und Erfahrungen.