docs(backup): say 'cloud copy' rather than 'offsite'

Clearer for a reader who does not live in backup jargon; the requirement
(not in the homelab, immutable) is spelled out in the text.
This commit is contained in:
Ryan Yin committed 2026-09-21 20:44:56 +08:00
1 parent 096607a5c5
commit 8a44c23d74
1 file changed
+10 -10
+10 -10
View File
@@ -4,12 +4,12 @@ How this fleet is backed up, where the data lives, and how to restore it.
## What protects against what
| Threat | Defence |
| ----------------------------- | -------------------------------------------------------------------- |
| accidental deletion, bad edit | btrbk: local btrfs snapshots |
| disk or host loss | restic: encrypted copies on youko |
| a compromised backup server | desktop repositories use a password youko never holds |
| a compromised host | not defended yet: the immutable offsite copy (planned) is that layer |
| Threat | Defence |
| ----------------------------- | ------------------------------------------------------------------ |
| accidental deletion, bad edit | btrbk: local btrfs snapshots |
| disk or host loss | restic: encrypted copies on youko |
| a compromised backup server | desktop repositories use a password youko never holds |
| a compromised host | not defended yet: the immutable cloud copy (planned) is that layer |
## Layers
@@ -114,7 +114,7 @@ Restoring a btrbk snapshot (offline; stop writers first):
- btrbk: automatic, 7 days with a 2 day minimum.
- youko's own restic repository: automatic, `--keep-daily 3 --keep-weekly 2 --keep-monthly 2`.
- Desktop restic repositories: automatic, the module defaults
(`--keep-daily 3 --keep-weekly 2 --keep-monthly 2`). Immutability is the offsite copy's job
(`--keep-daily 3 --keep-weekly 2 --keep-monthly 2`). Immutability is the cloud copy's job
(planned), not the local server's.
## Verifying
@@ -134,9 +134,9 @@ Restoring a btrbk snapshot (offline; stop writers first):
- **Restore drill**: actually restore a file from a restic snapshot and from a btrbk snapshot, on a
schedule. An unverified restore is not a backup.
- **Offsite copy**: youko copies the homelab repositories with `restic copy`; desktops copy their
own. Use an immutable or versioned target (object lock) — that is the layer which survives a
compromised host.
- **Cloud copy**: youko copies the homelab repositories with `restic copy`; desktops copy their own.
The target must not live in the homelab, and should be immutable or versioned (object lock) — that
is the layer which survives a compromised host.
- **`restic check` timer**: periodic integrity verification, on the host that holds the password.
- **Metrics**: run rest-server with `--prometheus` and chart repository growth in Grafana.
- **Recovery key for the homelab password**: `restic-password-homelab.age` is encrypted only to the