Zum Inhalt springen
>_<
AI EngineeringWiki

Backup Strategie für Homelab

Security · 5 min

Backup und Disaster Recovery
Backup und Disaster Recovery
📋 Auf einen Blick

3-2-1 Regel: 3 Kopien, 2 verschiedene Medien, 1 Offsite. Docker Volumes täglich sichern, Configs bei Änderung. Restic für verschlüsselte Backups, Rclone für Cloud-Sync. Restore testen — ein Backup das du nicht wiederherstellen kannst ist keins.

3-2-1 Backup Regel
Die 3-2-1 Backup-Regel: 3 Kopien, 2 Medien, 1 Offsite

Backups sind langweilig bis du sie brauchst. Dann sind sie lebensrettend. Hier ist unsere Strategie.

Diagramm wird geladen...

3-2-1 Regel

  • 3 Kopien deiner Daten
  • 2 verschiedene Medien (SSD, NAS, Cloud)
  • 1 Kopie offsite (außer Haus)

Was sichern?

DatenPrioritätHäufigkeit
Docker VolumesHochTäglich
ConfigsHochBei Änderung
Git ReposHochAuto (GitHub)
Media/DownloadsNiedrigWöchentlich

Backup Tools

  • Restic - Einfach, verschlüsselt, dedup
  • Rclone - Cloud-Sync
  • Duplicati - Web-UI
  • Proxmox Backup - Wenn PVE genutzt

Beispiel: Restic

# Restic installieren
sudo apt install restic
# oder
pip install restic

# Repository initialisieren
restic -r /mnt/backup init

# Oder mit Password
restic -r /mnt/backup -p $RESTIC_PASSWORD backup /home/data

# Backup erstellen
restic -r /mnt/backup -p $RESTIC_PASSWORD backup /home/data

# Backup planen (cron)
0 2 * * * RESTIC_PASSWORD=meinpass restic -r /mnt/backup backup /home/data

# Aufräumen (nur 7 Tage behalten)
restic forget --keep-daily 7 --prune

# Test-Restore
restic restore latest --target /tmp/restore

# Snapshots anzeigen
restic snapshots

Rclone für Cloud-Backup

# Rclone konfigurieren
rclone config

# Zu Cloud backupen
rclone copy /local/data remote:backup -P

# Oder mit crypt (verschlüsselt)
rclone copy /local/data crypt-remote:backup -P

# Backup Script
#!/bin/bash
# backup.sh
rclone sync /data remote:backup   --exclude "*.tmp"   --exclude ".git/**"   --progress   --transfers 4

Docker Volume Backup

# Volume sichern
docker run --rm   -v postgres_data:/data   -v $(pwd):/backup   alpine   tar czf /backup/postgres-backup.tar.gz -C /data .

# Volume restore
docker run --rm   -v postgres_data:/data   -v $(pwd):/backup   alpine   tar xzf /backup/postgres-backup.tar.gz -C /data

# Automatisch mit cron
# 0 3 * * * /opt/scripts/docker-backup.sh

Wichtige Regeln

  1. Backups testen — nicht lesen dürfen ist nutzlos
  2. Automatisch laufen lassen
  3. Offsite — mindestens eine Kopie woanders
  4. Versionieren — können Änderungen rückgängig machen

Unser Setup

# Unser Backup Stack:
# 1. Lokal: Restic auf NAS (täglich)
# 2. Cloud: Rclone zu Backblaze B2 (wöchentlich)
# 3. Git: Alle Configs in Git (auto)

# /opt/backup.sh
#!/bin/bash
set -e

export RESTIC_PASSWORD="xxx"
BACKUP_DIR="/mnt/nas/backup"

# Docker Volumes
docker run --rm   -v postgres_data:/data   -v $BACKUP_DIR:/backup   alpine tar czf $BACKUP_DIR/postgres-$(date +%Y%m%d).tar.gz -C /data .

# Configs
restic -r $BACKUP_DIR/configs backup /opt/configs

# Cleanup (alte backups)
restic forget --keep-daily 7 --keep-weekly 4 --prune

# Cloud Sync
rclone sync $BACKUP_DIR remote:homelab-backup --transfers 2
⚠️ Restore testen

Ein Backup ohne regelmäßigen Restore-Test ist wertlos. Teste mindestens monatlich, ob du aus deinen Backups wiederherstellen kannst. Am besten automatisiert per Cron.

Checkliste

  • [ ] Backup-Skript vorhanden?
  • [ ] Automatisch (cron)?
  • [ ] Test-Restore funktioniert?
  • [ ] Offsite-Kopie existiert?

Quellen

Verwandte Artikel

War dieser Artikel hilfreich?

Weiter im Lernpfad

Der Lernpfad bringt diese Artikel in eine Reihenfolge, und der Hub führt die Bausteine, die wir im eigenen Betrieb geprüft haben.

Warum AI Engineering
  • Lokal und selbst gehostet
  • Dokumentiert und prüfbar
  • Aus eigenem Betrieb
  • Made in Austria
Kein Ersatz für Rechtsberatung.