Jellyfin is safer to operate when database state, configuration, metadata, cache, temporary transcodes, and media are treated as different data roles.
Not every directory deserves the same storage tier or backup policy: user accounts and watch state must survive runtime replacement, while cache and transcode scratch can usually be rebuilt and media remains authoritative elsewhere. Mapping these roles prevents a container update or disk cleanup from becoming an accidental server reset. Define persistence by whether data must survive a clean runtime rebuild.
Database and Configuration Define the Server State
The database and configuration carry users, library definitions, preferences, watch state, and other identity-bearing data. Losing them can leave the media files intact while the server itself effectively starts over.
Jellyfin configuration state includes user accounts, library settings, watch history, and metadata that should be protected separately from the bulk media files.
Keep this state on a persistent path outside the replaceable image or package. A persistent app-data layout gives the runtime a stable place to reconnect after recreation.
Metadata Is Valuable but Not Identical to the Database
Artwork and generated metadata can be expensive to recreate at scale even when some source information is recoverable. Its recovery priority depends on how much manual curation and processing it contains.
Keeping container data on SSD while bulk media remains on HDD creates a clear SSD app-data and HDD media split, which separates browsing-state latency from high-capacity media storage.
Measure metadata size and rebuild cost before deciding whether it belongs in every backup tier. Treat hand-edited or hard-to-regenerate assets differently from disposable cache.
Cache and Transcode Scratch Should Have an Expiration Model
Cache and active transcode output exist to accelerate or support current work, not to define long-term server identity. Preserving them blindly increases backup size and can restore stale temporary state.
A media-server storage design separates local cache from durable media because high-churn temporary work has different latency and durability needs.
Place scratch on a fast path with explicit free-space monitoring. Verify the service can recreate it after deletion before excluding it from backup.
Media Should Remain a Separate Authoritative Tier
The library files may live on local disks or a NAS and can dwarf the application state by orders of magnitude. They need their own redundancy and backup decision rather than inheriting the database policy.
Backup capacity and churn vary by dataset, so one retention model rarely fits both app state and bulk media.
Document which path is authoritative for each role and test a restore where Jellyfin state reconnects to an unchanged media library. A clean role map makes future storage migrations much less ambiguous.
Tech & AI HUB
More to Read

How Does a Secret Broker Give an AI Agent Credentials Without Exposing Them in Prompts?
Follow workload identity, policy, token issuance, request injection, redaction, expiry, and revocation through a secretless home AI agent architecture.

How Does a Tool Sandbox Contain AI Agent Side Effects?
See how isolation, capability gates, disposable state, egress control, quotas, and audit logs bound AI agent side effects without proving actions safe.

How Does Constrained Decoding Produce Schema-Valid JSON?
Understand schema compilation, token masking, parser state, supported subsets, latency, truncation, and why structural validity does not ensure correct values.

