turns out nothing was backing up (and a downsize) #71

Merged
sarahlament merged 10 commits from tweak into main 2026-07-08 16:29:06 -05:00
Owner
  • borg was silently dead on two hosts, fixed both
    • athena: a knotc zone-dump preHook aborted every run - knotc isn't on the job $PATH, and zone-dump isn't even a real subcommand. dropped the hook, /var/lib/knot lmdb is crash-consistent so the flush bought nothing
    • minerva: never ran once - hetzner sub3's host key was never trusted, and /root/.ssh/known_hosts is tmpfs on an impermanent box so a manual accept wouldn't survive a reboot anyway
      • declared the storage-box key in programs.ssh.knownHosts, derived from constants.borg - survives the wipe, unblocks minerva, hardens athena/ishtar for reinstalls
    • both verified now (vmail/dkim/knot on athena, vaultwarden/forgejo/gollum on minerva); zero failure alerting anywhere -> follow-up
  • prepped athena for an impermanent reinstall on a downsized nanode
    • diskoConfigurations/athena.nix: gpt + 1M bios_grub + ext4 /boot + btrfs @nix/@persist/@log + tmpfs /. MBR would've dropped the bios_grub part but disko deprecated the legacy table type; ext4 /boot keeps GRUB off btrfs
    • athena.roles.impermanent = true
    • persist dirs w/ explicit ownership (a plain string dir lands root:root and locks the service out): vmail (storage.owner/group), dkim (rspamd), /var/lib/knot (knot, the KASP keys or DNSSEC goes bogus on reboot)
    • linodeBase: dropped grub.device - disko's bios_grub already sets grub.devices, having both dup'd the disk in mirroredBoots
  • cleanup:
    • /persist neededForBoot -> impermanence.nix (identical for every impermanent host), out of athena + minerva host configs
    • acme rides in via mailserver's imports (its only consumer) instead of athena's activeModules
    • journald SystemMaxUse=500M fleetwide - athena's had ballooned to 3.9G
  • left for later: the reinstall itself - linode Direct Disk -> delete/resize/new disk -> nixos-anywhere .#athena -> seed /persist (age key + borg extract) -> verify dnssec/mail/hub
- borg was silently dead on two hosts, fixed both - `athena`: a `knotc zone-dump` `preHook` aborted every run - `knotc` isn't on the job `$PATH`, and `zone-dump` isn't even a real subcommand. dropped the hook, `/var/lib/knot` lmdb is crash-consistent so the flush bought nothing - `minerva`: never ran once - hetzner `sub3`'s host key was never trusted, and `/root/.ssh/known_hosts` is tmpfs on an impermanent box so a manual accept wouldn't survive a reboot anyway - declared the storage-box key in `programs.ssh.knownHosts`, derived from `constants.borg` - survives the wipe, unblocks minerva, hardens athena/ishtar for reinstalls - both verified now (`vmail`/`dkim`/`knot` on athena, `vaultwarden`/`forgejo`/`gollum` on minerva); zero failure alerting anywhere -> follow-up - prepped `athena` for an impermanent reinstall on a downsized nanode - `diskoConfigurations/athena.nix`: gpt + 1M `bios_grub` + ext4 `/boot` + btrfs `@nix`/`@persist`/`@log` + tmpfs `/`. MBR would've dropped the `bios_grub` part but disko deprecated the legacy `table` type; ext4 `/boot` keeps GRUB off btrfs - `athena.roles.impermanent = true` - persist dirs w/ explicit ownership (a plain string dir lands `root:root` and locks the service out): `vmail` (`storage.owner`/`group`), `dkim` (`rspamd`), `/var/lib/knot` (`knot`, the KASP keys or DNSSEC goes bogus on reboot) - `linodeBase`: dropped `grub.device` - disko's `bios_grub` already sets `grub.devices`, having both dup'd the disk in `mirroredBoots` - cleanup: - `/persist` `neededForBoot` -> `impermanence.nix` (identical for every impermanent host), out of athena + minerva host configs - `acme` rides in via `mailserver`'s `imports` (its only consumer) instead of athena's `activeModules` - `journald` `SystemMaxUse=500M` fleetwide - athena's had ballooned to `3.9G` - left for later: the reinstall itself - linode `Direct Disk` -> delete/resize/new disk -> `nixos-anywhere .#athena` -> seed `/persist` (age key + `borg extract`) -> verify dnssec/mail/hub
impermanence on athena
All checks were successful
CI / check (pull_request) Successful in 40s
CI / deploy (athena) (pull_request) Has been skipped
CI / deploy (ishtar) (pull_request) Has been skipped
CI / deploy (minerva) (pull_request) Has been skipped
CI / build (athena) (pull_request) Successful in 19s
CI / build (ishtar) (pull_request) Successful in 40s
CI / build (minerva) (pull_request) Successful in 14s
CI / dry-activate (athena) (pull_request) Successful in 9s
CI / dry-activate (ishtar) (pull_request) Successful in 14s
CI / dry-activate (minerva) (pull_request) Successful in 9s
cb0be9b1ed
sarahlament changed title from turns out nothing was backing up to turns out nothing was backing up (and a downsize) 2026-07-08 13:14:12 -05:00
acme persistence
All checks were successful
CI / check (pull_request) Successful in 34s
CI / deploy (athena) (pull_request) Has been skipped
CI / deploy (ishtar) (pull_request) Has been skipped
CI / deploy (minerva) (pull_request) Has been skipped
CI / build (athena) (pull_request) Successful in 15s
CI / build (ishtar) (pull_request) Successful in 36s
CI / build (minerva) (pull_request) Successful in 13s
CI / dry-activate (athena) (pull_request) Successful in 10s
CI / dry-activate (ishtar) (pull_request) Successful in 9s
CI / dry-activate (minerva) (pull_request) Successful in 45s
cc0ed4a68f
LE and HE and ACME race
All checks were successful
CI / check (pull_request) Successful in 33s
CI / deploy (athena) (pull_request) Has been skipped
CI / deploy (ishtar) (pull_request) Has been skipped
CI / deploy (minerva) (pull_request) Has been skipped
CI / build (athena) (pull_request) Successful in 10s
CI / build (ishtar) (pull_request) Successful in 37s
CI / build (minerva) (pull_request) Successful in 13s
CI / dry-activate (athena) (pull_request) Successful in 5s
CI / dry-activate (ishtar) (pull_request) Successful in 5s
CI / dry-activate (minerva) (pull_request) Successful in 9s
c3b4ec359c
TLSA changed
All checks were successful
CI / check (pull_request) Successful in 32s
CI / deploy (athena) (pull_request) Has been skipped
CI / deploy (ishtar) (pull_request) Has been skipped
CI / deploy (minerva) (pull_request) Has been skipped
CI / build (athena) (pull_request) Successful in 14s
CI / build (ishtar) (pull_request) Successful in 35s
CI / build (minerva) (pull_request) Successful in 16s
CI / dry-activate (athena) (pull_request) Successful in 5s
CI / dry-activate (ishtar) (pull_request) Successful in 5s
CI / dry-activate (minerva) (pull_request) Successful in 16s
aa6ad8aaac
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
sarahlament/nix-configurations!71
No description provided.