Skip to content

Commit

Permalink
fix 2023-12-30-restic.md
Browse files Browse the repository at this point in the history
  • Loading branch information
isotopp committed Dec 31, 2023
1 parent f58d91a commit 439f705
Showing 1 changed file with 50 additions and 4 deletions.
54 changes: 50 additions & 4 deletions content/posts/2023-12-30-restic.md
Original file line number Diff line number Diff line change
Expand Up @@ -510,15 +510,61 @@ Match User restucuser

Eine modifizierte Version von `run-restic` von oben sollte nun Daten in diesen Speicher schieben können.

# `restic-server`
# `rest-server`

(via Matthias Gumz)

[`restic-server`](https://github.com/restic/rest-server) ist ein Unterprojekt von `restic`,
[`rest-server`](https://github.com/restic/rest-server) ist ein Unterprojekt von `restic`,
das ein Server-Backend für das REST-Protokoll von `restic` implementiert.
Es hat einen `--append-only` Modus, mit dem man Backups aus unsicheren Quellen annehmen kann,
ohne daß die Backup-Quelle das Backup zerstören oder löschen kann.
Natürlich muß `prune` dann lokal auf dem Server getriggert werden und nicht durch den Backup-Prozess.
Natürlich müssen `forget` und `prune` dann lokal auf dem Server getriggert werden und nicht durch den Backup-Prozess.

Das Projekt kommt mit einer umfangreichen Installationsanleitung und mit offiziellen Docker-Images,
sodaß das Aufsetzen eines Server mit wenigen Handgriffen getan ist.
sodass das Aufsetzen eines Servers mit wenigen Handgriffen getan ist.

Der Aufruf sieht im Wesentlichen so aus:

```bash
$ lvcreate -L 100G -n testing hdd
$ mkfs -t xfs /dev/hdd/testing
$ mkdir /backup/testing
$ mount /dev/hdd/testing /backup/testing
$ cd /backup/testing
$ htpasswd -B -c .htpasswd kris
Password: keks
$ cp /etc/apache2/md/domains/{privkey,pubcert}.pem .
$ rest-server \
--append-only \
--tls \
--tls-cert pubcert.pem \
--tls-key privkey.pem \
--path /backup/testing/ \
--max-size 107374182400 \
--listen '192.168.1.10:8000'
```

*Testweises Starten von `rest-server` mit lokalen Kopien der bei "Let's Encrypt" generierten Zertifikate und ein Test-Repository.*

Der Beispielaufruf startet den `rest-server` auf Port 8000 der Testmaschine.
Er verwendet Kopien der von "mod_md" generierten "Let's Encrypt"-Zertifikate aus `/etc/apache/md/domains`,
und greift auf ein "append-only"-Repository in `/backup/testing` zu.
Die Größe des Repository ist auf 100 GB (100 * 1024^3 Bytes) limitiert.

Wir können das Repository unter dem Namen `rest:https://home.example.com:8000` ansprechen.
Also

```bash
$ export RESTIC_REPOSITORY=rest:https://home.example.com:8000
$ export RESTIC_PASSWORD=keks
$ restic init
...
$ restic backup --exclude-caches /etc
```

zum Sichern ein paar mal laufen lassen und dann `restic snapshots` zum Ansehen der Backups.

Löschen von Backups mit `forget` und `prune` ist durch den Client nicht mehr machbar.

Stattdessen kann man das Backup lokal als `-r /backup/testing` ansprechen und per Cron
das entsprechende `forget --prune --keep...`-Regel laufen lassen.

0 comments on commit 439f705

Please sign in to comment.