Installing Jellyfin
Jellyfin is a free and open-source media server and suite of multimedia applications designed to organize, manage, and share digital media files to networked devices.
An RPM package is not provided for openSUSE so Jellyfin must be installed from the Linux manual install tarball. This guide will explain how to do this. This guide is written with the current version of Jellyfin 10.9.11.
What you need to know
You will need to download the following:
- Jellyfin Generic Linux Server package
jellyfin-ffmpeg
tarball
The following packages need installing:
gcc
make
yasm
The following packages need installing from Packman:
libx264-devel
- requiredlibx265-devel
- optional for H.265/HEVC transcodingSVT-AV1-devel
- optional for AV1 transcoding
Installing Jellyfin
- Create the directory
sudo mkdir /opt/jellyfin
- Move into the directory
cd /opt/jellyfin
- Download the latest tarball from the Jellyfin website - for example,
wget https://repo.jellyfin.org/files/server/linux/latest-stable/amd64/jellyfin_10.9.11-amd64.tar.gz
- Unzip the tar archive,
sudo tar zxvf jellyfin_10.9.11-amd64.tar.gz
- We need to create the script to run Jellyfin and run it as a service. Open
sudo nano jellyfin.sh
and add the following to the script file:
#!/bin/bash JELLYFINDIR="/opt/jellyfin" FFMPEGDIR="/usr/share/jellyfin-ffmpeg/bin" $JELLYFINDIR/jellyfin/jellyfin \ -d $JELLYFINDIR/data \ -C $JELLYFINDIR/cache \ -c $JELLYFINDIR/config \ -l $JELLYFINDIR/log \ --ffmpeg $FFMPEGDIR/ffmpeg
- Press Ctrl+W to save the file
- Run
sudo chmod +x jellyfin.sh
to make the script executable - Move back into the Jellyfin directory and initially run the Jellyfin script created earlier
./jellyfin.sh
- Once it has started, close the script by pressing Ctrl+C
- Move up a directory
cd ..
. Take ownership of the file under the user you are runningsudo chown -R <username>:users jellyfin
. Note:<username>
needs changing to whatever your username is
Install service script
This will guide you on how to create a script to start Jellyfin as a service on startup.
- Move to
cd /etc/systemd/system
- We need to create the script to run Jellyfin as a service. Open
sudo nano jellyfin.service
and add the following to the script file:
[Unit] Description=Jellyfin After=network.target [Service] Type=simple User=<username> Restart=always ExecStart=/opt/jellyfin/jellyfin.sh [Install] WantedBy=multi-user.target
Note: User=<username>
should be changed to the same user that took ownership of the Jellyfin folder earlier.
- Press Ctrl+W to save the file
- Correct the permissions of the service file
sudo chmod 644 jellyfin.service
- Reload the system daemons to allow the service to load
sudo systemctl daemon-reload
- Run the Jellyfin service and check it starts
sudo service jellyfin start
- If you'd like Jellyfin to run on startup, run
sudo systemctl enable jellyfin.service
Install jellyfin-ffmpeg
openSUSE does not come with an FFMpeg version that includes propriety formats such as H.264 and H.265/HEVC. We need to install jellyfin-ffmpeg
which includes these formats and is tailored for hardware encoding for Jellyfin. A few dependencies need installing first.
- We need to add the Packman repository that includes the dependencies we need
sudo zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' packman
- Refresh zypper to load the new repositories
sudo zypper ref
. Accept the keys needed for the repositories. - Install the base proprietary codecs
sudo zypper install --allow-vendor-change --from packman ffmpeg gstreamer-plugins-{good,bad,ugly,libav} libavcodec vlc-codecs
- Install the dependency packages depending on what you need:
sudo zypper in libx264-devel libx265-devel SVT-AV1-devel
. Allow any extra dependencies these may require. - Install the base packages need to compile
jellyfin-ffmpeg
:sudo zypper in gcc make yasm
- Move to your home downloads folder
cd ~/Downloads
- Download the
jellyfin-ffmpeg
from GitHub. Ensure that the version is compatible with the version of Jellyfin you have installed - for example Jellyfin 10.9.11 is compatible with the latestjellyfin-ffmpeg
package 6.0.1-8. Download the source tar.gz package withwget https://github.com/jellyfin/jellyfin-ffmpeg/archive/refs/tags/v6.0.1-8.tar.gz
.
Tip: You may need to expand the Assets tab to show the downloadable packages.
- Extract the package with
tar zxvf v6.0.1-8.tar.gz
- Move into the folder created
cd jellyfin-ffmpeg-6.0.1-8
- Run
./configure --prefix=/usr/share/jellyfin-ffmpeg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-gpl
.
This will configure the package to be installed to /usr/share/jellyfin-ffmeg
with H.264, H.265/HEVC and AV1. Due to H.264 and H.265/HEVC being licensed under a GPL license, the whole package will be licensed under GPL which is enabled by the switch. This can be configured as needed by adding/removing switches.
- Run
make
. This will compile the code and may take a while - Run
make install
to install
Configuring Jellyfin
Jellyfin is configured through the web browser. Open a web browser and go to the following address: http://localhost:8096
. You should get the first run installer after installation is complete.