btrfs-backups/README.md

39 lines
1000 B
Markdown

# `btrfs` Backup Solution
Encrypted incremental backups utilizing
[`btrfs send`](https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-send)
and [`age`](https://age-encryption.org/).
## Setup
At `/media/storage/backup`, we have:
```
backup/
data/ [a btrfs **subvolume** containing the data]
...
snapshots/ [btrfs snapshots of the 'data' subvolume]
repo/ [where encrypted backup files will go]
[an age-encryption v1 key for the at-rest passphrase]
static-passphrase-key
static-passphrase-key.pub
[the contents of this repo:]
backup.sh
create-passphrase-file.sh
```
You can generate the `static-passphrase-key` and `static-passphrase-key.pub` with
`rage-keygen -o static-passphrase-key` and by manually populating the pubkey file.
## Requirements
**Note:** Make sure that `data` is actually a btrfs subvolume!!
- `btrfs`
- `bash`
- `zstd`
- [`rage`](https://github.com/str4d/rage)
- [`simple-age-encryptor`](https://git.lavender.software/charlotte/simple-age-encryptor)