Steam Machine · Guides

Jellyfin and Plex on Steam Machine: Setup Options and Limits

Summary

Compare an experimental Jellyfin helper with a manual Plex container setup, including prerequisites, persistent storage, paid features, and untested Steam Machine behavior.

Published Updated 10 sourcesBy John Hentrich

Jellyfin has an experimental SteamOS installer; Plex requires you to maintain a container yourself. Both need persistent storage and testing before you can rely on the Steam Machine as a media server.

This guide reviews those options for readers comfortable inspecting shell scripts or managing Linux containers. It includes the Jellyfin helper's install sequence and a Plex planning checklist, not a tested Plex deployment recipe.

We have not tested either path on a retail Steam Machine. The Jellyfin helper targets SteamOS on Steam Deck and other AMD handhelds, so its install, shortcut, transcoding, and sleep behavior remain unverified on the Machine.

Why a container fits SteamOS

Valve warns that pacman changes may disappear after a SteamOS update. A container avoids that system image, but its config, cache, and media mounts must use persistent writable paths.

Jellyfin's container guide uses rootless Podman for its Linux example. Back up the server config before changing images, mounts, or acceleration settings; a container is not a backup.

Jellyfin: an experimental SteamOS helper

jellyfin-on-steamOS combines the official Jellyfin server image, Jellyfin Desktop Flatpak, and a Steam shortcut. It is not a Valve or Jellyfin project.

On August 29, 2026, the repository had one commit and no tagged release. Review and pin commit 154a34452320514ddbc8df9250070560fe10bf9f rather than trusting a later mutable main branch. The helper still pulls jellyfin/jellyfin:latest, so record the resolved image digest separately.

The helper says it will:

  • Run Jellyfin in rootless Podman under a systemd user service.
  • Store config and cache in your home folder.
  • Mount selected media folders read-only.
  • Install Jellyfin Desktop and a Steam shortcut with artwork.
  • Enable startup and optionally add an external drive to /etc/fstab.
  • Provide status, settings, artwork, and uninstall commands.

The /etc/fstab option and user lingering may request sudo. The installer also masks podman-user-wait-network-online.service for your user and records its prior state for rollback. Its uninstaller does not remove an accepted /etc/fstab entry. Read both scripts, keep prompts visible, and do not run the installer as root.

Check the prerequisites

Open Konsole in Desktop Mode. If needed, follow the sudo guide first. Confirm the helper's required tools before installing:

  • podman --version
  • systemctl --user --version
  • flatpak --version
  • python3 --version
  • curl --version
  • git --version

Stop if a command is missing. A pacman fix may not survive an update.

Install the community helper

Close Steam first because it can overwrite the shortcut file when exiting. Then clone the repository, pin the reviewed commit, and inspect the installer and uninstaller:

  1. git clone https://github.com/28allday/jellyfin-on-steamOS.git
  2. cd jellyfin-on-steamOS
  3. git checkout 154a34452320514ddbc8df9250070560fe10bf9f
  4. less steamos-jellyfin.sh
  5. less steamos-jellyfin-uninstall.sh
  6. ./steamos-jellyfin.sh

Choose read-only media mounts unless Jellyfin must modify the files. Review any UUID-based /etc/fstab entry as a separate system change.

Restart Steam, sign in through Jellyfin Desktop, add libraries, and run ./steamos-jellyfin.sh status. Then test a reboot and the uninstall path while the config and mount locations are still clear.

Plex: a container to adapt, not a SteamOS installer

The LinuxServer.io Plex image supports x86-64 and documents host networking, config and media mounts, user and group IDs, time zone, updates, and /dev/dri access.

Its upstream configuration is not a ready-made SteamOS service. Before adapting it to rootless Podman, work through these requirements:

  1. Storage: choose a writable config directory and stable media-drive paths. The container needs read-write config access; media can stay read-only.
  2. Permissions: check that the container can access those paths with your chosen user and group mapping.
  3. Networking: review the image's host-networking configuration for local discovery. Keep initial setup on your private network.
  4. Playback: test software transcoding first. Passing /dev/dri into the container adds a separate hardware-acceleration test.
  5. Startup: after manual startup works, configure and test a systemd user service. Lingering allows it to run without an active desktop session and should be an explicit choice.

Once the container is running, its setup page is http://machine-ip:32400/web, with machine-ip replaced by your server's local address. Keep a versioned configuration with claim tokens and other secrets removed. There is no Steam shortcut or uninstall wrapper in this path; if you cannot yet maintain and remove a container service, stop here rather than treating the checklist as executable instructions.

Check Plex's account and paid-feature boundaries

Plex supports browsers, phones, TVs, streaming boxes, consoles, and desktops, which favors households already using its clients.

Hardware-accelerated streaming requires Plex Pass. Plex's documented Linux hardware-transcoding paths cover Ubuntu and Fedora, not SteamOS, and give dedicated AMD graphics less testing. Start with software transcoding and treat Steam Machine acceleration as unverified.

For affected apps, remote video playback requires Plex Pass for the administrator or viewer, or Remote Watch Pass for the viewer. Local-subnet playback is excluded from that rule.

Which one should you use?

  • Choose Jellyfin for a local, open-source server if you are prepared to audit and test the young community helper.
  • Choose Plex for an existing Plex household if you can maintain the Podman service and accept its account and paid-feature boundaries.

For either one, keep config outside the system image and record the container settings.

Sleep is a test, not a solved detail

Valve documents sleep, controller wake, and HDMI CEC, but not whether a media stream prevents sleep. A Jellyfin sleep report describes Windows 11, so use it only as a test case.

Before relying on the Machine as a server:

  • Play from another device beyond the normal sleep timer.
  • Test one direct-play file and one transcode.
  • Confirm playback and server access after the display turns off.
  • If the Machine sleeps, set an explicit power or wake routine and retest.

Controller wake does not make a TV or phone client able to wake the server.

Storage, networking, and gaming tradeoffs

Prefer direct play. Transcoding consumes CPU or GPU resources, and concurrent gaming remains untested.

Use Ethernet when practical. Plex recommends wiring the server to remove Wi-Fi variability.

Plan large libraries separately. The storage guide covers external drives. Use stable paths and ensure the drive mounts before the container starts.

Test locally first. Do not expose container ports publicly for initial setup. Remote access, backups, and updates are separate decisions.

Use media you are entitled to store and stream. Neither service supplies a library.