Install Jellyfin As A Raspberry Pi Media Server – Episode 29

5, Nov 2021 | Raspberry Pi 4 Series | 2 comments

Today, we will show you how to Install and configure Jellyfin as a Raspberry Pi media server. We will be using a docker composed stack in Portainer to deploy the Jellyfin server.



Recommended USB Hard Drives For Jellyfin On A Raspberry Pi:

WD 1TB My Passport Portable External Hard DriveWD 4 TB My Passport Portable External Hard Drive
USA Amazon Link:USA Amazon Link:
UK Amazon Link:UK Amazon Link:

What is Jellyfin?.

Jellyfin enables you to collect, manage, and stream your media. Run the Jellyfin server on your system and gain access to the leading free-software entertainment system, bells and whistles included.
Jellyfin is a fork of Emby. It has remained true to its open-source roots and is free forever. It also respects your privacy and is self-hosted.

Install Jellyfin Docker on Raspberry Pi 4

Step 1 – Create the folders needed for the Jellyfin Docker container.

Open up a terminal or Putty application (See our guide How to install Putty on Windows).

Connect to your Raspberry Pi via SSH (secure shell).


Navigate to your “Appdata” folder or the place where you store all your containers persistent configuration data.


Create a folder called “jellyfin“.

mkdir jellyfin

Navigate into the “jellyfin” folder.

cd jellyfin

Create the “config” folder where all the Plex configuration data will reside.

mkdir config

Now navigate into the “config” folder.

cd config

From here you will need to get your “absolute path” for your “config” folder.


Copy the output of the pwd command and paste it into a text file. You will need this in Step 2.

You now need to locate your Media folders. Using the above steps. Navigate into each folder using the terminal one at a time. Movies, TV Series, Music, and Photos are supported.

Once you are in each folder, as we have done above. Use the “pwd” command to get the absolute path of each folder and copy and paste the output paths into the same text file as above so you can add them to your stack in Step 2.

Step 2 – Create & deploy the Docker Compose Stack

Navigate to your Portainer dashboard and log in.


From the left-hand menu click on “Stacks“.

Now in the Stacks dashboard click on “Add a stack“.

In the “Name” field enter “jellyfin

Now Copy and paste the following docker-compose data into the “Web editor” field. Be sure to change all the file paths to the absolute paths you saved to a text file in step 1.

Jellyfin Docker Compose Stack

version: "2.1"
    container_name: jellyfin
      - PUID=1001
      - PGID=100
      - TZ=Europe/London
      - /path/to/Appdata/jellyfin/config:/config
      - /path/to/TVShows:/data/tvshows
      - /path/to/Movies:/data/movies
      - /path/to/Music:/data/music
      - /opt/vc/lib:/opt/vc/lib #optional
      - 8096:8096
      - 8920:8920 #optional
      - 7359:7359/udp #optional
      - 1900:1900/udp #optional
      - /dev/vchiq:/dev/vchiq #optional
      - /dev/video10:/dev/video10 #optional
      - /dev/video11:/dev/video11 #optional
      - /dev/video12:/dev/video12 #optional
    restart: unless-stopped

You will also need to change the “TZ“, “PUID” and “PGID” fields to match your setup.

You can find the “PUID” and “PGID” by using the “id” command in the terminal and copying the returned values.

id $user

You can also add additional media folders that you would like to mount and use in Jellyfin. By adding more paths to the “volumes” section.

Once you have completed all the fields in the stack. You are ready to click “Deploy the stack“.

Wait for the deployment to complete.

Now you can navigate to “Containers” in the left menu

You should now see your “Jellyfin” container in the list.

Configure The Jellyfin Media Server

Give the container a few minutes to fully startup then you can connect to the Jellyfin dashboard GUI.


You should now see the Jellyfin “Welcome” screen.

Select your preferred display language and click “Next“.

In the next screen give your admin account a “username” and “password“. Also, confirm the password a second time.

When you are done click on the “Next” button.

In the next screen “Setup your media libraries” add your media folders. You will need to do the following for each media source you have chosen to bind in your Stack deployment.

Click on the Plus icon to “Add Media Library“.

Select the “Content type:”

Give your library folder a “Display name“.

Now we need to add the media folder. Under “Folders” click on the “round plus icon“.

In the next screen “Select Path“, select your media folder from the “Folder” dropdown list.

When you are done selecting your media click on “OK“.

Continue down the list selecting your preferred languages and countries.

Also, change any other settings that you think is appropriate. We recommend leaving everything set to the defaults values other than the language settings.

Now Scroll to the bottom and click on “OK“.

Repeat this process for any additional folders you would like to add. This could be TV Shows and Music.

Once you have completed adding your Libraries you can click the “Next” button.

Under “Preferred Metadata Language” select your preferred language for the metadata and click on “Next“.

On the next screen “Configure Remote Access” we recommend unchecking both remote boxes. Then click “Next“.

Note: If you would like to access your Jellyfin server from outside your network (remotely) then we recommend using a VPN. If you would like to learn how to set up a Wireguard VPN please follow our episode 28 guide which will walk you through the process step by step.

In the “You’re Done!” screen click on the “Finish” button to complete the Jellyfin setup.

You should now see the “Please Sign In” screen. You can log in with the username and password you set in the install wizard. Just click “Sign In“.

Congratulations you should have a working Jellyfin server and be able to stream your media to all your devices. Enjoy!.

If you have any questions let us know in the comments below or on our YouTube Channel.

We need your support.

We hope you enjoyed this episode and that it was helpful and you got benefit out of it.

If you did, please consider supporting our channel by Subscribing to our YouTube channel, and liking and sharing our content.

You can also make a donation via Paypal or become a Patreon if you wish to do so.

You can also follow us on Facebook or Twitter.

If you have any questions or any requests please ask in the comments below or on YouTube.


  1. Miki

    Thank you so much for responding to users requests and creating this video

    Can you please explain how to setup the nginx remote connection to the JellyFin server?
    There is no need to add it to the video, but a text explanation here will be very helpful.
    Thank you very much for all your efforts

  2. Jack

    What about hw acceleration for transcoding?


Submit a Comment

Your email address will not be published. Required fields are marked *

<a href="" target="_self">Addicted2Tech</a>


We love technology and enjoy sharing helpful FREE content for others to enjoy. We believe in community. If you like what we do please support us by sharing and liking our tutorials & Subscribing to our YouTube channel. You can also follow us on social media.

Support Our Work!

Donate Via Patreon

Raspberry Pi 4 Model B 8GB

Last update on 2024-05-24 / Affiliate links / Images from Amazon Product Advertising API

CanaKit Raspberry Pi 4 Extreme Kit – 128GB Edition (4GB RAM)

Last update on 2024-05-24 / Affiliate links / Images from Amazon Product Advertising API

We Are An Affiliate!

Just so you know, we may collect a share of sales or other compensation from the links on this page. As an Amazon Associate, I earn from qualifying purchases.

The affiliate link recommendations come at no extra cost to you.

We hope you love the products we recommend!

Thank you if you use our links; we really appreciate it!

Related Posts