{"id":80636,"date":"2023-10-07T16:55:05","date_gmt":"2023-10-07T16:55:05","guid":{"rendered":"https:\/\/linuxiac.com\/?p=80636"},"modified":"2023-10-07T16:55:22","modified_gmt":"2023-10-07T16:55:22","slug":"how-to-install-jellyfin-media-server-with-docker","status":"publish","type":"post","link":"https:\/\/linuxiac.com\/how-to-install-jellyfin-media-server-with-docker\/","title":{"rendered":"How to Install Jellyfin Media Server with Docker"},"content":{"rendered":"\n<p>Have you ever dreamed of setting up your personal Netflix minus the monthly subscription fees? Well, you\u2019re in for a treat! Enter Jellyfin, a fantastic free and open-source media server that puts you in total control of your media collection.<\/p>\n\n\n\n<p>But let\u2019s sprinkle a bit of tech magic on top \u2013 we will use Docker Compose to streamline the installation. If you\u2019re scratching your head thinking, \u201c<a href=\"https:\/\/linuxiac.com\/what-is-docker-container\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker, what?<\/a>\u201c don\u2019t worry! We\u2019ll break everything down into bite-sized, easy-to-follow steps.<\/p>\n\n\n\n<p>By the end of this guide, you&#8217;ll have a spiffy Jellyfin Media Server humming along, ready to serve your favorite shows and movies. So, let&#8217;s dive in!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Prerequisites\">Prerequisites<\/h2>\n\n\n\n<p>Before we set sail, let\u2019s ensure we have all our digital tools in the box. In this light, installing Docker and Docker Compose is required to deploy a containerized Jellyfin.<\/p>\n\n\n\n<p>So, if you don\u2019t already have Docker installed, any of the following guides will be helpful:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/linuxiac.com\/install-docker-on-ubuntu\/\">How to Install Docker on Ubuntu 22.04<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/linuxiac.com\/how-to-install-docker-on-debian-12-bookworm\/\">How to Install Docker on Debian 12 (Bookworm)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/linuxiac.com\/how-to-install-docker-on-almalinux-or-rocky-linux\/\">How to Install Docker on AlmaLinux \/ Rocky Linux<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/linuxiac.com\/how-to-install-docker-on-fedora-linux\/\">How to Install Docker on Fedora<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/linuxiac.com\/how-to-install-docker-on-linux-mint-21\/\">How to Install Docker on Linux Mint 21<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/linuxiac.com\/how-to-install-docker-on-raspberry-pi\/\">How to Install Docker on Raspberry Pi<\/a><\/li>\n<\/ul>\n\n\n\n<p>The other essential component is Docker Compose. Remember, it is provided separately from Docker. Therefore, you must Install Docker before adding Docker Compose; otherwise, Compose will not function.<\/p>\n\n\n\n<p>Installing it is pretty simple, even if it is not already on your Linux system. To&nbsp;<a href=\"https:\/\/linuxiac.com\/how-to-install-and-use-docker-compose\/\">install Docker Compose<\/a>, type the following two commands:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code lang=\"bash\" class=\"hljs language-javascript language-bash\">sudo curl -L <span class=\"hljs-string\">\"https:\/\/github.com\/docker\/compose\/releases\/latest\/download\/docker-compose-linux-$(uname -m)\"<\/span> -o \/usr\/local\/bin\/docker-compose\nsudo chmod +x \/usr\/local\/bin\/docker-compose<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-install-jellyfin-with-docker-compose\">Install Jellyfin with Docker Compose<\/h2>\n\n\n\n<p>It is time to get to the installation, armed with all the necessary tools.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-1-setting-up-working-directory\">Step 1: Setting up Working Directory<\/h3>\n\n\n\n<p>The first step is to create the project directory in which our Docker Compose deployment file will be placed. Then switch to it; from here on, you need to execute all commands further down in this guide from that location.<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code lang=\"bash\" class=\"hljs language-bash\">mkdir jellyfin\ncd jellyfin<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-2-create-a-docker-compose-file\">Step 2: Create a Docker Compose File<\/h3>\n\n\n\n<p>Next, we must create a &#8220;<em>docker-compose.yaml<\/em>&#8221; file, like a blueprint for our Docker setup. This file will define the services, volumes, ports, etc., telling Docker Compose what to do and how to set up our Jellyfin instance.<\/p>\n\n\n\n<p>So, open your favorite text editor and paste the following content into it:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code lang=\"bash\" class=\"hljs language-css language-bash\"><span class=\"hljs-selector-tag\">nano<\/span> <span class=\"hljs-selector-tag\">docker-compose<\/span><span class=\"hljs-selector-class\">.yaml<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code lang=\"yaml\" class=\"hljs language-php language-yaml\">version: <span class=\"hljs-string\">\"3\"<\/span>\nservices:\n  jellyfin:\n    image: lscr.io\/linuxserver\/jellyfin:latest\n    container_name: jellyfin\n    environment:\n      - PUID=<span class=\"hljs-number\">1000<\/span>\n      - PGID=<span class=\"hljs-number\">1000<\/span>\n      - TZ=America\/New_York\n    volumes:\n      - jellyfin-config:\/config\n      - \/home\/linuxiac\/media:\/media\n    ports:\n      - <span class=\"hljs-number\">8096<\/span>:<span class=\"hljs-number\">8096<\/span>\n    restart: unless-stopped\nvolumes:\n  jellyfin-config:<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Of course, <strong>don&#8217;t forget to change<\/strong> the directive &#8220;<em>\/home\/linuxiac\/media<\/em>&#8221; in the file above&#8217;s &#8220;<em>volumes<\/em>&#8221; section to the full path to the directory of the computer on which you are running the dockerized Jellyfin instance, which contains the media content it will stream.<\/p>\n\n\n\n<p>In other words, this directory will be mounted in the Jellyfin container&#8217;s filesystem in &#8220;<em>\/media<\/em>.&#8221; This is where your movies, photos, music, etc., are expected to reside.<\/p>\n\n\n\n<p>For the purposes of this guide, we have placed two directories inside it containing movies and photos.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-media-files-directory.jpg\"><img decoding=\"async\" width=\"942\" height=\"488\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-media-files-directory.jpg\" alt=\"The directory that stores our media content.\" class=\"wp-image-81038\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-media-files-directory.jpg 942w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-media-files-directory-380x197.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-media-files-directory-768x398.jpg 768w\" sizes=\"(max-width: 942px) 100vw, 942px\" \/><\/a><figcaption class=\"wp-element-caption\">The directory that stores our media content.<\/figcaption><\/figure>\n\n\n\n<p>Don&#8217;t forget to change the time zone (&#8220;<em>TZ<\/em>&nbsp;&#8220;) to the correct one for you. A full list of all such can be found&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_tz_database_time_zones\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-3-deploy-jellyfin-with-docker-compose\">Step 3: Deploy Jellyfin with Docker Compose<\/h3>\n\n\n\n<p>With the &#8220;<em>docker-compose.yaml<\/em>&#8221; file defined, we are all set to run our dockerized Jellyfin instance using Docker Compose. So, ensure you are in the directory containing the file, and execute the following command to start and run the container in the background:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code lang=\"bash\" class=\"hljs language-bash\">docker-compose up -d<\/code><\/span><\/pre>\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The Docker image will start downloading. In the end, you should see a screen similar to the one below, informing you that your Jellyfin server installation has been successfully deployed and is up and running.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-deployment-start.jpg\"><img decoding=\"async\" width=\"928\" height=\"515\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-deployment-start.jpg\" alt=\"Install the Jellyfin media server with Docker Compose.\" class=\"wp-image-81050\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-deployment-start.jpg 928w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-deployment-start-380x211.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-deployment-start-768x426.jpg 768w\" sizes=\"(max-width: 928px) 100vw, 928px\" \/><\/a><figcaption class=\"wp-element-caption\">Install the Jellyfin media server with Docker Compose.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-access-amp-configure-jellyfin\">Access &amp; Configure Jellyfin<\/h2>\n\n\n\n<p>Once the container is up and running, you can access the Jellyfin web interface by navigating to &#8220;<strong><em>http:\/\/your-server-ip:8096<\/em><\/strong>&#8221; in your web browser. If you are accessing it from the same machine the container is running on, you can also use &#8220;<em>http:\/\/localhost:8096<\/em>.&#8221;<\/p>\n\n\n\n<p>The Jellyfin wizard will greet you. Select your preferred display language and click &#8220;<em>Next<\/em>.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf001.jpg\"><img decoding=\"async\" width=\"1024\" height=\"579\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf001-1024x579.jpg\" alt=\"Select your preferred language.\" class=\"wp-image-81077\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf001-1024x579.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf001-380x215.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf001-768x434.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf001.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Select your preferred language.<\/figcaption><\/figure>\n\n\n\n<p>The Jellyfin server&#8217;s admin account will be created on the next screen. Enter a username and password of your choice and continue by clicking &#8220;<em>Next<\/em>.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf002.jpg\"><img decoding=\"async\" width=\"1024\" height=\"766\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf002-1024x766.jpg\" alt=\"Create Jellyfin's admin account.\" class=\"wp-image-81080\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf002-1024x766.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf002-380x284.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf002-768x575.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf002.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Create Jellyfin&#8217;s admin account.<\/figcaption><\/figure>\n\n\n\n<p>It is time to tell Jellyfin where our media content is. Click on the &#8220;<em>Add Media Library<\/em>&#8221; button.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf03.jpg\"><img decoding=\"async\" width=\"1024\" height=\"667\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf03-1024x667.jpg\" alt=\"Setting up a media directory.\" class=\"wp-image-81083\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf03-1024x667.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf03-380x248.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf03-768x500.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf03.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Setting up a media directory.<\/figcaption><\/figure>\n\n\n\n<p>Select the content type, such as &#8220;<em>Movies<\/em>,&#8221; &#8220;<em>Music<\/em>,&#8221; &#8220;<em>Photos<\/em>,&#8221; etc., then click on the plus (&#8220;<em>+<\/em>&nbsp;&#8220;) button to specify where the directory is physically located in the container&#8217;s file system. In our case, we will add a directory containing movies.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf04.jpg\"><img decoding=\"async\" width=\"1024\" height=\"744\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf04-1024x744.jpg\" alt=\"Setting up a media directory.\" class=\"wp-image-81092\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf04-1024x744.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf04-380x276.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf04-768x558.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf04.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Setting up a media directory.<\/figcaption><\/figure>\n\n\n\n<p>To navigate, simply click on the directory names that you see until the complete path &#8211; for example, &#8220;<em>\/media\/movies<\/em>&#8221; &#8211; is presented in the &#8220;<em>Folder<\/em>&#8221; field.<\/p>\n\n\n\n<p>Important clarification! This is the path to the filesystem inside the container, referenced in the &#8220;<em>volumes<\/em>&#8221; part of our &#8220;<em>docker-compose.yaml<\/em>&#8221; file. Not to be confused with that of the server on which the container itself is running.<\/p>\n\n\n\n<p>In other words, on our host, the directory is, for example, &#8220;<em>\/home\/linuxiac\/media<\/em>,&#8221; but inside the container, it is mounted as &#8220;\/media.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf05.jpg\"><img decoding=\"async\" width=\"1024\" height=\"744\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf05-1024x744.jpg\" alt=\"Setting up a media directory.\" class=\"wp-image-81101\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf05-1024x744.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf05-380x276.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf05-768x558.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf05.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Setting up a media directory.<\/figcaption><\/figure>\n\n\n\n<p>The directory will be previewed in the &#8220;<em>Folders<\/em>&#8221; section so we can move on by clicking the &#8220;<em>OK<\/em>&#8221; button, keeping the other settings at default.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf06.jpg\"><img decoding=\"async\" width=\"1024\" height=\"744\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf06-1024x744.jpg\" alt=\"Setting up a media directory.\" class=\"wp-image-81110\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf06-1024x744.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf06-380x276.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf06-768x558.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf06.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Setting up a media directory.<\/figcaption><\/figure>\n\n\n\n<p>On the next screen, you will view the currently added directories. If you want, add others following the steps described above.<\/p>\n\n\n\n<p>Don&#8217;t worry about having to add all at once now. At a later stage, you can modify the settings of each one, remove, or add a new one, as we will show you at the end of this guide. So, just click on the &#8220;<em>Next<\/em>&#8221; button to continue. We&#8217;re almost done!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf07.jpg\"><img decoding=\"async\" width=\"1024\" height=\"744\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf07-1024x744.jpg\" alt=\"View the added directories.\" class=\"wp-image-81119\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf07-1024x744.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf07-380x276.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf07-768x558.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf07.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">View the added directories.<\/figcaption><\/figure>\n\n\n\n<p>Choose the language you prefer to retrieve metadata for library media content and click &#8220;<em>Next<\/em>.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf08.jpg\"><img decoding=\"async\" width=\"1024\" height=\"744\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf08-1024x744.jpg\" alt=\"Choose the preferred metadata language.\" class=\"wp-image-81131\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf08-1024x744.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf08-380x276.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf08-768x558.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf08.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Choose the preferred metadata language.<\/figcaption><\/figure>\n\n\n\n<p>We strongly recommend leaving &#8220;<em>Allow remote connections to this server<\/em>&#8221; checked on the next screen. Otherwise, you won&#8217;t be able to connect other devices, such as your phone, tablet, smart TV, etc., to the Jellyfin server.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf09.jpg\"><img decoding=\"async\" width=\"1024\" height=\"744\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf09-1024x744.jpg\" alt=\"Set up remote access.\" class=\"wp-image-81137\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf09-1024x744.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf09-380x276.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf09-768x558.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf09.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Set up remote access.<\/figcaption><\/figure>\n\n\n\n<p>And that&#8217;s it &#8211; we&#8217;re ready! Click the &#8220;<em>Finish<\/em>&#8221; button to complete and save the settings you made to the Jellyfin server.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf10.jpg\"><img decoding=\"async\" width=\"1024\" height=\"744\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf10-1024x744.jpg\" alt=\"Completing the Jellyfin server setup.\" class=\"wp-image-81146\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf10-1024x744.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf10-380x276.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf10-768x558.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf10.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Completing the Jellyfin server setup.<\/figcaption><\/figure>\n\n\n\n<p>You will be redirected to a screen to login to your Jellyfin server. Enter the admin username and password you created earlier and hit &#8220;<em>Sign In<\/em>.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf11.jpg\"><img decoding=\"async\" width=\"1024\" height=\"671\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf11-1024x671.jpg\" alt=\"Log in to the server.\" class=\"wp-image-81149\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf11-1024x671.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf11-380x249.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf11-768x503.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf11-870x570.jpg 870w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf11.jpg 1096w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Log in to the server.<\/figcaption><\/figure>\n\n\n\n<p>The dashboard of your brand new Jellyfin server will welcome you, and as we can see, our &#8220;<em>Movies<\/em>&#8221; library is there. You can click on it to explore its content.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf12.jpg\"><img decoding=\"async\" width=\"1024\" height=\"667\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf12-1024x667.jpg\" alt=\"Jellyfin media server successfully instaled using Docker Compose.\" class=\"wp-image-81155\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf12-1024x667.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf12-380x247.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf12-768x500.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf12.jpg 1404w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Jellyfin media server successfully installed using Docker Compose.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-add-edit-remove-media-libraries\">Add, Edit, Remove Media Libraries<\/h2>\n\n\n\n<p>Click the hamburger menu in the upper left corner of the screen and choose &#8220;<em>Dashboard<\/em>&#8221; from the list of options to add, edit, and remove a library from the Jellyfin server.<\/p>\n\n\n\n<p>Then, choose &#8220;<em>Libraries<\/em>&#8221; from the left and hit the &#8220;<em>+<\/em>&#8221; button to add a new one. To edit the settings of an existing one or remove it, use the icon with the three vertical dots on it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf14.jpg\"><img decoding=\"async\" width=\"1024\" height=\"706\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf14-1024x706.jpg\" alt=\"Add, edit, and remove media libraries.\" class=\"wp-image-81170\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf14-1024x706.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf14-380x262.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf14-768x529.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/jellyfin-conf14.jpg 1323w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Add, edit, and remove media libraries.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-jellyfin-client-applications\">Jellyfin Client Applications<\/h2>\n\n\n\n<p>To install and connect to your Jellyfin media server, <a href=\"https:\/\/jellyfin.org\/downloads\/clients\/\" target=\"_blank\" rel=\"noreferrer noopener\">click this link<\/a> to get the client apps for various&nbsp;devices, including smartphones, tablets, and smart TVs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2>\n\n\n\n<p>And there you have it &#8211; a powerful, flexible, and open-source media server at your fingertips, ready to stream content to all your devices. Remember, the beauty of this setup is that it is entirely yours to customize, explore, and expand as your media collection grows and evolves.<\/p>\n\n\n\n<p>As you can see, deploying the Jellyfin media server with Docker Compose simplifies the installation and management of the media server, making it accessible and easy to set up.<\/p>\n\n\n\n<p>We highly recommend you check out our &#8220;<a href=\"https:\/\/linuxiac.com\/how-to-install-and-use-docker-compose\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Install and Use Docker Compose<\/a>&#8221; guide to familiarize yourself with the basic Docker Compose commands and easily manage your new Jellyfin deployment.<\/p>\n\n\n\n<p>Furthermore, if you&#8217;re wondering, &#8220;OK, but how can I update the Jellyfin container when a new version comes out?&#8221; there&#8217;s no room for worry. We\u2019ve got you covered! With the help of Watchtower and our detailed and easy-to-follow guide, \u201c<a href=\"https:\/\/linuxiac.com\/watchtower-automatically-update-docker-container-images\/\">Watchtower: Automatically Update Docker Container Images<\/a>,\u201d you\u2019ll always have the most up-to-date Jellyfin version.<\/p>\n\n\n\n<p>Finally, we also recommend checking out the <a href=\"https:\/\/jellyfin.org\/docs\/general\/installation\/container\" target=\"_blank\" rel=\"noreferrer noopener\">official documentation<\/a>.<\/p>\n\n\n\n<p>Thank you for choosing to sail through this digital endeavor with us. Until our next tech adventure, happy streaming, dear friends!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Follow our step-by-step guide to installing Jellyfin Media Server using Docker Compose. Enjoy a free, open-source streaming solution today!<\/p>\n","protected":false},"author":10,"featured_media":80639,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,4417],"tags":[5453,3188,4983],"class_list":["post-80636","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","category-linux-knowledge","tag-jellyfin","tag-media","tag-streaming"],"blocksy_meta":{"has_hero_section":"default","hero_section":"type-2","pageTitleFont":{"family":"Default","variation":"Default","size":{"desktop":"2.8em","tablet":"2.8em","mobile":"2.8em","__changed":[]},"line-height":"CT_CSS_SKIP_RULE","letter-spacing":"CT_CSS_SKIP_RULE","text-transform":"CT_CSS_SKIP_RULE","text-decoration":"CT_CSS_SKIP_RULE"},"hero_elements":[{"id":"custom_title","enabled":true,"heading_tag":"h1","title":"Home","__id":"5Uyp1ebGT2qeTq6SBKiIX"},{"id":"custom_description","enabled":false,"description_visibility":{"desktop":true,"tablet":true,"mobile":false},"__id":"1HJBri2ABQXqcla7xivIv"},{"id":"custom_meta","enabled":true,"meta_elements":[{"id":"author","enabled":true,"label":"By","has_author_avatar":"no","avatar_size":25,"__id":"StEqEI3GCzoIN_p3z_qdd"},{"id":"post_date","enabled":true,"label":"On","date_format_source":"default","date_format":"M j, Y","__id":"Gh5NIp26LpSq2xB9y2CPY"},{"id":"updated_date","enabled":false,"label":"On","date_format_source":"default","date_format":"M j, Y","__id":"qQ6y-S2I04ChENd9CWWhi"},{"id":"categories","enabled":false,"label":"In","style":"simple","__id":"XKr8IOW4K-YEUBTpA27vl"},{"id":"comments","enabled":true,"__id":"ctotg9TNnORlI3_R6L9yU"}],"page_meta_elements":{"joined":true,"articles_count":true,"comments":true},"__id":"KBsDrPR_WBvamKGrdFMsT","meta_type":"label"},{"id":"breadcrumbs","enabled":false,"__id":"3l94ozR5tYoQhePD3bkWr"}],"hero_structure":"normal","page_title_bg_type":"custom_image","custom_hero_background":{"attachment_id":80642,"url":"https:\/\/linuxiac.com\/wp-content\/uploads\/2023\/10\/docker-jellyfin-header-1024x237.jpg"},"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/posts\/80636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/comments?post=80636"}],"version-history":[{"count":0,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/posts\/80636\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/media\/80639"}],"wp:attachment":[{"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/media?parent=80636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/categories?post=80636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/tags?post=80636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}