Linux
Alpine Linux
Jellyfin can be found in the community
repository as
jellyfin
and
jellyfin-web
.
To enable the web UI after installing jellyfin-web
, make sure to remove the --nowebclient
option from
/etc/conf.d/jellyfin
.
Arch Linux
Jellyfin can be found in the AUR as jellyfin
, jellyfin-bin
and jellyfin-git
.
Fedora
Fedora builds in RPM package format are available here for now but an official Fedora repository is coming soon.
You will need to enable rpmfusion as ffmpeg is a dependency of the jellyfin server package
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
noteYou do not need to manually install ffmpeg, it will be installed by the jellyfin server package as a dependency
Install the jellyfin server
sudo dnf install (link to version jellyfin server you want to install)
Install the jellyfin web interface
sudo dnf install (link to web RPM you want to install)
Enable jellyfin service with systemd
sudo systemctl start jellyfin
sudo systemctl enable jellyfin
Open jellyfin service with firewalld
sudo firewall-cmd --permanent --add-service=jellyfin
noteThis will open the following ports 8096 TCP used by default for HTTP traffic, you can change this in the dashboard 8920 TCP used by default for HTTPS traffic, you can change this in the dashboard 1900 UDP used for service auto-discovery, this is not configurable 7359 UDP used for auto-discovery, this is not configurable
Reboot your machine
sudo systemctl reboot
Go to
localhost:8096
orip-address-of-jellyfin-server:8096
to finish setup in the web UI
CentOS
CentOS/RHEL 7 builds in RPM package format are available here and an official CentOS/RHEL repository is planned for the future.
The default CentOS/RHEL repositories don't provide FFmpeg, which the RPM requires. You will need to add a third-party repository which provide FFmpeg, such as RPM Fusion's Free repository.
You can also build Jellyfin's version on your own. This includes gathering the dependencies and compiling and installing them. Instructions can be found at the FFmpeg wiki.
Debian
Repository
The Jellyfin team provides a Debian repository for installation on Debian Buster/Bullseye.
Supported architectures are amd64
, arm64
, and armhf
.
Microsoft does not provide a .NET for 32-bit x86 Linux systems, and hence Jellyfin is not supported on the i386
architecture.
We provide an installer script to easily configure the Jellyfin APT repository. All you need to do is run this command on your system:
curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash
If you do not have curl
installed, you can try wget
instead:
wget -O- https://repo.jellyfin.org/install-debuntu.sh | sudo bash
If you don't trust the script or want to do everything manually, the full steps are as follows:
Install
curl
andgnupg
if you haven't already:sudo apt install curl gnupg
Download the GPG signing key (signed by the Jellyfin Team):
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpgAdd a repository configuration at
/etc/apt/sources.list.d/jellyfin.sources
:cat <<EOF | sudo tee /etc/apt/sources.list.d/jellyfin.sources
Types: deb
URIs: https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release )
Suites: $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )
Components: main
Architectures: $( dpkg --print-architecture )
Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOFnoteSupported releases are
buster
andbullseye
.Update APT repositories:
sudo apt update
Install Jellyfin:
sudo apt install jellyfin
Manage the Jellyfin system service:
sudo systemctl {action} jellyfin
Packages
Raw Debian packages, including old versions, are available here.
The repository is the preferred way to obtain Jellyfin on Debian, as it contains several dependencies as well.
Download the desired
jellyfin
andjellyfin-ffmpeg
.deb
packages from the repository.Install the downloaded
.deb
packages:sudo dpkg -i jellyfin_*.deb jellyfin-ffmpeg_*.deb
Use
apt
to install any missing dependencies:sudo apt -f install
Manage the Jellyfin system service:
sudo systemctl {action} jellyfin
Ubuntu
Migrating to the new repository
Previous versions of Jellyfin included Ubuntu under the Debian repository.
This has now been split out into its own repository to better handle the separate binary packages.
If you encounter errors about the ubuntu
release not being found and you previously configured an ubuntu
jellyfin.list
file, please follow these steps.
Remove the old
/etc/apt/sources.list.d/jellyfin.list
file:sudo rm /etc/apt/sources.list.d/jellyfin.list
Proceed with the following section as written.
Ubuntu Repository
The Jellyfin team provides an Ubuntu repository for installation on Ubuntu Bionic, Focal, Impish, and Jammy.
Supported architectures are amd64
, arm64
, and armhf
.
Microsoft does not provide a .NET for 32-bit x86 Linux systems, and hence Jellyfin is not supported on the i386
architecture.
We provide an installer script to easily configure the Jellyfin APT repository. All you need to do is run this command on your system:
curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash
If you do not have curl
installed, you can try wget
instead:
wget -O- https://repo.jellyfin.org/install-debuntu.sh | sudo bash
If you don't trust the script or want to do everything manually, the full steps are as follows:
Install
curl
andgnupg
if you haven't already:sudo apt install curl gnupg
Enable the Universe repository to obtain all the FFMpeg dependencies:
sudo add-apt-repository universe
noteIf the above command fails you will need to install the following package
software-properties-common
. This can be achieved with the following commandsudo apt-get install software-properties-common
Download the GPG signing key (signed by the Jellyfin Team):
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpgAdd a repository configuration at
/etc/apt/sources.list.d/jellyfin.sources
:cat <<EOF | sudo tee /etc/apt/sources.list.d/jellyfin.sources
Types: deb
URIs: https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release )
Suites: $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )
Components: main
Architectures: $( dpkg --print-architecture )
Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOFnoteSupported releases are
bionic
,focal
,impish
, andjammy
.Update APT repositories:
sudo apt update
Install Jellyfin:
sudo apt install jellyfin
Manage the Jellyfin system service:
sudo systemctl {action} jellyfin
Ubuntu Packages
Raw Ubuntu packages, including old versions, are available here.
The repository is the preferred way to install Jellyfin on Ubuntu, as it contains several dependencies as well.
Enable the Universe repository to obtain all the FFMpeg dependencies, and update repositories:
sudo add-apt-repository universe
sudo apt updateDownload the desired
jellyfin
andjellyfin-ffmpeg
.deb
packages from the repository.Install the required dependencies:
sudo apt install at libsqlite3-0 libfontconfig1 libfreetype6 libssl1.0.0
Install the downloaded
.deb
packages:sudo dpkg -i jellyfin_*.deb jellyfin-ffmpeg_*.deb
Use
apt
to install any missing dependencies:sudo apt -f install
Manage the Jellyfin system service:
sudo systemctl {action} jellyfin
Gentoo
The Gentoo ebuild repositoy includes the Jellyfin package which can be installed like other software:
emerge www-apps/jellyfin
Linux (generic amd64)
Generic amd64
, arm64
, and armhf
Linux builds in TAR archive format are available here.
Base Installation Process
Create a directory in /opt
for jellyfin and its files, and enter that directory.
sudo mkdir /opt/jellyfin
cd /opt/jellyfin
Download the latest generic Linux build for your architecture.
The rest of these instructions assume version 10.8.9 is being installed (i.e. jellyfin_10.8.9_amd64.tar.gz
).
Download the generic build, then extract the archive:
sudo wget https://repo.jellyfin.org/releases/server/linux/stable/combined/jellyfin_10.8.9_amd64.tar.gz
sudo tar xvzf jellyfin_10.8.9_amd64.tar.gz
Create a symbolic link to the Jellyfin 10.8.9 directory. This allows an upgrade by repeating the above steps and enabling it by simply re-creating the symbolic link to the new version.
sudo ln -s jellyfin_10.8.9 jellyfin
Create four sub-directories for Jellyfin data.
sudo mkdir data cache config log
FFmpeg
Installation
If you are not running a Debian derivative, install ffmpeg
through your OS's package manager, and skip this section.
Not being able to use jellyfin-ffmpeg
will most likely break hardware acceleration and tonemapping.
If you are running Debian or a derivative, you should download and install a ffmpeg
release built specifically for Jellyfin.
Be sure to download the latest release that matches your OS (5.1.2-8
for Debian Bullseye assumed below).
sudo wget https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/5.1.2-8/jellyfin-ffmpeg5_5.1.2-8-bullseye_amd64.deb
sudo dpkg --install jellyfin-ffmpeg5_5.1.2-8-bullseye_amd64.deb
If you run into any dependency errors, run this and it will install them and jellyfin-ffmpeg
.
sudo apt install -f
Running Jellyfin
Due to the number of command line options that must be passed on to the Jellyfin binary, it is easiest to create a small script to run Jellyfin.
sudo nano jellyfin.sh
Then paste the following commands and modify as needed.
#!/bin/bash
JELLYFINDIR="/opt/jellyfin"
FFMPEGDIR="/usr/share/jellyfin-ffmpeg"
$JELLYFINDIR/jellyfin/jellyfin \
-d $JELLYFINDIR/data \
-C $JELLYFINDIR/cache \
-c $JELLYFINDIR/config \
-l $JELLYFINDIR/log \
--ffmpeg $FFMPEGDIR/ffmpeg
Assuming you desire Jellyfin to run as a non-root user, chmod
all files and directories to your normal login user and group.
Also make the startup script above executable.
sudo chown -R user:group *
sudo chmod u+x jellyfin.sh
Finally you can run it. You will see lots of log information when run, this is normal. Setup is as usual in the web browser.
./jellyfin.sh
Starting Jellyfin on boot (optional)
Create a systemd
unit file.
cd /etc/systemd/system
sudo nano jellyfin.service
Then paste the following contents, replacing youruser
with your username.
[Unit]
Description=Jellyfin
After=network.target
[Service]
Type=simple
User=youruser
Restart=always
ExecStart=/opt/jellyfin/jellyfin.sh
[Install]
WantedBy=multi-user.target
Apply the correct permissions to the file, enable the service to start on boot, then start it.
sudo chmod 644 jellyfin.service
sudo systemctl daemon-reload
sudo systemctl enable jellyfin.service
sudo systemctl start jellyfin.service
Portable DLL
Platform-agnostic .NET Core DLL builds in TAR archive format are available here.
These builds use the binary jellyfin.dll
and must be loaded with dotnet
.