Skip to main content

How to install jellyfin on your server?

Jellyfin is a fantastic media server with client applications available on almost any platform you can think of. It is a perfect open-source alternative to Emby and Plex, which are both closed-source with features locked behind a paywall.

In this guide, I will go through how to setup Jellyfin on docker using the image produced by linuxserver.io which is easy to deploy and mitigates any permission issues that may arise.

Links:


Jellyfin User Interface

Jellyfin User Interface


Creating the Directories

We need to create directories to mount within the Jellyfin docker container.

To keep these directories organized, we will first create a directory for storing the Jellyfin config:

sudo mkdir /home/user/jellyfin

You will mount this directory /home/user/jellyfin into the Jellyfin container to store its configuration

Next create a directory for TV shows, movies, music and so on

Once you have created the required directories, enter the following command to determine your UID (User ID) and your GID (Group ID):

id placeholder-username

You should get an output similar to this:

uid=1000(kaleadmin) gid=1000(kaleadmin) groups=1000(kaleadmin)

Note down the number, in this case it is 1000.

Next run the following command to edit the permissions for the directories you have created, ensuring to change 1000 to the value displayed:

sudo chown -R 1000:1000 /home/user/jellyfin

Repeat this command for every directory you’ve created.

Your directories are now configured properly. It is now time to move on to installing Jellyfin.


Installing Jellyfin

Open your browser and head over to your portainer instance.

Log in and on the left menu, select Stacks and then click Add a Stack.

Enter the following YAML Docker Compose text in the text window:


---
version: "2.1"
services:
  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=1000 #Change this to your UID
      - PGID=1000 #Change this to your GID
      - TZ=Europe/London
    volumes:
      - /home/user/jellyfin:/config #Mount your config directory here
      - /media/library/TV:/data/tvshows #Mount TVShows here
      - /media/library/Movies:/data/movies #Mount Movies here
      # You can add as many library folders as you like. 
    ports:
      - 8096:8096
    restart: unless-stopped

Next, click on Deploy Stack and you’re done!!!