Enterprise Runbook – YunoHost Backup & Restore Strategy (MayIT)

YunoHost – Complete Backup Strategy & Restore Runbook

Dieses Runbook beschreibt den vollständigen Backup-Prozess für einen produktiven YunoHost-Server mit Nextcloud, WordPress, SOGo, MariaDB, nginx und Netdata. Es umfasst manuelle Sicherungen, automatisierte tägliche Backups, Offsite-Kopien, Integritätsprüfungen, Restore-Tests und die migrationssichere Wiederherstellung.
Autor: MayIT MayITEnterprise Backup + Restore + DR Netcup / VPS geeignet

Scope & Zielbild

Zielbild: Konsistente, nachvollziehbare und regelmäßig getestete Sicherung des gesamten Systems.
  • Apps: Nextcloud, WordPress, SOGo, Netdata und weitere YunoHost-Apps
  • System: YunoHost-Konfiguration, Domains, SSL, nginx, Benutzer, Firewall
  • Daten: MariaDB-Dumps, App-Daten, Webdaten, Konfigurationsdateien
  • Betrieb: tägliche Automatisierung, Offsite-Kopie, Monitoring, Restore-Test
Grundsatz: Ein erfolgreich erzeugtes Archiv ist noch kein belastbarer Backup-Nachweis. Erst Integritätsprüfung, Download und Restore-Test machen das Backup betriebssicher.
Empfohlenes Ziel: 3-2-1-Strategie mit lokalem Backup, externem Offsite-Speicher und dokumentiertem Restore.

Backup-Architektur

Backup-TypInhaltRhythmus
YunoHost BackupSystem + Apps + DB + App-Datentäglich
System-Archiv/etc, /home, /var/wwwtäglich oder vor Changes
Offsite-KopieTransfer auf Storage Box / NAS / zweiten Servertäglich
Restore-TestWiederherstellung auf Testsystemmonatlich
Empfohlene Reihenfolge: YunoHost Backup → Prüfung → System-Archiv → Offsite → Test
Besonders relevant für deine Umgebung:
Nextcloud-Datenbestand, MariaDB-Inhalte, WordPress-Webroot, SOGo-Mail-/Groupware-Daten, nginx-Konfiguration, TLS-Zertifikate und Netdata-Konfiguration.

Phase 0: Voraussetzungen

Vor jedem Backup sicherstellen:
  • ausreichend freier Speicherplatz vorhanden
  • keine kritischen laufenden Änderungen oder Wartungsarbeiten
  • SSH-Zugang funktionsfähig
  • YunoHost und Apps nicht in fehlerhaftem Zustand
df -h
sudo yunohost app list
sudo yunohost service status
sudo yunohost diagnosis run --issues

Phase 1: Manuelles YunoHost-Backup

Primärsicherung: Das integrierte YunoHost-Backup ist die zentrale migrationsfähige Sicherung.
sudo yunohost backup create --system --apps --name migration-backup-$(date +%F)
Standardpfad der erzeugten Archive:
/home/yunohost.backup/archives/
Enthaltene Bestandteile:
  • YunoHost-Systemkonfiguration
  • Domains und TLS-Zertifikate
  • nginx-Konfigurationen
  • MariaDB-Datenbanken
  • Nextcloud, WordPress, SOGo, Netdata und weitere Apps
  • zugehörige App-Daten und Restore-Metadaten

Phase 2: Integritätsprüfung des YunoHost-Backups

sudo yunohost backup list
sudo yunohost backup info migration-backup-$(date +%F)
tar -tf /home/yunohost.backup/archives/migration-backup-$(date +%F).tar | head
PrüfungErwartung
Backup vorhandenName in backup list sichtbar
Statuskeine Fehlermeldung / vollständiger Lauf
Archiv lesbartar -tf liefert Einträge
Größe plausibelabhängig von Nextcloud- und Webdatenbestand
Hinweis: Bei bestehenden Backupnamen immer einen datumsbasierten Namen verwenden, um Konflikte zu vermeiden.

Nextcloud gezielt im Archiv prüfen

tar -tf /home/yunohost.backup/archives/migration-backup-$(date +%F).tar | grep "apps/nextcloud" | head

Allgemeine Archivgröße prüfen

