Complete tutorial for creating a media server with Plex or Jellyfin

  • Setting up a home media server involves choosing between Plex, Jellyfin, or Emby and understanding their differences in usability, privacy, and business model.
  • A well-organized library (folder names, files, and subtitles) is key for the server to properly identify the content and download metadata.
  • Docker and the use of volumes facilitate the installation, migration, and maintenance of Plex, Jellyfin, or Emby, allowing the addition of extra tools such as Tautulli or Tailscale.
  • The final choice depends on the balance you seek between free software, lack of subscriptions, hardware performance, and ease of daily use.

Tutorial for creating a media server with Plex or Jellyfin

Setting up your own home media server has become something almost anyone can do. With an old computer, a NAS, or even a Raspberry Pi, you can create a small “Home Netflix” where you can organize movies, series, music and photos and watch them from your mobile, TV or laptop as if you were just another streaming service.

In this tutorial you will see, step by step and in detail, how to create a media server using plex Jellyfin, what are the advantages and disadvantages of each, and how to run them in DockerThis guide will cover what you need to consider regarding hardware and how to add extras like monitoring with Tautulli or remote access with Tailscale. The goal is that, by the time you finish reading, you'll have a clear understanding of which option interests you and how to implement it without getting overwhelmed by the configuration.

What exactly is a home media server?

A media server is simply a device—a PC, a NAS, a mini PC, or a Raspberry Pi—where you store your content and stream it to other devices, so you can Play your movies, series or music on your smart TV, mobile phone, tablet or any computer from your home (and even from outside your home, if you configure it).

The beauty of these platforms is that they don't just share files; They organize your library, download covers, synopses, cast lists, ratings, and subtitles.This creates an interface very similar to that of Netflix, Disney+, or HBO. You browse by genre, pick up where you left off, and see what's been played recently.

To achieve this we need two fundamental pieces: on the one hand the media server (Plex, Jellyfin or Emby), which is responsible for indexing and serving the content; on the other hand, the various clients (apps for TV, mobile, browser, etc.) that connect to the server and allow content to be played conveniently.

In this context we will talk mainly about Plex and Jellyfin, without forgetting Emby or more basic solutions like Synology's Video Station, so that you have a realistic comparison of what each one offers and where performance or usability problems can start.

Plex, Jellyfin and Emby: how they are similar and how they are different

If you're setting up a media server, you'll probably wonder which is better: Plex, Jellyfin, or Emby. Ultimately, all three fulfill the same basic purpose: create a centralized media library to stream to other deviceswith a polished interface and options for users, profiles, and metadata.

Plex is the veteran and, for many people, the most polished option in terms of usability. Its interface is very intuitive, it easily detects what you were last viewing, and it's usually quite efficient. It's efficient in resource usage when properly configured. However, it's proprietary software, requires account registration, and several advanced features are locked behind Plex Pass.

Jellyfin was born as A free and completely open-source alternative to Plex and EmbyIt's open source (GPL v2.0 license), doesn't require you to create an account with any external service, doesn't collect your activity, and has no device limits or subscription-based feature restrictions. Its project philosophy and privacy approach are very appealing, and its community maintains clients for almost any operating system and provides constant updates.

Emby occupies an intermediate point: it was the origin from which Jellyfin branched off. It shares many ideas with Jellyfin, but with a freemium model.The premium version adds features like live TV, broadcast recording, a cinema mode, and more advanced synchronization. It's powerful, but if you want to take full advantage of it, you'll have to pay for a monthly subscription or a lifetime membership.

If you're looking to avoid relying on external accounts or subscriptions, Jellyfin is the best fit. If your priority is comfort, polished interface, and very mature official appsPlex remains the favorite choice of many users, even those who have tried migrating to Jellyfin for several months and ended up returning due to everyday usage details.

Creating a “home Netflix”: requirements and recommended hardware

At the hardware level, nothing extraordinary is needed, but it is important to be clear that Video transcoding (converting one format to another on the fly) is quite CPU-intensive.And if you intend to do it with several users at the same time, you can bring a modest server to its knees.

For typical home use with one or two simultaneous streams on the local network, a Slimbook One-type mini PC, an older Mac mini, a mid-range NAS, or even a modern Raspberry Pi can work, provided you keep in mind that Formats such as HEVC or AV1 and high resolutions may require hardware acceleration or at least a slightly more capable processor.

