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
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!!!