Home Media Server

How to fill all the terabytes and get on the FBI most wanted list without ever leaving your sofa

Home Media Server

Linuxserver.io provides docker images of popular projects that work very well together. Coincidentally they provide all the images one needs to setup a complete “Home Media Server” (and then some) on your NAS, on a HTPC (Home Theater PC) or even on your main system.

This first part covers:

Other parts:

  • All these containers are becoming unwieldy fast: Container Management
  • Looking for a complete out-of-the-box opinionated solution instead: Prebuilt boxes
  • If you do not want to stop at series/movies, take a look at Out of scope for inspiration

Actually setting up the containers is covered in the second part. You’ll find the docker-compose file there! 😃

The Goal

My goal was to have a system in place that downloads content and then have it available in a pretty UI, ready to cast anything downloaded to my TV via the Google Chromecast from my tablet. Preferably completely free and open-source.

Luckily many developers have been busy bees so that proved pretty easy, everything is out there and I was positively thrilled to find out that most UIs seem to be written in React.
On the way I even got myself a little extra: When I add a movie to my IMDB watchlist, it will start downloading it.

Filling in the dots

While it may seem daunting at first, it was pretty easy and fast to setup really (if you already know what you’re going to use anyway). The real fun begins after installation, it’s the configuration that will take most time - tinkering with the settings till everything is just right for you. Do you want to download 600MB-2GB movies? Or 4GB movies? 16GB? Do you need subtitles? What do you want to watch?

Anyway, I came up with something that looks like this:

The Goal

Breakdown

Some choices needed to be made because pretty much every docker container in the diagram above has other open-source or proprietary alternatives you could opt for instead.

Need more details? Reddit is an excellent source of information for everything Sonarr/Radarr.

Jellyfin - The Media Server

Jellyfin Logo

jellyfin/jellyfin : The Free Software Media System

Went with the new kid on the block Jellyfin. Point it to a folder with movies and series and watch it go! Has apps for Android, Apple and a website with Chromecast support. There are also some plugins like for OpenSubtitles, Playback statistics. For me there were no must-have plugins though.

What it looks like

Basically exactly what you’d expect:

Jellyfin Movie Library
Jellyfin Movie Details

Sonarr & Radarr - Library Management

Sonarr Logo

Sonarr/Sonarr : Smart PVR for newsgroup and bittorrent users.

Sonarr: Keep track of what series you want to follow. It will download new episodes as they are aired. There is even a calendar so you can keep track of things to watch each week :)


Radarr Logo

Radarr/Radarr : A fork of Sonarr to work with movies à la Couchpotato.

Radarr: Pretty much Sonarr but for movies. Monitor announced movies and even lists, like the IMDB Top250 or these TrakTV lists of famous directors.

Point the /movies and /series folders to an empty folder, not to a directory with existing content. You’re best off first configuring the apps and then importing any existing files from somewhere else. It’s probably not a bad idea to try stuff out with a copy of some of your files first 😀

Some other features:

  • Settings > Media Management: Automatic renaming and organizing
  • Settings > Profiles & Quality: Define file sizes and profiles which you want/don’t want
  • Wanted > Manual Import: Import existing content from your filesystem
  • Automatic Search and Manual Search for downloading new content
  • Activity: Visualization and basic manipulation of content being downloaded
  • Settings > Connect: Send notifications of events to API, Email, Slack, Growl, Jellyfin, …
  • Settings > Lists: Define an automatic instream of new movies by following IMDB, TrakTV, RSS, … lists & feeds
  • Monitored or Not Monitored: Should it download automatically
  • A nice web UI for all that

One predefined instream is StevenLU: a list of popular movies based on a series of heuristics (theater visits). Which sounds pretty cool but is currently broken due to Corona 😃

You’ll definitely want to tinker with the profiles & quality because if you don’t, it will just go for the biggest and baddest Remux-2160p release and you are looking at 40-80 gigs for one movie.

Extra’s

roboticsound/Pulsarr : Browser extension to add movies/series directly from IMDB & TVDB

l3uddz/traktarr : Script to add new series & movies based on Trakt lists.

faulander/P4S : Premieres for Sonarr - find all the new shows you’ve never known you’re interested in!

gilbN/theme.park : A collection of themes/skins for your favorite apps.

Downloading Stuff

Those movies aren’t gonna download themselves.

Sonarr/Radarr don’t know where to find content nor how to download said content. You’ll need Indexer(s) and Download Client(s) for that and configure them in Sonarr/Radarr.

But first you’ll have to choose between Torrents and Usenet, or you can go for both.

Torrents

There are free indexers out there (one starts with pirate and ends with bay😃) or you may already have access to a private indexer. A few, for example PassThePopcorn, can be configured directly in Sonarr but if you are relying on free offerings, you may not want to maintain the connection to multiple indexers manually (after all they tend to change urls every so often).

