media workload on a Standalone Compose host. Set it up after the baseline of your Basement Kit verifies. Use stackkit app compatibility --json to inspect the installed release’s adapter capabilities.
Point the workload at an existing media directory
To use an existing library, setstorage.mediaRoot in the StackSpec to the media’s absolute directory on the runtime host, for example /srv/household-media, before generating and applying the stack:
- StackKits binds that directory at
/mediaread-only. Jellyfin can scan and stream those files but cannot edit or delete them. - The directory must already exist. StackKits does not create it and does not change its permissions; a missing directory fails delivery, so prepare and guard the host storage yourself.
- Leave
storage.mediaRootabsent to keep a named library volume managed by the plan instead. - The path names storage on the runtime host, not on the machine running a remote viewer.
Set up the owner account
Create a private, workspace-relative credential file.stackkit/setup/media-owner.json:
Finish the wizard and add libraries
Without further flags, an unfinished Jellyfin startup wizard stays unfinished: open Media at its declared private route and choose library paths, language, and household settings yourself. To complete the startup wizard with the current application settings instead, and configure your libraries afterward, add--complete-onboarding:
/media mount for an owner-custodied directory. Give household viewers separate non-administrator Jellyfin accounts and connect each player directly to the declared Media URL.
Recovery limits
Application configuration and media bytes are custodied separately:- Jellyfin’s configuration and transcoding cache live in separate volumes. Check the application backup declaration for included data; writable storage alone does not imply backup coverage.
- Your media source is not a StackKits backup. Whatever you set for
storage.mediaRoot, keep an independent recovery source for those bytes and document it outside the stack. - Container health and a verified administrator setup do not prove library content or recovery; check both explicitly.
Test a real client
Test playback of one of your own files from an intended client. Check direct play first, and transcoding only when you have explicitly configured it. Client compatibility, bandwidth, and transcoding quality are not proven by a healthy container — verify them on the devices you actually plan to watch on.Resume an interrupted setup
If a setup run is interrupted, retry it with the reported--operation-id. The command re-checks the application state and never reopens an already completed startup wizard.