Complete Jellyfin Home Server Topology for Compute, Storage, and Backup

Eva Wong is the Technical Writer and resident tinkerer at ZimaSpace. A lifelong geek with a passion for homelabs and open-source software, she specializes in translating complex technical concepts into accessible, hands-on guides. Eva believes that self-hosting should be fun, not intimidating. Through her tutorials, she empowers the community to demystify hardware setups, from building their first NAS to mastering Docker containers.

A complete Jellyfin topology separates compute, active application data, bulk media, and backup while keeping the playback path as short and testable as possible.

The topology can live in one chassis or several machines; the important distinction is role, not box count. Compute serves clients and may transcode, app storage holds latency-sensitive Jellyfin state, media storage supplies large files, and backup protects what must survive a failure. Split roles only when the shared design creates a measured conflict, because every extra host and network hop adds another dependency.

Define the Four Data Roles Before Choosing Where They Live

Classify data into four roles: source media, Jellyfin persistent state, rebuildable working data, and backup copies. Source media is capacity-heavy; persistent state includes the database and user/server configuration; working data includes cache and transcode output; backups exist only to recover another role.

This classification prevents a common topology error: treating “storage” as one undifferentiated pool. A high-capacity HDD array may be excellent for video files but a poor home for a busy metadata database, while a fast SSD is useful for app data but expensive and unnecessary for a large cold library.

ZimaSpace’s metadata placement guide uses the same role split: keep active databases and cache on fast storage while deciding separately which portable sidecars or artwork should live with media for migration purposes.

Keep the Primary Playback Path Simple

The critical path is client → network → Jellyfin compute → media source. If compute and media live on the same machine, the media hop is local. If they are separated, the compute node must read every served or transcoded byte across the network before sending the result to the client.

For a split compute/storage design, size the inter-node link from the aggregate source traffic, not only the final client bitrate. A transcode can read a high-bitrate source from storage while sending a lower-bitrate output to the client, so the storage link and client link have different jobs.

Keep management, experimentation, and optional services away from the playback path when they create contention. A second VLAN, a separate container network, or simply scheduled backup windows may be enough; adding an entire second physical network is justified only when the shared path measurably degrades service.

Place Compute Where Media Engines and Service Isolation Are Easiest to Validate

Compute should be chosen for the playback work it actually performs. Direct Play needs little video compute, while incompatible clients, subtitle burn-in, HDR conversion, or remote bitrate limits can make transcoding the dominant task.

The Jellyfin hardware selection guide recommends modern hardware acceleration for new servers because software video transcoding can be extremely demanding. It also separates CPU responsibilities from GPU media-engine responsibilities, which is more useful than judging a server only by CPU core count.

If Jellyfin shares a host with photo indexing, backups, home automation, or AI workloads, give the media service clear CPU, memory, and device-access boundaries. A larger all-in-one node such as ZimaCube 2 can implement a consolidated topology, but the topology still needs separate app-data, media, and backup roles rather than treating one chassis as one failure domain.

-15% OFF
Single board computer zimaboard2

Use SSD for Active Jellyfin State and Capacity Media for the Library

Place the Jellyfin database, indexes, cache, and other frequently accessed state on SSD or similarly low-latency storage. Put the large video library on HDD, a NAS pool, or another medium that can sustain the required sequential reads.

Jellyfin explicitly distinguishes these workloads: its storage guidance says media files mainly need sequential throughput above their bitrate, while Jellyfin’s own files perform substantial random access and are better placed on SSD.

If the library is remote, mount it predictably and document the path that the Jellyfin service sees. Recovery becomes much easier when app-state paths and media paths can be restored independently rather than being embedded in an undocumented chain of temporary mounts.

Make Backup a Different Destination, Not Another Folder in the Same Failure Domain

A backup stored on the same SSD or the same disk pool as the live Jellyfin state does not protect against that storage failure. The backup destination should survive the failure mode you are trying to recover from, whether that means another disk set, another machine, or an offline/offsite copy.

Jellyfin’s backup and restore documentation identifies database, metadata, subtitles, and trickplay as separate backup content classes. Decide which are critical, which are rebuildable, and how much destination capacity their growth requires.

Media backup is a separate policy decision because a large library can dwarf the application state. Protect irreplaceable home videos more aggressively than replaceable media, and do not count parity or RAID redundancy as the only backup copy if deletion, corruption, or operator error is in scope.

Validate Recovery First, Then Split or Expand the Topology

Run three tests before expanding: a representative local stream, a representative forced transcode, and a restore of Jellyfin state to a clean location or spare instance. These tests exercise the primary playback path, compute exception path, and recovery path respectively.

Split compute from storage only when the existing arrangement has a reason to change—capacity enclosure needs, independent maintenance windows, GPU placement, noise/thermal constraints, or sustained I/O contention. A split design can improve role isolation, but it also makes the network and remote mount part of every playback.

Stop expanding when each role has a named owner, the critical path is measurable, backup survives the target failure, and the next component would not remove a known bottleneck or improve recovery. That boundary keeps a home server topology understandable enough to repair under pressure.

NAS & Server Setup

More to Read

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.