(HUMAN ONLY) Where do finished podcast episodes live? #7

Open
opened 2026-10-18 15:46:47 -07:00 by dank · 0 comments
Owner

Decision needed (owner only)

Where do finished open-notebook podcast episodes live once they render?

⚠️ (HUMAN ONLY) — note to future peers/agents: DO NOT WORK THIS ISSUE. The owner decides
the destination; do not implement, do not "helpfully" pick a location, do not open a PR for it.
Interim behaviour is already in force (below), so nothing is blocked by leaving this open.

Context

open-notebook writes each episode inside its own volume:
/app/data/podcasts/episodes/<UUID>/audio/<UUID>.mp3, also served by
GET /api/podcasts/episodes/<ID>/audio. That is container state, not a library — a container
recreate keeps it only as long as the named volume survives, and nothing indexes it for
playback elsewhere on the fleet.

The options on the table

  1. Stay inside the container volume — pull episodes over the API when wanted. No new paths,
    no extra mounts; episode lifetime is tied to the volume.
  2. Host directory on Dankclaw (interim choice, already chosen by me pending this decision) —
    the volume is bind-mounted to a host path so episodes are ordinary files: greppable,
    backed-up-able, removable without touching the container.
  3. Copy into the Dankserver media tree so Jellyfin indexes them and they play on the TV.
    Needs a cross-host copy step, a library path decision, and an owner for the sync.
  4. Workstation-only — scp to the workstation, delete on the server. Smallest server surface,
    no sharing.

What the decision changes

  • Whether the open-notebook quadlet gets an extra Volumep/bind mount (option 2).
  • Whether a deploy step or a small sync unit exists at all (option 3).
  • Backup scope: postgres-less, but the volume is already inside the container's data set; a
    host path would need adding to whatever backs up Dankclaw.

Interim in force until the owner decides

Option 2 with the path I picked; it is the only choice that is trivially reversible to 1, 3 or 4
later — a mount line and a directory, no migration of any kind.

## Decision needed (owner only) Where do finished **open-notebook podcast episodes** live once they render? ⚠️ **(HUMAN ONLY) — note to future peers/agents: DO NOT WORK THIS ISSUE.** The owner decides the destination; do not implement, do not "helpfully" pick a location, do not open a PR for it. Interim behaviour is already in force (below), so nothing is blocked by leaving this open. ## Context `open-notebook` writes each episode inside its own volume: `/app/data/podcasts/episodes/<UUID>/audio/<UUID>.mp3`, also served by `GET /api/podcasts/episodes/<ID>/audio`. That is container state, not a library — a container recreate keeps it only as long as the named volume survives, and nothing indexes it for playback elsewhere on the fleet. ## The options on the table 1. **Stay inside the container volume** — pull episodes over the API when wanted. No new paths, no extra mounts; episode lifetime is tied to the volume. 2. **Host directory on Dankclaw** (interim choice, already chosen by me pending this decision) — the volume is bind-mounted to a host path so episodes are ordinary files: greppable, backed-up-able, removable without touching the container. 3. **Copy into the Dankserver media tree** so Jellyfin indexes them and they play on the TV. Needs a cross-host copy step, a library path decision, and an owner for the sync. 4. **Workstation-only** — scp to the workstation, delete on the server. Smallest server surface, no sharing. ## What the decision changes - Whether the `open-notebook` quadlet gets an extra `Volumep`/bind mount (option 2). - Whether a deploy step or a small sync unit exists at all (option 3). - Backup scope: `postgres`-less, but the volume is already inside the container's data set; a host path would need adding to whatever backs up Dankclaw. ## Interim in force until the owner decides Option 2 with the path I picked; it is the only choice that is trivially reversible to 1, 3 or 4 later — a mount line and a directory, no migration of any kind.
dank added the human-only label 2026-10-18 15:47:37 -07:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dank/serverAppConfigs#7