Homelab Academy / Modules
Learn: instruction, vocabulary, worked example.
Module: Requests & Media Servers
Activity type: Reading (Learn)
Objective: Compare Plex and Jellyfin across licensing, account dependencies, remote access, plug-ins, client coverage, administration, and migration implications.
| Term | Meaning |
|---|---|
| Media library | The video, audio, image, subtitle, and related content files consumed by a media server. These files should normally be separated from application configuration and databases. |
| Application state | Mutable server data such as configuration, database files, metadata, users, watch history, artwork caches, and plug-in state. |
| Control plane | The configuration and state that determine how a service behaves, as distinct from the media files being served. |
| Cutover | The controlled point at which clients or routing begin using the replacement service. |
| Rollback | A planned restoration of the previous service and its validated state after a failed or rejected cutover. |
| Checksum manifest | A file containing cryptographic hashes and paths used to detect missing or changed files. |
| Restore test | Extraction of a backup into an isolated location followed by structural and checksum verification. |
| Least privilege | Granting a process only the access required for its task, such as permitting media reads while denying media modification. |
| Service identity | The operating-system account under which a service runs and whose permissions constrain that service. |
| Candidate state | Prepared replacement-service state that has passed validation but has not necessarily become authoritative. |
A fixture Plex control plane stored at /opt/lab-classroom/class59/state/plex.
A fixture Jellyfin control plane stored at /opt/lab-classroom/class59/state/jellyfin.
A separate media fixture at /opt/lab-classroom/class59/media/library. It is readable by the unprivileged nobody identity and not writable by that identity.
/opt/lab-classroom/class59/backups/plex-pre-migration.tgz
/opt/lab-classroom/class59/restore-check
/opt/lab-classroom/class59/verification-extract
SHA-256 manifests are stored under /opt/lab-classroom/class59/manifests.
The file cutover/active-service represents the selected service. cutover/active-service.before is an immutable migration record of the original Plex selection.
Clients conceptually select the service named by cutover/active-service.
Plex and Jellyfin have separate mutable control-plane directories.
Both services reference the same media path rather than copying media into application state.
The Plex archive is extracted and verified before cutover.
Rollback replaces damaged Plex fixture state with the previously verified extraction while retaining the damaged directory.