1. Home
  2. Linux
  3. Jellyfin media server linux

How to set up the Jellyfin media server on Linux

Jellyfin is an open-source fork of the Emby media server. They’re very similar in software, but Jellyfin is widely considered to be superior, as the Emby developers have recently gone closed source.

Setting up a Jellyfin media server on Linux isn’t a complicated process. Much like the software, it is based upon (Emby,) installation on the Linux platform is a breeze. In this guide, we’ll show you how to setup Jellyfin on Linux and show you how to use it as well!

Installing Jellyfin software on Linux

The Jellyfin developers offer up a myriad of ways to install the media server on the Linux platform. From Docker to downloadable DEBs and custom packages in the Arch Linux AUR. 

In this guide, we’ll focus on downloadable packages. However, if you are an advanced Linux user and know how to use Docker, click here to get your hands on it.

To start installing Jellyfin on your Linux server, open up a terminal window via SSH or by physically sitting in front of it. After that, follow the command-line installation instructions outlined below.

Ubuntu Server/Debian Server

There’s a DEB package available for Jellyfin, the perfect medium if you have an Ubuntu server or Debian server lying around. To get your hands on the DEB, start by installing the “apt-transport-https” package.

sudo apt install apt-transport-https

Next, use the wget downloader tool to grab the GPG key for the Jellyfin software repository. The key is required, or Ubuntu/Debian will not be able to interact with the Jellyfin repo.

wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo apt-key add -

With the key added to your system, it is time to run a long command. This command will scan your system, determine the correct version of Debian or Ubuntu, and add the right repo. This command must be entered exactly as shown below in the example!

echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

After executing the command above, the repo should be set up on your server. Now, run the apt update command to refresh your system’s software sources. 

sudo apt update

Finally, install the Jellyfin media server package on your computer using the apt install command.

sudo apt install jellyfin

Arch Linux (running as a server)

While it sounds silly, many Linux users run Arch Linux as a server. If you are one of those people, here’s how to install Jellyfin. To start, install the “git” and “base-devel” packages using the Pacman command.

sudo pacman -S git base-devel

Next, download the Trizen AUR helper tool. This program takes the tediousness out of building an AUR package and will aid you in installing Jellyfin.

git clone https://aur.archlinux.org/trizen.git

Install Trizen using makepkg.

cd trizen
makepkg -sri

Next, install the Jellyfin media server package on your system using the trizen -S command.

trizen -S jellyfin

Startup the Jellyfin media server using systemctl.

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

Setting up Jellyfin

Jellyfin is set up on Linux with the help of a wizard tool. To start the setup process, open up a web browser on any computer and enter the URL below. Keep in mind that this URL is an example. You will need to replace it with the Linux server’s IP address that you’ve installed Jellyfin on.

http://ip-address-of-server:8096/

 Once you’ve accessed the Jellyfin page in your browser, follow the step-by-step instructions below to configure your new Jellyfin media server.

Step 1: The first thing you’ll see in the Jellyfin wizard is, “Welcome to Jellyfin!” Read the message. Then, click “Next” at the bottom of the page to continue.

Step 2: On the next page, you will be asked to create a new user profile for Jellyfin. Fill out the text boxes to create a username and password. Or leave it as it is and click “Next” to continue.

Step 3: Click on the “Add Media Library” button at the top of the page. By selecting this option, you will see “Content Type,” “Display Name,” and “Folders.”

Click on “Content-type” and set the type of content you are adding to your media library. For example, if you are adding your movie collection, select “Movies.”

Next, find “Display Name” and type in the name of the library you are adding. 

Step 4: On the “Add Media Libary” page, find the “Folders+” button, and click on it to access the folder browser. Then, use it to browse for the folder with your media files. 

Please note that you can only add media files to Jellyfin if the Jellyfin server app can access the folder. If you cannot find your media folder in the “Folders+” window, open up a terminal window on the server and run the following command.

sudo chmod 755 -R /path/to/media/folder/

sudo chown jellyfin:jellyfin /path/to/media/folder/

Step 5: After adding your media to the Jellyfin installer, find the “Next” button on the bottom of the page and click on it. On the next page, you’ll see “Preferred Metadata Language.” Choose the language you speak so that Jellyfin knows what to set the metadata language to. Then, click “Next.”

Step 6: On the next page, Jellyfin wants to set up remote access. If you want to access your Jellyfin media server outside of the network, check both boxes. If not, uncheck them and click “Next.”

Once you’ve configured remote access in Jellyfin, the setup process is complete. From here, you can access your media on the server. Or, download the app for your smartphone, set-top box, etc., here.

1 Comment

  1. Thanks for the advice, some additions I needed to succeed:on a RasberryPi 4 running Manjaro (ARCH) Linux

    1. When asked to edit PKGBUILD for both jellyfin and jellyfin-web answer Yes and edit the arch=() line by adding ‘aarch64’
    2. I needed to manually compile and install dotnet-sdk 3.1 from AUR at https://aur.archlinux.org/packages/dotnet-sdk-3.1/, trizen would not do it automagically (sdk 5.x will not work, altough the dependency is stated as => 3 in the PKGBUILD)

    MulMic