My unified nix flake for all configuration management.
- Nix 82.4%
- Shell 8.3%
- Python 3.5%
- TypeScript 2.9%
- CSS 1.7%
- Other 1.1%
battleship rpool (222G SSD, backing the guest zvols) hit 100% and paused the guest on 2026-07-21. Audit of the guest 30.6G /persist showed the pressure is NOT data worth keeping on SSD: var/cache/restic-backups-* 15.0G systemd CacheDirectory, rebuildable root/.cache 5.1G cache var/lib/jellyfin 3.8G regenerable metadata/artwork var/log 1.7G journal + caddy forgejo (repos+db+indexers) 1.3G <- the actually-hot set Move the restic caches and jellyfin metadata (~19G) to /storage, which is virtiofs onto zstorage (2.4T free). They still survive reboots -- the original comment persisted the restic caches deliberately so post-reboot runs do not re-fetch indexes from the remote sftp repos, and that property is preserved. forgejo deliberately STAYS on the SSD: virtiofs is ~430x slower for git (see forgejo.nix) and PR #756 fixed 2-7s repo pages precisely by getting git off it. Moving /persist wholesale to zstorage would have re-broken that while leaving the caches on SSD -- exactly backwards. Implemented as explicit fileSystems binds with depends = [ "/storage" ] rather than a second environment.persistence root: impermanence emits its bind units with DefaultDependencies=false and NO ordering against /storage, so they could bind before the virtiofs mount exists and services would silently write to the EPHEMERAL root and lose data at the next reboot. Verified the generated fstab carries x-systemd.requires-mounts-for=/storage on all four binds. Deferred deliberately: /root/.cache (5.1G) nests inside the wholesale-persisted /root, and /var/log (1.7G) is better handled by capping journald SystemMaxUse. NOT A PLAIN DEPLOY -- the data must be migrated first, see the PR body. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015dwmWkDcFN7CnZ5TmLK9nY |
||
|---|---|---|
| .forgejo/workflows | ||
| .helix | ||
| dotfiles | ||
| issues | ||
| lib | ||
| packages | ||
| prototypes/beefcake-impermanence | ||
| secrets | ||
| .envrc | ||
| .gitignore | ||
| .sops.yaml | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| flake.lock | ||
| flake.nix | ||
| In-Memory | ||
| readme.md | ||
| run-claude-sandbox.sh | ||