On specific Synology NAS devices, such as the DS420+, Jellyfin has been observed to be able to saturating the CPU to 100% without a simple solutionWhile Plex or Emby tend to perform better thanks to their native applications adapted to the platform. These details are important if you don't want your NAS to spend all day "snorting".

You'll also need to think about storage: ideally you should have dedicated drives for your content (movies, series, music, photos)organized by folders and with a coherent structure that then facilitates automatic identification and downloading of metadata and subtitles.

Organize your library properly: folder names, files, and subtitles

Tutorial for creating a media server with Plex or Jellyfin

One of the key points for Plex or Jellyfin to correctly recognize movies and series is the names of the folders and video filesIf you do it right, the system will effortlessly download covers, synopses, and cast lists, and you won't have to edit anything manually.

The most widespread recommendation is to use the format Movie title (year) This applies to both the folder and the video file. For example: Furious A Mad Max Saga (2024) o Gone With The Wind (1939)so that the video file is named exactly the same as the folder that contains it.

The approach is similar for TV series, but you add seasons and episodes to the filename. Most media servers work particularly well with this format. Series name S01E01However, you can follow the official naming guidelines to further refine and avoid confusion with alternative versions or cuts.

For subtitles, the file name should share the same name as the movie or episode, followed by a period and the two-letter language code. A typical example would be Gone With The Wind (1939).en.srt for English and Gone With The Wind (1939).es.srt for Spanish, which allows Jellyfin or Plex automatically assign subtitles to the correct content and display the language in the dropdown menu without you having to touch anything.

If you maintain this discipline from the beginning, your library will grow in an orderly fashion and the server will be able to display a clean interface, with everything clearly identified and no strange duplicatesThis is essential if you're going to share access with other people at home or with friends.

Install and configure Jellyfin step by step

Jellyfin offers official installers for Linux, Windows, macOS, and Docker, as well as community-sourced packages for some NAS devices. On Windows you can download the server directly from the official repository, choosing the version that's right for your CPU (in practice, almost always AMD64).

After installation on Windows, the server opens by default on port 8096, which can be accessed from the browser using the URL http://localhost:8096From there you will start a wizard where You choose the language, create the administrator user, and add the first libraries. of media, which can be movies, series, music, photos or home videos.

If you're going to use Jellyfin under Docker, the most common image is LinuxServer. A typical service in a docker-compose package includes volumes for configuration and the transcoding folder, as well as the paths to your TV shows and movies folders. The important thing is Properly map the container's internal routes to your local routes, For example:

volumes: – D:\Server-config\jellyfin\config:/config – D:\Documents\Movies:/moviesand so on, adjusting to your operating system or the NAS directory scheme.

In the initial setup wizard, you'll be able to decide whether to allow remote connections to the server. This is essential. Leave the "Allow remote connections to this server" option enabled. If you want to play content from your mobile phone, your TV, or any device that is not on the same physical computer, even if you are only going to use it within the local network.

Once the wizard is complete, you can log in with your username and start exploring the Movies, TV Shows, or Music sections. You'll see how Jellyfin begins to... index and download metadata, covers and background imagesand how the home screen is filled with recent, most viewed content and recommendations.

Recommended plugins and key settings in Jellyfin

One of Jellyfin's greatest strengths is its plugin system. Thanks to its open-source nature, the community maintains a set of plugins that greatly expand the server's functionalityfrom metadata management to integration with other applications.

Among the most interesting is the plugin for TMDb, which is responsible for using the metadata of your movies and series to download descriptions, cast information, main images, and other visual resources. This is largely what makes Jellyfin a well-presented "home Netflix."

Another very useful plugin is Open Subtitles, which allows you to download subtitles from the internetYou'll need an account on the platform and to configure your API key, but from there you can automate obtaining subtitles for a large part of your library without having to search for them manually.

If you like the interface to come alive, you can activate plugins like Local Intros, which plays a snippet of the background video when you hover over a titlemimicking the behavior of many streaming platforms. You can disable it for specific content if you find it annoying.

