Running media servers on Bazzite is fairly simple thanks to a couple of tools called Podman and Quadlets. These allow Plex Media Server and Jellyfin can run inside containers and start automatically with your system. While this is possible using Distrobox, Quadlets provide an easier solution for services that should run in the background. While all that probably sounds complicated! This guide will show you how to create Quadlets for Plex and Jellyfin, start the services, configure your media libraries, and remove them if needed.

Takeaways:

  1. What's the easiest way to install Plex on Bazzite?
  2. What's the easiest way to install Jellyfin on Bazzite?
  3. Setting Plex and Jellyfin to auto run on Bazzite.

What Is a Quadlet

A Quadlet is a feature of Podman that lets you define containers as systemd services. Instead of writing long Podman commands, you create a simple configuration file with a structure similar to a docker compose file.

Systemd reads these files and automatically manages the containers. This means your services can start at login, restart automatically, and be controlled with standard systemctl commands. Quadlets are super handy for applications that should always run in the background such as media servers. Which is why we are using them for Plex and Jellyfin.

How to Run Plex and Jellyfin on Bazzite Using Quadlets - Creating the Directory Structure

Quadlet files must be placed in a specific location in your home directory.

  • Open your file manager and enable hidden files if they are not already visible. Press: CTRL+H
  • Now go to your home folder and enter the .config folder.

How to Run Plex and Jellyfin on Bazzite Using Quadlets

  • Here make a new folder called containers in the .config folder.
  • Then in that folder make a folder called systemd
  • Now you should be in the ~/.config/containers/systemd folder

Note: The ~ means your home folder make a plex.container file, with the content below

  • Inside ~/.config/containers/systemd, create a new file named:

plex.container

  • Open the file in a text editor such as Kate.
  • Copy the Plex Quadlet configuration below:

[Container]
ContainerName=plex
Environment=TZ=Etc/UTC
Image=docker.io/plexinc/pms-docker
Network=host
#Use Network=bridge if you get port conflicts
#PublishPort=32400:32400/tcp #Only relevant with Network=bridge
Volume=plex-config:/config:z
Volume=plex-transcode:/transcode:z
Volume=/var/home/bazzite/Videos:/videos:z
#AddDevice=nvidia.com/gpu=all #Adds support for nvidia GPU encoding

[Install]
WantedBy=xdg-desktop-autostart.target
#WantedBy=default.target #Try changing to this target if plex doesn't auto start

Run Plex and Jellyfin on Bazzite Using Quadlets

  • Adjust any file paths to match your system. For example, if your videos are stored in your home Videos folder, the volume mapping might point to:

/home/username/Videos

  • Inside the container this folder will typically appear as:

/videos

  • Save the file when finished.
  • Open a terminal and reload user services so systemd recognizes the new Quadlet.

systemctl --user daemon-reload

How to Start Plex

  • Start the Plex service with the following command:

systemctl --user start plex

Run Plex and Jellyfin on Bazzite Using Quadlets solution

  • The first startup may take some time because Podman needs to download the Plex container image.
  • Once the service is running, open your browser and navigate to:

http://localhost:32400/web

  • Follow the normal Plex setup process.
  • When adding media libraries, remember that your host video folder is mapped to /videos inside the container. Select this location when browsing for media.

Automatic Startup

The Quadlet configuration includes an install section that allows Plex to start automatically.

  • The following line connects the container to your desktop session:

WantedBy=xdg-desktop-autostart.target

  • Because of this, Plex will start automatically when your desktop session begins.

Adding Additional Media Folders

If you want to add another media directory later, edit the plex.container file and add another Volume entry.

  • After saving the file, reload systemd and restart the service:

systemctl --user daemon-reload

systemctl --user restart plex

  • Make sure the folder path exists on your system before restarting.

Removing the Plex Quadlet

To uninstall Plex, stop the service first:

systemctl --user stop plex

  • Then remove the internal Podman volumes created for the container:

podman volume rm plex-config plex-transcode

  • After removing these volumes, Plex is fully uninstalled.

Creating a Jellyfin Quadlet

The process for Jellyfin is nearly identical.

  • Go to:

~/.config/containers/systemd

  • Create a new file named:

jellyfin.container

  • Paste the Jellyfin configuration from the companion blog post into the file.
  • Adjust the media path if your videos are stored in a different location.
  • Save the file when finished.
  • Run the following commands:

systemctl --user daemon-reload

systemctl --user start jellyfin

  • The first startup may take a minute while Podman downloads the container image.
  • Open your browser and go to:

http://localhost:8096

  • Follow the Jellyfin setup wizard to create your server and add media libraries.
  • Additional folders can be added either through Jellyfin or by editing the Quadlet file and restarting the service.

How to Uninstall Jellyfin

To uninstall Jellyfin, stop the service:

systemctl --user stop jellyfin

  • Then remove the container volumes:

podman volume rm jellyfin-config jellyfin-cache

  • This removes all Jellyfin data and completes the uninstall.