du -h /home/yunohost.backup/archives/*.tar

Phase 3: Zusätzliches System-Backup

Zweitsicherung: Zusätzlich zum YunoHost-Archiv wird ein vollständiges Datei-Archiv wichtiger Serverpfade erstellt.
sudo tar -czf /home/mayadm/server-full-backup-$(date +%F).tar.gz \
/etc \
/home \
/var/www
Diese Ablage im Home-Verzeichnis vereinfacht den späteren Download per SCP.
PfadZweck
/etcSystem- und Dienstkonfigurationen
/homeBenutzerdaten, App-Daten, zusätzliche Dateien
/var/wwwWebroots von Nextcloud, WordPress und weiteren Apps
Hinweis: Die Meldung Removing leading ‘/’ von tar ist normal und kein Fehler.

Phase 4: Download / Offsite-Kopie

Download des YunoHost-Backups

scp mayadm@SERVER-IP:/home/yunohost.backup/archives/migration-backup-YYYY-MM-DD.tar .

Download des System-Archivs

scp mayadm@SERVER-IP:/home/mayadm/server-full-backup-YYYY-MM-DD.tar.gz .

Offsite-Kopie per rsync

rsync -avz /home/yunohost.backup/archives/ user@backupserver:/backup/yunohost/
rsync -avz /home/mayadm/server-full-backup-*.tar.gz user@backupserver:/backup/system/
Mögliche Ziele:
Netcup Storage Box, zweiter Linux-Server, NAS über VPN, Objektstorage über zusätzlichen Sync-Mechanismus.

Phase 5: Automatisiertes Backup

Empfohlen: tägliche vollautomatische Sicherung mit Logging und Offsite-Kopie.
sudo nano /usr/local/bin/yunohost-backup.sh
#!/bin/bash
set -euo pipefail

DATE=$(date +%F)
LOGFILE="/var/log/yunohost-backup.log"
YH_BACKUP="migration-backup-$DATE"
SYS_BACKUP="/home/mayadm/server-full-backup-$DATE.tar.gz"

echo "[$(date '+%F %T')] START backup" >> "$LOGFILE"

yunohost backup create --system --apps --name "$YH_BACKUP" >> "$LOGFILE" 2>&1

tar -czf "$SYS_BACKUP" /etc /home /var/www >> "$LOGFILE" 2>&1

# Optional: Offsite Sync
# rsync -avz /home/yunohost.backup/archives/ user@backupserver:/backup/yunohost/ >> "$LOGFILE" 2>&1
# rsync -avz "$SYS_BACKUP" user@backupserver:/backup/system/ >> "$LOGFILE" 2>&1

echo "[$(date '+%F %T')] END backup" >> "$LOGFILE"

Skript berechtigen

sudo chmod +x /usr/local/bin/yunohost-backup.sh

Cronjob einrichten

sudo crontab -e
0 2 * * * /usr/local/bin/yunohost-backup.sh
Ausführung: Täglich um 02:00 Uhr. Zeitpunkt an Wartungsfenster, IO-Last und Nutzeraktivität anpassen.

Phase 6: Monitoring & Alarmierung

AlertTriggerPriorität
Backup fehlgeschlagenkein neuer Logabschluss / Fehler im SkriptP1
Backup älter als 48hkein aktuelles Archiv vorhandenP1
Archivgröße unplausibelstarker Größenabfall gegenüber VortagP2
Offsite-Sync fehlgeschlagenrsync Exit-Code ≠ 0P1
Disk fast vollSpeicherplatz > 85%P1
sudo tail -n 100 /var/log/yunohost-backup.log
sudo yunohost backup list
du -h /home/yunohost.backup/archives/
df -h
Empfehlung: Netdata oder externes Monitoring auf Backupalter, Logfehler und Archivgröße ausrichten.

Phase 7: Restore-Test

Restore-Simulation auf Testsystem

SchrittAktionZiel
1neuen Debian-12-Testserver bereitstellensaubere Zielplattform
2YunoHost installierenkompatible Basis
3Backup übertragenArchiv lokal verfügbar
4Restore ausführenvollständige Wiederherstellung
5Funktionstests durchführenLogin, Upload, WebDAV, Mails, Webseiten
scp migration-backup-YYYY-MM-DD.tar mayadm@TESTSERVER:/home/yunohost.backup/archives/
sudo yunohost backup restore migration-backup-YYYY-MM-DD --system --apps
sudo yunohost service status
sudo yunohost app list
sudo yunohost app shell nextcloud
php occ status

Phase 8: Migration / Serverwechsel

Standardablauf für einen VPS-Wechsel:
  • aktuelles YunoHost-Backup erstellen
  • zusätzliches System-Archiv erzeugen
  • beide Archive lokal und Offsite sichern
  • neuen Debian-12-Server bereitstellen
  • YunoHost installieren
  • YunoHost-Backup restoren
  • Dienste und DNS validieren
sudo yunohost backup restore migration-backup-YYYY-MM-DD --system --apps
Vor Cutover prüfen: Domains, TLS, nginx, Nextcloud-Login, WordPress-Frontend, SOGo-Erreichbarkeit, Netdata-Funktion und Mailfluss.

Disaster Recovery (DR)

SzenarioRecovery-AnsatzBemerkung
VPS-AusfallRestore auf neuem ServerOffsite-Kopie entscheidend
DatenkorruptionRollback auf sauberes BackupVersion des Archivs wählen
FehlkonfigurationSystem-Archiv prüfen / selektiv wiederherstellenbesonders bei nginx, /etc
Provider-AusfallOffsite-Restore bei anderem Hoster3-2-1-Strategie erforderlich
DR-Grundsatz: Ohne getestete Restore-Kette ist selbst ein vorhandenes Backup kein belastbares Recovery-Konzept.
date
uptime
free -h
df -h
sudo yunohost backup list
sudo yunohost service status

Checklisten

Täglich / vor Changes
  • freier Speicherplatz ausreichend
  • letztes Backup erfolgreich
  • Archivgröße plausibel
  • Offsite-Kopie vorhanden
Monatlich
  • Restore-Test auf Testsystem
  • Backupskript und Cronjob validieren
  • Offsite-Ziel prüfen
  • RTO/RPO mit realem Test abgleichen

Anhang: Logpfade & Quick Commands

KomponentePfade / Commands
YunoHost Backups/home/yunohost.backup/archives/sudo yunohost backup list
System-Archiv/home/mayadm/server-full-backup-*.tar.gz
Backup-Log/var/log/yunohost-backup.log
Nextcloud Checksudo yunohost app shell nextcloudphp occ status
Servicessudo yunohost service status
Speicherplatzdf -hdu -h /home/yunohost.backup/archives/