Within the control panel, the section of Reproduction and Conversion It's especially important. From there you can enable it. hardware acceleration of transcoding and support for codecs such as HEVC or AV1This is highly recommended if your computer has a compatible GPU and you want to prevent the CPU from spiking during streams.

We must not forget the part about DLNA, which in recent versions of Jellyfin is offered as a pluginEnabling it allows any device compatible with this protocol (virtually all TVs and many players) to view the server's content without needing to install a specific client, although the interface will be more basic.

Install Plex in Docker and migrate from Jellyfin

If you decide to go with Plex, or if you're coming from Jellyfin and want to try Plex again to see if you find it more convenient, one of the cleanest ways to get it is through Docker containers managed with docker-composeusing images like LinuxServer, which are very popular in the community.

A typical Plex setup in docker-compose defines the container, the image, and environment variables (such as PUID, PGID, TZ or VERSION), the volumes for configuration and movie and series folders, and the network mode (usually host to simplify ports, although they can be exposed one by one).

In this scenario, many users have found that when switching from Jellyfin to Plex, the physical server stops "bobbing" as much, suggesting that Implementing Plex may be more efficient in some specific cases or at least easier to adjust in terms of transcoding and streaming quality.

Content migration, contrary to what it may seem, is very simple. In practice, it only requires to mount the same volumes in Plex where the Jellyfin libraries were locatedAs long as the folder structure and names are correct, Plex will be able to read your collection and rebuild its own database with album art and metadata without you having to move the files.

After lifting the container and gaining access to http://{serverIP}:32400/managePlex will ask you to register or log in with your account. From there you will be able to Create libraries for movies, TV shows, music, and photospointing them to the paths of your data volumes. Plex itself will then scan, identify, and present your content with its characteristic interface.

Why some users are returning from Jellyfin to Plex

It may happen that after several months of using Jellyfin, with all the enthusiasm of free software and no subscriptions, you start to notice minor inconveniences in daily life that make you consider going back to Plex. It's usually not a problem of specific features, but of how it feels.

Among the usual comments is the fact that Sometimes it's hard to quickly find what you were last watchingOr perhaps the layout of sections and recent lists doesn't quite match your habits. These are minor details, but when you use the server daily, they add up.

There are also those who encounter performance or resource consumption problems in specific situationsEspecially on certain NAS or miniPCs, Jellyfin may have more difficulty transcoding multiple simultaneous streams, while Plex seems to handle the load better on the same machine.

The other side of the coin is that Plex forces you to Register and link your server to a cloud accountThis isn't something everyone is happy about. Furthermore, the mobile app requires payment to unlock all features, and Plex Pass adds even more premium features. If you're looking to avoid any kind of subscription, this model might not be for you.

Therefore, in the end the choice depends more on your priorities: if you put freedom, privacy and zero feesJellyfin is hard to beat; if you prioritize total convenience, a well-tested ecosystem, and apps ready to use on almost any device, Plex remains a safe bet.

Data management in Docker: volumes and permissions

When running Plex, Jellyfin, or Emby in Docker containers, how you manage storage is key. It's highly recommended to use Docker volumes for configuration and persistent data, instead of simple bind mounts, because they are easier to migrate, back up and manage from the Docker CLI or API itself.

Volumes are independent of the host system's directory structure and work in both Linux and Windows containers. Therefore, if you need to move the server to another machine or rebuild the stack, you can simply... Lift the containers again and reassociate the volumeswithout fear of losing the configuration or metadata.

For content folders (movies, series, music) it is common to use bind mounts pointing to specific host pathsThis allows you to manage your files as usual from the operating system or from a NAS and, at the same time, offer them to the container under consistent paths such as /movies or /tv.

Using volumes also improves security and sharing between containers. For example, you can have a dedicated configuration volume shared by multiple instances or auxiliary services, keeping it under control. user and group permissions are managed through variables such as PUID and PGIDthus avoiding headaches with inaccessible files.

If you're also planning on making regular backups, documenting which volumes each service uses will simplify things: all you'll need to do is... support those volumes and content routes to be able to recover your multimedia ecosystem in case of disaster or hardware change.

Monitor Plex with Tautulli

