Commit Graph
19 Commits
Author SHA1 Message Date
Richie ae18feb0fd feat(zfs): manage jeeves datasets declaratively from nix
treefmt / nix fmt (pull_request) Successful in 6s
pytest / pytest (pull_request) Successful in 37s
build_systems / build-brain (pull_request) Successful in 57s
test ebook search / test-ebook-search (pull_request) Successful in 44s
build_systems / build-bob (pull_request) Successful in 58s
build_systems / build-rhapsody-in-green (pull_request) Successful in 1m11s
build_systems / build-jeeves (pull_request) Successful in 3m1s
Add a zfs_manager module that reconciles the live datasets on jeeves
against a nix declaration, and generate the snapshot retention config
from that same declaration so the two can no longer drift apart.

systems/jeeves/datasets.nix declares every dataset on the media, storage
and scratch pools, nested the way zfs nests them and flattened into
pool/parent/child names. Values were transcribed from the live pools
rather than from scripts/zfs.sh, which had gone stale: acltype reads back
as posix, and media/secure/important, scratch/kestra and storage/nomad
were never recorded. root_pool datasets are declared for retention only,
their properties stay unmanaged for now.

python.tools.zfs_manager creates missing datasets and corrects drifted
properties, and never destroys anything. Undeclared properties are judged
by the zfs source field, so inherited and default values stay quiet while
locally set ones warn. Size values are normalised to bytes so that 16K and
16384 do not re-issue zfs set on every run.

vars.nix now derives its paths from the declared mountpoints instead of
repeating them, dropping three zfs_* keys that nothing referenced.

Replaces systems/jeeves/snapshot_config.toml, which listed a dataset that
does not exist and omitted thirteen that do.
2026-07-27 23:26:44 -04:00
Richie 8c3de690c9 feat(ebook-search): set up uv cache management and pruning service
treefmt / nix fmt (pull_request) Successful in 5s
pytest / pytest (pull_request) Successful in 27s
test ebook search / test-ebook-search (pull_request) Successful in 34s
build_systems / build-brain (pull_request) Successful in 48s
build_systems / build-bob (pull_request) Successful in 50s
build_systems / build-rhapsody-in-green (pull_request) Successful in 1m3s
build_systems / build-jeeves (pull_request) Successful in 2m14s
treefmt / nix fmt (push) Successful in 4s
test ebook search / test-ebook-search (push) Successful in 27s
pytest / pytest (push) Successful in 30s
build_systems / build-brain (push) Successful in 34s
build_systems / build-bob (push) Successful in 37s
build_systems / build-jeeves (push) Successful in 2m9s
build_systems / build-rhapsody-in-green (push) Successful in 48s
2026-07-12 17:26:55 -04:00
Richie 93fc700fa2 removed preStart step 2026-03-30 14:07:08 -04:00
Richie dda318753b improving postgres wal 2026-03-30 14:07:08 -04:00
Richie 4cb4bd6f3d removing qbit 2025-12-26 18:48:11 -05:00
Richie 529b03525b added kafka and ollama data sets 2025-08-23 10:43:56 -04:00
Richie 7dbf67a2d3 updated then vars names 2025-04-05 14:16:41 -04:00
Richie 4694d75a62 added scratch pool 2025-04-05 14:16:41 -04:00
Richie fa3f14785c removed torrenting pool 2025-04-05 14:16:41 -04:00
Richie 1d0d46d22d adding transmission 2025-03-07 20:57:43 -05:00
Richie 300aa1f032 ran nix fmt . 2025-02-08 18:13:31 -05:00
Richie 7995d383ca added jellyfin.nix 2025-01-18 17:07:00 -05:00
Richie 0f788a1901 added share container 2025-01-07 22:48:50 -05:00
Richie 1e46071754 moved home_assistant dir 2024-12-03 10:37:22 -05:00
Richie ac7bc3ee1b testing audiobookshelf 2024-10-14 18:33:02 -04:00
Richie ee72ea2cee created storage/secrets 2024-10-10 21:55:49 -04:00
Richie 16b68b5ad3 adding photoprism 2024-10-03 20:22:41 -04:00
Richie c749bf3f12 updated vars 2024-09-29 09:48:17 -04:00
Richie 1dff87b044 adding jeeves 2024-09-13 20:58:40 -04:00