feat(media): declarative stacks/Media *arr shapes, NFS-hardened (#105) - #112
Closed
ChrisonSimtian wants to merge 1 commit into
Closed
feat(media): declarative stacks/Media *arr shapes, NFS-hardened (#105)#112ChrisonSimtian wants to merge 1 commit into
ChrisonSimtian wants to merge 1 commit into
Conversation
Author the *arr media stack as homelab/v1 shapes — a fresh 5100 CTID block on hpe-01 (co-located with Plex), built in parallel with the live 5000s CTs for later cutover. - stacks/Media/stack.yaml — CTID 5100–5199 + shared defaults (debian 13, vlan 1010, hpe-01). - 7 members: prowlarr(5100), sonarr(5101), radarr(5102), bazarr(5103), qbittorrent(5104), seerr(5105), flaresolverr(5107); dependsOn ordering, acyclic. 5106 reserved. - Load-bearing constraint: the 4 file-touching members bind the SAME volume4 export at /data (TRaSH hardlinks) via BL-016's shared-export path-bind + a pre-start hookscript guard (snippets/ensure-data-mount.sh) that refuses start unless the NAS is mounted — designs out the CT 5007 rootfs-fill race. prowlarr/seerr/flaresolverr get no /data. - app-catalogue.yaml: 7 new slugs (create-only; no converge provisioners). - docs/runbooks/volume4-data-export.md — the volume4 prerequisite (Synology export w/ squash+setgid+ACL ownership, Proxmox storage) and the manual mount/hookscript apply steps. - .gitattributes: *.sh eol=lf so the hookscript survives a Windows checkout. All shapes schema-valid (jsonschema draft 2020-12); ctids in range, deps resolve, graph acyclic. NOT done: volume4 isn't wired yet (runbook covers it); converge doesn't apply mounts/hookscript yet (engine gap, documented — manual until a mount-apply increment lands); live deploy/cutover deferred to the MacBook. Refs #105. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
Superseded by #139 and the broader Media-stack rebuild (ADR-0006). Closing — but keeping the spirit alive; the good parts are carried forward, nothing lost:
What the consolidated stack adds on top: the cloudflared connector + flat |
ChrisonSimtian
added a commit
that referenced
this pull request
Jun 20, 2026
…pt + runbook (#4) Brings the 7 *arr shapes (prowlarr/sonarr/radarr/bazarr/qbittorrent/seerr/flaresolverr, CTID 5100-5107) + the ensure-data-mount.sh pre-start hookscript + the volume4 runbook + .gitattributes salvaged from the superseded #112 into the consolidated Media stack, joining this branch's cloudflared connector + ADR-0006 + nas-watchdog. stack.yaml/catalogue already matched, so this is purely the net-new members. Reconciled with our decisions: README marks shapes ✅ + documents the layered NAS-safety wiring (immutable underlying + hookscript + watchdog, per the 2026-06-20 spike) and that auth is deferred to stage 2; the runbook notes the volume4 export is now SynoSharp-automated (PR #9) and flags the export-ACL vs host-subnet mismatch for task #1. Closes the salvage from #112. Refs #105. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Authors the *arr media stack as declarative
homelab/v1shapes (issue #105) — a fresh 5100 CTID block on hpe-01 (co-located with Plex), built in parallel with the live hand-built 5000s CTs for later cutover. Author-only this round — no live deploy (deferred to the MacBook).What's here
stacks/Media/stack.yaml— CTID block 5100–5199 + shared defaults (debian 13, VLAN 1010, hpe-01, onboot).dependsOnordering, acyclic; 5106 reserved (future 2nd torrent client)./data(TRaSH hardlinks) via BL-016's shared-export path-bind (type: nfs+storage+source: data, nosize) plus a pre-start hookscript (snippets/ensure-data-mount.sh) that refuses to start unless the NAS is mounted — designs out the CT 5007 rootfs-fill race. prowlarr/seerr/flaresolverr get no/data.app-catalogue.yaml— 7 new slugs (create-only; no converge provisioners —DefaultProvisionerhandles them).docs/runbooks/volume4-data-export.md— the volume4 prerequisite (Synology export with squash + setgid + default ACLs for the no-PUID/PGID *arr apps, Proxmox storage) and the manual mount/hookscript apply steps..gitattributes—*.sh eol=lfso the hookscript survives a Windows checkout (the repo had no gitattributes; one existing.shwas already CRLF in-index).Validation
All 8 shapes pass JSON Schema (draft 2020-12) against
shape.schema.json; a loader-rules check confirms ctids in range,dependsOntargets resolve, and the graph is acyclic. (Enginevalidate/build not runnable on this box — noGITHUB_PACKAGES_PAT.)Deliberately NOT done
mounts/hookscriptyet (engine gap).--applycreates the CT + reconciles cores/memory/tags (Converge: destroy + update lifecycle + richer state diff #101) but not mounts — documented in the stack README; manual until a converge mount-apply increment lands (good candidate for the next issue).Refs #105.
🤖 Generated with Claude Code