diff options
| author | Karan Jayachandra <mail@karanjayachandra.com> | 2026-07-31 22:31:53 +0200 |
|---|---|---|
| committer | Karan Jayachandra <mail@karanjayachandra.com> | 2026-07-31 22:31:53 +0200 |
| commit | 615cdc91369574b814a3d987f18ffebfbac2cbf4 (patch) | |
| tree | 5af3d0be99150dc245c48b5002103b567b8f634b | |
| parent | b915129dcf6c0043df3c629fe938986da661340f (diff) | |
Added the backups paths to the README
| -rw-r--r-- | README.md | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -345,3 +345,28 @@ All other ports are closed at the firewall. App-level ports (5006, 5230, 8080, 8 127.0.0.1 and never exposed directly. AdGuard's web UI (3000) binds all interfaces (required so its DoH/DoT listener - which shares the same bind host - reaches the public interface), but stays unreachable externally because the firewall never opens port 3000. + +--- + +## Backup Notes + +This server relies on Hetzner's rolling Cloud Backups (whole-disk snapshots) for disaster +recovery. Two things are *not* at risk from server loss regardless of that: the OS and every +service's configuration are fully reconstructable from this repo via `nixos-anywhere` + +`nixos-rebuild`, and the repo itself (including encrypted secrets in `secrets/secrets.yaml`) is +already mirrored off-server at `git@gitlab.com:KaranJayachandra/feynman.git`. + +What Hetzner's snapshots don't give you is selective or offsite recovery of runtime-generated +application data - restoring means restoring the whole disk, and the backups live in the same +Hetzner account as the server. If you ever add an independent (offsite) backup job, these are +the paths that actually matter, per service: + +- **Miniflux** - `/var/lib/postgresql/` (the module's default `services.postgresql` + integration). It's a live database, not a flat file - snapshot it with `pg_dump`, not a raw + file copy. +- **Actual Budget** - `/var/lib/actual`. +- **cgit** - `/srv/git` (the bare repos). +- **Memos** - `/var/lib/memos` (sqlite database). +- **AdGuard Home** - `/var/lib/AdGuardHome`, low priority: `mutableSettings = false` means the + config is fully regenerated from this repo on every service start, so nothing there is + irreplaceable except transient query logs/stats. |