Prowlarr - Indexers

Prowlarr Logo

At this point I would suggest going with Prowlarr instead of Jackett for new setups!

Prowlarr/Prowlarr : Jackett alternative but for both Usenet & Torrents (with automatic sync)

Jackett - DEPRECATED

Jackett Logo

Jackett/Jackett : API Support for your favorite torrent trackers.

Jackett is the perfect companion for this. It maintains a list of preconfigured indexers for you. Its uniform search API is used by Sonarr and Radarr.

If you’re not sure which indexers to add from Jacketts list, check Reddit: Some free indexer recommendations

Once you’ve added one/some indexers in Jackett, you can configure them in Sonarr in Settings > Indexers > Torznab > Presets.

Transmission - Download Client

Transmission Logo

transmission/transmission : Transmission BitTorrent client


Once Sonarr has received matching torrents from your favorite indexers, it will figure out which one to pick based on your Quality/Profile settings and put the torrent in a folder for your Download Client to pick up.

I went with Transmission and was simply horrified by the default combustion-release UI. Luckily there is the alternative transmission-web-control UI which is very similar to a classic desktop BitTorrent client. You could also go with the kettu UI if you prefer something very basic.

Usenet

TL&DR: Pay cash for a Provider and Indexer and worry no more about seeding, slow download speeds or third parties snooping in on your download history.

Longer Version

Usenet? Yes, that’s still a thing. Unfortunately it’s no longer a thing. Meaning that there is lots and lots of content out there but also that your ISP most likely does not include a Usenet Provider. So you may need to pay for that (around $8 to $13 per month for unlimited download). Once you’ve got a Usenet provider, you have access to the content but no idea where to find it. Another, potentially not-free solution here: A Usenet Indexer. While for the usenet provider you’re looking at a monthly subscription, for the indexer you can usually get off the hook for a one time fee. A provider also has retention, ranging from about 1 year to up to 10 years after which content posted earlier will no longer be available for download.

So with all that hassle why would you ever opt for Usenet at all?

  • A provider usually provides a download speed above that of your ISP
  • There are no seeders/leechers nor download/upload ratios nor abandoned torrents (but there is retention)
  • Could use Usenet by default and fallback to Torrents when the content is not available
  • Use SSL to connect with your provider and your ISP nor the government can see what you’re downloading from Usenet

Download Clients

NZBGet is the latest and greatest in both speed and UI but SABnzbd still has most features and most integration support with other projects.

nzbget/nzbget : Efficient Usenet Downloader

sabnzbd/sabnzbd : The automated Usenet download tool

Indexers

theotherp/nzbhydra2 : Usenet meta search. The usenet counterpart of Prowlarr

Torrents vs Usenet

What Usenet Torrents
Availability Only content uploaded within Provider retention Torrent must have seeders
Download Probably limited only by your own hardware Limited to the upload speed of seeders and peers
Security SSL. You’re good. You probably want a VPN to stay anonymous
Costs Usenet Provider (+/- $10/month) and Usenet Indexer entree fee VPN cost ($2 to $5 / month)

Bazarr - Subtitles

Bazarr Logo

morpheus65535/bazarr : A companion to Sonarr and Radarr to manage and download subtitles.

I’ve had varying success with Bazarr so far but that’s just with free subtitle providers. There are many preconfigured subtitle sites you can connect to with login credentials or an API key. It even has built-in Anti-Captcha options.

Ombi - Requests

Ombi Logo

tidusjar/Ombi : Want a Movie or TV Show on Plex or Emby? Use Ombi!

Anyone you give access to Ombi can request movies/series (with voting!) and those shows and movies get imported in Sonarr/Radarr directly or after you approve.

This extra step can be handy because Sonarr/Radarr are pretty sophisticated applications. You probably do not want to start explaining all that to your mother. The Ombi UI on the other hand is pretty much a searchbox, type in something and click the request button.

Ombi Requests

Sharing Is Caring

With the setup done, you’ll want to share this with those that ask for a “What should I definitely watch?”-recommendation, but can really only follow up on it if it’s available on Netflix.

Attention: These applications can do serious damage in the hands of the wrong user!
Most of them have access to (parts of) your filesystem. By changing just a few settings a malicious user with access to Radarr, Sonarr, … can delete all your media files. Make sure that all containers exposed to the internet have a strong login/password set. For some containers, authentication is turned off by default!

Friends and family you’ll typically give access only to the Media Server (Jellyfin or Plex or …) and Ombi, perhaps through a separate Heimdall dashboard (Heimdall is covered in Container Management) user so they also have only one url to bookmark.