Verschlüsselte Offsite-Backups mit Borgmatic & BorgBase auf Unraid
Einrichtung, Nutzung und Wiederherstellung verschlüsselter Offsite-Backups mit Borgmatic auf Unraid und einem externen BorgBase-Repository.
Übersicht
Diese Anleitung beschreibt die Einrichtung, Nutzung und Wiederherstellung von verschlüsselten Offsite-Backups mit Borgmatic auf Unraid und einem externen Repository bei BorgBase.
- Backup-System: Borgmatic (Docker auf Unraid)
- Zielsystem: BorgBase Repo (SSH)
- Verschlüsselung: Borg repokey + Passphrase
- Authentifizierung: SSH Key Pair (ed25519)
- Verwaltung & Wiederherstellung: über Unraid oder lokal per WSL/Linux
1. Initiales Setup auf Unraid
1.1. Ordnerstruktur
| Pfad | Zweck |
|---|---|
/mnt/user/appdata/borgmatic/config | Borgmatic-Konfiguration |
/mnt/user/appdata/borgmatic/ssh_keys | SSH-Schlüssel und Key-Backups |
/mnt/user/archive_backup/borg_backup/repo | (Optional) lokales Borg-Repo |
1.2. SSH-Key generieren
mkdir -p /mnt/user/appdata/borgmatic/ssh_keys
chmod 700 /mnt/user/appdata/borgmatic/ssh_keys
ssh-keygen -t ed25519 -N "" -f /mnt/user/appdata/borgmatic/ssh_keys/id_ed25519 -C "borgmatic@unraid"
chmod 600 /mnt/user/appdata/borgmatic/ssh_keys/id_ed25519
chmod 644 /mnt/user/appdata/borgmatic/ssh_keys/id_ed25519.pub1.3. Public Key bei BorgBase hinterlegen
- Auf
https://www.borgbase.comeinloggen - Repository öffnen → Access → SSH Keys
- Inhalt von
id_ed25519.pubeinfügen → Save
2. Borgmatic konfigurieren
2.1. config.yaml
Pfad: /mnt/user/appdata/borgmatic/config/config.yaml
location:
source_directories:
- /mnt/user/appdata_appdata_paperless
repositories:
- 'ssh://[email protected]/./repo'
one_file_system: true
storage:
ssh_command: 'ssh -i /root/.ssh/id_ed25519 -o StrictHostKeyChecking=accept-new'
compression: lz4
archive_name_format: "backup-{now}"
retention:
keep_hourly: 2
keep_daily: 7
keep_weekly: 4
keep_monthly: 12
keep_yearly: 10
consistency:
checks:
- name: repository
frequency: 2 weeks
- name: archives
frequency: always
- name: extract
frequency: 2 weeks
- name: data
frequency: 1 month
hooks:
before_everything:
- echo "Starting a backup job."
after_everything:
- echo "Backup created."
on_error:
- echo "Error while creating a backup." 2.2. Docker-Environment-Variablen
| Variable | Beschreibung | Beispiel |
|---|---|---|
BORG_PASSPHRASE | Passwort für die Verschlüsselung | EinSehrStarkesPasswort123! |
TZ | Zeitzone | Europe/Berlin |
BORG_HEALTHCHECK_URL (optional) | Healthcheck-Ping-URL | https://hc-ping.com/XYZ |
3. Backup starten / testen
Manuell im Container:
docker exec -it borgmatic /bin/sh
borgmatic --verbosity 1 -c /etc/borgmatic.d/config.yamlAutomatisch per Cron (z. B. täglich um 2 Uhr):
docker exec borgmatic borgmatic --verbosity 1 -c /etc/borgmatic.d/config.yamlÜber das Unraid „User Scripts“-Plugin oder den Borgmatic-Schedule.
4. Schlüssel sichern
Nach der Repo-Initialisierung:
docker exec -it borgmatic /bin/sh
borg key export ssh://[email protected]/./repo /root/.ssh/encrypted-key-backup
borg key export --paper ssh://[email protected]/./repo /root/.ssh/encrypted-key-backup.txtDie Dateien findest du auf dem Host:
/mnt/user/appdata/borgmatic/ssh_keys/encrypted-key-backup
/mnt/user/appdata/borgmatic/ssh_keys/encrypted-key-backup.txtDiese unbedingt offline sichern (USB-Stick, Tresor, Passwortmanager).
5. Restore / Download
5.1. Backup auflisten
borg list ssh://[email protected]/./repo5.2. Alles extrahieren
borg extract --target ./export ssh://[email protected]/./repo::backup-2025-10-25T14:52:545.3. Nur bestimmtes Verzeichnis
borg extract --target ./export ssh://[email protected]/./repo::backup-2025-10-25T14:52:54 mnt/user/appdata_paperless5.4. Als .tar.gz exportieren
borg export-tar ssh://[email protected]/./repo::backup-2025-10-25T14:52:54 ./paperless-backup.tar.gz6. Zugriff von anderem System (z. B. WSL/PC)
Voraussetzungen:
borgbackupundopenssh-clientinstalliert- privater SSH-Key (
id_ed25519) aus Unraid unter~/.ssh/ chmod 600 ~/.ssh/id_ed25519
Schritte:
borg key import ssh://[email protected]/./repo encrypted-key-backup
borg list ssh://[email protected]/./repo
borg extract --target ./restore ssh://[email protected]/./repo::backup-2025-10-25T14:52:547. Wartung
| Aufgabe | Intervall | Befehl |
|---|---|---|
| Konsistenzprüfung | monatlich | borgmatic check |
| Schlüssel-Backup | bei Repo-Änderung | borg key export ... |
| Healthcheck | laufend | via Healthcheck-URL |
| Cron-Log prüfen | wöchentlich | Unraid Logs oder /var/log/syslog |
Sicherheit & Absicherung
1. SSH-Keys
- Privater Key (
id_ed25519) niemals öffentlich teilen. - Nur BorgBase und dein Backup-Host dürfen diesen Key verwenden.
- Rechte:
chmod 600 - Backup-Kopie auf verschlüsseltem Medium speichern.
2. Passphrase
- Starkes, eindeutiges Passwort (mind. 16 Zeichen, zufällig generiert).
- Passphrase offline notieren oder in Passwortmanager speichern.
- Ohne Passphrase kein Restore möglich!
3. Offsite-Key-Backups
encrypted-key-backupund.txtoffline sichern.- Nie zusammen mit der Passphrase ablegen.
4. Container-Zugriff
- Docker-Borgmatic nur im Admin-Netz freigeben.
- Keine offenen SSH-Ports zum Container.
5. BorgBase-Zugang
- Zwei-Faktor-Authentifizierung aktivieren.
- Repository auf „append-only“ stellen, wenn keine Löschungen nötig sind. (→ verhindert versehentliches Löschen von Archiven)
6. Restore-Tests
- Regelmäßig Restore-Tests durchführen (z. B. monatlich mit
--dry-run). - Prüfen, ob Daten vollständig und lesbar sind.