Skip to main content

Install Using Docker-CE

Roku, Amazon Firestick, Android, iOS, Google Chromecast, there are even client apps for AppleTV (TVOS), and even more devices I'm not listing.  You can see all of the clients by visiting their site at this address:

https://jellyfin.org/clients/

The AppleTV (TVOS) Apps are 3rd party for now, but Jellyfin is working on their own AppleTV app as well.

I have both Infuse, and MrMC on my TVOS, and both work well.  I do use Infuse more, as I simply prefer the look and functionality of it.

If you're a Plex or Emby user, then you know exactly what Jellyfin is. It's the open source version that doesn't charge you (yet, anyway) for the ability to get to your media from outside your network, or to use add-ons that just make sense for a media player.

It has come a long way since my first video on it, and it's only gets better and better. The Jellyfin team is constantly putting out great, new updates, and I can't give it enough stars to make you understand how excellent this open source software is.

 

Installation

What You'll Need

  • A Host Machine / Server to run it on
  • Docker-CE
  • Docker-Compose
  • (optional) Portainer-CE
  • (optional) NGinX Proxy Manager

Installation via a Simple Script

You can easily install Docker-CE, Docker-Compose, Portainer-CE, and NGinX Proxy manager by using this quick install script I created and maintain on Github.  Just use the command:

wget https://gitlab.com/bmcgonag/docker_installs/-/raw/main/install_docker_nproxyman.sh

To download the script to your desired host.

Change the permissions to make the script executable:

chmod +x ./install_docker_nproxyman.sh

and then run the script with the command:

./install_docker_nproxyman.sh

When run, the script will prompt you to select your host operating system, then will ask you which bits of software you want to install.

Simply enter 'y' for each thing you want to install.

At some point, you may be asked for your super user (sudo) password as well.

Allow the script to complete installation.

At this point, you might want to log out and back in, as this will allow you to use the docker and docker-compose commands without the need of sudo in front of them.

Installing Jellyfin

Next, we'll install Jellyfin.  You'll need to know the following information.

  • Where is your media (movies, TV Shows, music) stored?  You need a folder path that takes you to this media.

My media is stored at /mnt/video/arr/data/media. This is how I navigate to the media in my terminal using the cd command.

e.g. cd /mnt/video/arr/data/media

Now, you'll want to make a new folder called "Jellyfin":

mkdir Jellyfin

Move into that folder, and create a new file called "docker-run.txt".

cd Jellyfin

nano docker-run.txt

Now paste the following code block into that file.  You can use the method of highlight, right-click, copy to copy the block.  In your terminal you can use right-click, paste to paste into the file you just opened.

docker run -d \
--volume </path/to/your/>Jelllyfin/config:/config \
--volume </path/to/your/>Jelllyfin/cache:/cache \
--volume </full/path/to/your/media>:/media \
-p 8096:8096 \
--name=jellyfin \
--restart=unless-stopped \
jellyfin/jellyfin

In the text file you paste, you'll need to change the volume lines by replacing anything inside the "<" and ">".

You'll want to replace those placeholders with the actual folder paths to your Jellyfin folder, and your media folder. For me that block looks like:

docker run -d \
--volume /home/brian/docker/Jelllyfin/config:/config \
--volume /home/brian/docker/Jelllyfin/cache:/cache \
--volume /mnt/video/arr/data/media:/media \
--net=host \
--name=jellyfin \
--restart=unless-stopped \
jellyfin/jellyfin

Once, everything is set properly, you can save the file with CTRL+O, then press Enter to confirm, and next use CTRL + X to exit the nano editor.

Finally, to pull down, and run Jellyfin, you'll simply display the contents of the docker-run.txt file with the command:

cat docker-run.txt

Then highlight the code once more, right click, and copy.  Next, right click at the command prompt (the blinking cursor), and select paste.

Press Enter on your keyboard, and the image will start to pull down from DockerHub.

Docker-Compose

If you prefer docker-compose, here's a docker-compose.yml for you to work with instead:

version: '3.3'
services:
    jellyfin:
        volumes:
            - '</path/to/your/>Jelllyfin/config:/config'
            - '</path/to/your/>Jelllyfin/cache:/cache'
            - '</full/path/to/your/media>:/media'
        ports:
            - '8096:8096'
        container_name: jellyfin
        restart: unless-stopped
        image: jellyfin/jellyfin

You can run the docker-compose.yml file by using the command:

dockeer-compose up -d

Let it finish, then give it just a minute or so to get the Jellyfin app up and running.

Now, in your browser (Firefox, Chrome, Edge, Vivaldi, Brave, Opera, etc) navigate to your host machine's IP address and port 8096.

For me, I go to http://192.168.10.26:8096 . Your address is likely to be different.

If everything went according to plan, you should see the Jellyfin welcome screen come up. Create an initial account, and use the wizard to setup your media content.  You'll be off to enjoying your own, self hosted content in no time.