> ## Content Index
> Fetch the complete content index at: https://blog.woerner-it.eu/llms.txt
> Use this file to discover other available public pages before exploring further.

# Verschlüsselte Offsite-Backups mit Borgmatic & BorgBase auf Unraid
- URL: https://blog.woerner-it.eu/borgmatic-borgbase-backup-restore-3/
- Published: 2026-07-16T19:38:06.000Z
- Updated: 2026-07-16T19:38:06.000Z
- Description: Einrichtung, Nutzung und Wiederherstellung verschlüsselter Offsite-Backups mit Borgmatic auf Unraid und einem externen BorgBase-Repository.
- Author: Jonas Wörner
- Tags: Selfhosting, Backup, Unraid, Docker

## Ü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

```bash
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.pub
```

### 1.3\. Public Key bei BorgBase hinterlegen

- Auf `https://www.borgbase.com` einloggen
- Repository öffnen → **Access** → **SSH Keys**
- Inhalt von `id_ed25519.pub` einfügen → **Save**

---

## 2\. Borgmatic konfigurieren

### 2.1\. config.yaml

Pfad: `/mnt/user/appdata/borgmatic/config/config.yaml`

```yaml
location:
  source_directories:
    - /mnt/user/appdata_appdata_paperless
  repositories:
    - 'ssh://USER@USER.repo.borgbase.com/./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:**

```bash
docker exec -it borgmatic /bin/sh
borgmatic --verbosity 1 -c /etc/borgmatic.d/config.yaml
```

**Automatisch per Cron (z. B. täglich um 2 Uhr):**

```bash
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:

```bash
docker exec -it borgmatic /bin/sh
borg key export ssh://USER@USER.repo.borgbase.com/./repo /root/.ssh/encrypted-key-backup
borg key export --paper ssh://USER@USER.repo.borgbase.com/./repo /root/.ssh/encrypted-key-backup.txt
```

Die Dateien findest du auf dem Host:

```
/mnt/user/appdata/borgmatic/ssh_keys/encrypted-key-backup
/mnt/user/appdata/borgmatic/ssh_keys/encrypted-key-backup.txt
```

Diese **unbedingt offline sichern** (USB-Stick, Tresor, Passwortmanager).

---

## 5\. Restore / Download

### 5.1\. Backup auflisten

```bash
borg list ssh://USER@USER.repo.borgbase.com/./repo
```

### 5.2\. Alles extrahieren

```bash
borg extract --target ./export ssh://USER@USER.repo.borgbase.com/./repo::backup-2025-10-25T14:52:54
```

### 5.3\. Nur bestimmtes Verzeichnis

```bash
borg extract --target ./export ssh://USER@USER.repo.borgbase.com/./repo::backup-2025-10-25T14:52:54 mnt/user/appdata_paperless
```

### 5.4\. Als .tar.gz exportieren

```bash
borg export-tar ssh://USER@USER.repo.borgbase.com/./repo::backup-2025-10-25T14:52:54 ./paperless-backup.tar.gz
```

---

## 6\. Zugriff von anderem System (z. B. WSL/PC)

**Voraussetzungen:**

- `borgbackup` und `openssh-client` installiert
- privater SSH-Key (`id_ed25519`) aus Unraid unter `~/.ssh/`
- `chmod 600 ~/.ssh/id_ed25519`

**Schritte:**

```bash
borg key import ssh://USER@USER.repo.borgbase.com/./repo encrypted-key-backup
borg list ssh://USER@USER.repo.borgbase.com/./repo
borg extract --target ./restore ssh://USER@USER.repo.borgbase.com/./repo::backup-2025-10-25T14:52:54
```

---

## 7\. 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-backup` und `.txt` offline 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.