If you like to control what's viewed, when, from where, and at what quality on your Plex server, Tautulli is a practically indispensable tool. It's about an advanced monitoring system for Plex servers which offers you detailed statistics, customized reports, and real-time notifications about server activity.

Tautuli records each reproduction with Very specific information: user viewing the content, device used, stream quality, approximate location, and session durationWith this data, it generates graphs, rankings of most viewed content, most active users, and viewing trends.

Also, you can set alerts and notifications in services such as Telegram, Discord, email or SlackFor example, to know when someone starts watching something, when certain usage thresholds are reached, or if playback errors occur. All of this can be customized by user, content type, or specific event.

Another of its strengths is the part of Reporting and automationTautulli allows you to create regular reports with detailed metrics and, depending on what happens, launch automatic actions, such as ending sessions, lowering quality, or even turning off the server if it has been without active playback for a while.

Plex user management also benefits from Tautulli. You can monitor the behavior of different profiles, limit streaming qualities, or apply restrictions Based on very specific parameters, this is very useful if you share your library with family and friends and don't want anyone to overload your connection with 4K streams all the time.

In terms of deployment, Tautulli fits perfectly into a Docker environment. There is an official image that you can Set up with its own configuration volume, port 8181, and labels to integrate it behind a reverse proxy like Traefik, thus facilitating secure access from any device with a browser.

Secure remote access to Jellyfin with Tailscale

If you want to enjoy your Jellyfin server when you're not at home, without dealing with port forwarding or exposing services to the internet, Tailscale is a very convenient solution. It's about A VPN designed to create a private network between your devices.connecting them as if they were on the same LAN, but without using it as a typical "commercial VPN" to browse from another country.

The basic operation is simple: you register with Tailscale, install the application on the devices you want to connect (including the server), and automatically, They all become part of a private virtual networkEach device receives its own Tailscale IP address that you can use to access its internal services.

In the case of Jellyfin, once the Tailscale app is installed on the server and on your mobile phone, tablet or laptop, all you have to do is Copy the Tailscale server IP address and add port 8096In the browser you would use something like http://ip-address-tailscale:8096, and from the official Jellyfin app you would enter that same URL when it asks for the server address.

The great advantage of this approach is that You don't have to open ports on the router or mess with complicated network settings.All traffic is encrypted through the Tailscale network, and only devices you have authorized in your account can view and access the media server.

With this combination, Jellyfin becomes a multimedia center accessible from anywhere in the world in a fairly transparent wayWhile maintaining a very respectful approach to privacy and with total control over who can connect.

Emby and Video Station: other alternatives to consider

Although the focus is usually on Plex and Jellyfin, Emby remains a solid option for those seeking a middle ground between the two. Its philosophy is similar to Jellyfin's, but with a premium layer that enables features such as live TV, program recording, cinema mode, and advanced synchronizationin exchange for a monthly fee or a one-time payment.

Setting up Emby in Docker is very similar to setting up Jellyfin: you define the LinuxServer image, the volumes for configuration and media folders, and ports 8096 and 8920 (the latter for secure connections). After starting the container, you access the wizard in http://{ServerIp}:8096, you create the administrator user, You add the libraries of movies and series and ready.

If you're a Synology user, you'll also have noticed that the NAS devices come pre-installed with Video Station, a Synology proprietary solutionAlthough it may suffice for very basic use, the experience offered by advanced users is that, compared to Plex, Jellyfin or Emby, it falls quite short in both interface and handling of seasons, episodes and metadata.

Some typical Video Station problems include episodes from the same season that appear out of order or in separate blocksOr, a much less careful management of the content information. If you're looking for something more serious for your collection, any of the three previous alternatives usually represents a significant leap in quality.

Ultimately, the sensible thing to do if you're starting out is to try Plex, Jellyfin, and Emby for a while, with your own library and devices, and see what happens. which one best suits your content consumption habits and hardwareThe only one that is completely free in all its main functions is Jellyfin, but that doesn't mean it will always be the one you like the most.

With everything you've seen, you now have a solid foundation to decide whether you want to opt for a free media server like Jellyfin, the convenience and polish of Plex, the balance of Emby, or even native NAS solutions, and how to deploy them in Docker, organizing your volumes well, optimizing transcoding, and adding extras like Tautulli or Tailscale to get the most out of your "home Netflix".