P1 · End the public-URL hangs (split-horizon DNS vs LAN endpoints) #6
Labels
No labels
lab-honing
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
adam/foundry#6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Priority: P1 · Size: S · Depends on: none
Goal
Make correct media paths and container UIDs a lookup, not a guess, for any media stack deployed on Unraid.
Why (from the 2026-07-11 session)
DroppedNeedle was deployed with guessed library/download paths and with
PUID=1001copied fromstacks/media/.env. That value is inert for the legacyarr/mediatemplate containers (they actually run as Unraid's default99:100— verified: radarr's config and all its media are99:100) but live for a genuine Dockhand deploy. As UID 1001 the app could not write the99:100media tree, so every import failed with permission-denied until fixed toPUID=99/PGID=100+ achown.Steps
docs/reference/unraid-media-conventions.mdcovering:mediastorelayout:media/{music,movies,tv,audiobooks,books},usenet/{complete,incomplete}.nobody:users=99:100, mode0775.PUID=99 / PGID=100(andchown -R 99:100the appdata after any UID change)./data-mount atomic-import rule: library + downloads must be under ONE bind mount soos.rename()doesn't hitEXDEV. Host→container translation:/mnt/user/mediastore→/data..envfiles (arr,media,ai,data,searchall sayPUID=1001): fix now to99/100, or leave with a warning comment until those stacks are Dockhand-adopted. They are a landmine — the day they become real Dockhand deploys they'll fail exactly like DroppedNeedle did.Acceptance
Doc exists and is linked from CLAUDE.md / relevant skill; the sibling-
.envdecision is made (fixed, or explicitly deferred with an in-file comment).Resources
Skills:
dockhand-api,unraid-debug,homelab-ssh. Memory:project_dockhand_uid_and_clone_gotchas,project_dockhand_adoption_gap.Worked 2026-07-12. Two outcomes:
1. The premise no longer holds. This was filed P1 to kill the Pangolin-SSO hang on public
*.adamayala.workURLs. Measured today — the hang does not reproduce for Forgejo: public git smart-HTTP, browser, and authed-API all return200with no SSO redirect (~0.2s). The June token/auth bypass appears to have been applied. Yesterday's Dockhand clone hang was real but its cause is gone.2. Documentation half shipped in PR #12 —
docs/reference/lan-endpoints.md, a canonical service→address map (LAN / container-to-container / public), wired into CLAUDE.md + skills README. Rationale reframed to what's still true: LAN is faster + tunnel-independent, not "public is broken."Remaining (downgraded P1 → P3, optional): split-horizon DNS. No DNS resolver runs on Unraid today; standing up AdGuard/Pi-hole for one unified name is a real session for a now-marginal gain. Leaving this issue open to track only that deferred DNS upgrade.