Jellyfin is a software solution that enables you to collect, manage, and stream your media. You can stream to any device from your own server, with no strings attached – enjoy full control over your media content. Jellyfin server can be installed on Linux, macOS and Windows. Some NAS solutions such as Synology also support the installation of Jellyfin media server on top of it.

Jellyfin supports the following types of content.

  • Movies: Enjoy your entire movie collection, easy to browse and with beautiful artwork.
  • Music: Listen to music, your artists and your playlists, at home or on the go.
  • TV Shows: Watch your favorite shows, automatically sorted by season and ready to binge.
  • Live TV & DVR: Watch TV and set automatic recordings to expand your library.
  • Books: Read your books, comics, and magazines.
  • SyncPlay: Sharing a movie night remotely has never been so easy.
  • Photos: Organize your photos and share memories with your friends and family.

In this article we perform the installation and configuration of Jellyfin Media Server on Ubuntu or Debian. The Jellyfin team supports 3rd-party Ubuntu and Debian repositories with the latest Jellyfin packages.

Install Jellyfin Media Server

Install the dependencies required.

sudo apt update
sudo apt install curl gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates

On Ubuntu and its derivatives, enable Universe repository to obtain all the FFmpeg dependencies:

# Run only on Ubuntu
sudo add-apt-repository universe

Install GPG signing key (signed by the Jellyfin Team) in your local system.

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg

Export OS version, OS codename, and CPU architecture as variables.

export VERSION_OS="$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release )"
export VERSION_CODENAME="$( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )"
export DPKG_ARCHITECTURE="$( dpkg --print-architecture )"

You can confirm saved values.

echo $VERSION_OS
echo $VERSION_CODENAME
echo $DPKG_ARCHITECTURE

Add Jellyfin repository configuration

sudo tee /etc/apt/sources.list.d/jellyfin.sources<<EOF
Types: deb
URIs: https://repo.jellyfin.org/${VERSION_OS}
Suites: ${VERSION_CODENAME}
Components: main
Architectures: ${DPKG_ARCHITECTURE}
Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOF

Update your APT repositories:

$ sudo apt update
Hit:1 http://security.debian.org/debian-security bookworm-security InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease
Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
Hit:4 http://mirror.hetzner.com/debian/packages bookworm InRelease
Hit:5 http://mirror.hetzner.com/debian/packages bookworm-updates InRelease
Hit:6 http://mirror.hetzner.com/debian/security bookworm-security InRelease
Get:7 https://repo.jellyfin.org/debian bookworm InRelease [6,639 B]
Get:8 https://fra1.mirror.jellyfin.org/debian bookworm/main amd64 Packages [1,982 B]
Fetched 8,621 B in 2s (5,076 B/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done

We can now install the Jellyfin metapackage. This will automatically fetch the various sub-packages:

sudo apt install jellyfin

Start and enable the services.

sudo systemctl start jellyfin.service && sudo systemctl enable jellyfin.service

Initial configuration of Jellyfin Media Server

The service is listening on port 8096:

$ ss -tunelp|grep 8096
tcp   LISTEN 0      512               0.0.0.0:8096       0.0.0.0:*    users:(("jellyfin",pid=2849,fd=310)) uid:114 ino:30938 sk:9 cgroup:/system.slice/jellyfin.service <->

The configuration can be found at /usr/share/jellyfin/web/config.json

Perform initial Jellyfin Media Server setup by going to http://ServerIP:8096. Choose your preferred language in the first page.

jellyfin media server 01

Next create an admin user account.

jellyfin media server 02

You can add media library now or choose to configure it later.

jellyfin media server 03

The default metadata language can also be set.

jellyfin media server 04

Consider to enable remote access if remote connections will be requred.

jellyfin media server 05

And that’s all you should provide to configure Jellyfin. Click Finish to finalize.

jellyfin media server 06

Then login to your Jellyfin dashboard using created username and the password.

jellyfin media server 07

In our next article we will discuss on securing access to Jellyfin Media Server using Nginx or Apache Proxy with Let’s Encrypt SSL certificate.

Jellyfin directories:

  • /var/lib/jellyfin/: configuration and data directories.
$ ls -1 /var/lib/jellyfin/
data
metadata
plugins
root
transcodes
  • /etc/jellyfin/system.xml: Initial setup configuration. If you want to reconfigure afresh. Change as follows
# From
  <IsStartupWizardCompleted>true</IsStartupWizardCompleted>

# To
  <IsStartupWizardCompleted>flase</IsStartupWizardCompleted>

LEAVE A REPLY

Please enter your comment!
Please enter your name here