Mediaserver anno 2022; De Plex stack

Het hebben van een mediaserver heeft zo zijn voordelen. Je hoeft nooit meer bang te zijn dat een film of serie verdwijnt. Het is ook fijn om je eigen bibliotheek te hebben met muziek, films, series of boeken. In dit document vertel ik hoe je een volledige media ‘stack’ opzet.  Er zullen diverse applicaties beschreven worden die in theorie en praktijk legaal en illegaal zijn. Hoe jij dat opzet is aan jezelf. Zie dit document vooral educatief gebruik. Deze media ‘stack’ is een puzzeltje, omdat alles netjes in elkaar haakt. In dit document zal ik de volgende services behandelen en allen hebben ze 1 specifieke taak. 

Overzicht van de media stack

  1. Plex mediaserver: Hier komt muziek, series, en films samen https://www.plex.tv/   
  1. Sonarr: deze dienst managent series https://sonarr.tv/ 
  1. Radarr: deze dienst managent films https://radarr.video/ 
  1. Readarr: deze dienst managent boeken https://readarr.com/ 
  1. Lidarr: deze dienst managent muziek  https://lidarr.audio/ 
  1. Jackett: Deze dienst managent de torrent indexers https://github.com/Jackett/Jackett 
  1. Transmission: Deze dienst downloadt/upload torrents https://transmissionbt.com/ 
  1. Filebrowser: Een webbased filebrowser om her en der wat handmatig te kunnen doen. https://filebrowser.org/ 

De media stack vanaf de bodem verklaard

Jackett 
Allereerst heb je Jackett nodig. Deze communiceert met Sonarr/Radarr/Lidarr/Readarr. Zie het als een grote zoekmachine die praat tegen bijvoorbeeld The Piratebay api. Deze zoekt dus alle ingeschakelde indexers van torrent websites.  

Transmission  
Transmission doet het daadwerkelijke downloaden en uploaden van torrents. Naast het converteren van magnet links naar torrents.  Je zal een aparte download folder moeten aanmaken.  Sonarr/Radarr/Readarr/Lidarr sturen de magnet link naar Transmission en kopiëren de gedownloade bestanden naar de media locatie.  Hou er rekening mee dat Radarr/Sonarr/Readarr/Lidarr wel de bestanden kopiëren naar een media locatie, maar deze niet verwijderen van Transmission. Dit zal je handmatig moeten doen. Je kan ook instellen dat na een seed ratio van 1 de torrent van het systeem wordt verwijderd. 

Radarr/Sonarr/Readarr/Lidarr 
Dit zijn de tools die de opdracht geven aan Jackett om torrents op te zoeken en Transmission om te downloaden. Is het mediabestand of bestanden gedownload door Transmission dan zullen deze diensten de bestanden sorteren en plaatsen op een afgesproken locatie. Ook kan zij als er een nieuwe versie van hogere kwaliteit aanwezig is de oude vervangen. Periodiek vragen deze diensten aan Jackett of een bestand al beschikbaar is. Te denken valt aan films of episodes die nog uit moeten komen.  Pro tip: In alle services is de mogelijkheid om een mailservice of pushnotificatie dienst te configureren. Deze kunnen je op de hoogte stelle als een episode of film is gedownload en/of aangevraagd is bij Transmission.  De services kunnen ingeregeld worden welke kwaliteit, taal of versie met ‘media profielen’. Niet iedereen heeft behoefte om bijv. FLAC-muziekbestanden of de hoogste kwaliteit van een film te ontvangen.  Geen behoefte meer aan een film of serie? Met een druk op de knop gooi je alle bestanden weg.  

Een veel gemaakte fout is om de media folder gelijk te zetten aan de download folder van Transmission, maar mag niet. Je moet een aparte folder hebben voor media en downloads. Een structuur kan er zo uit zien:

/transmission/incomplete 
/transmission/complete 
/media/ebooks 
/media/movies 
/media/series 
/media/music 
 
Vanzelfsprekend heeft Lidarr/Sonarr/Readarr/Lidarr lees en schrijf rechten nodig onder /media en leesrechten onder de transmission folder. Transmission alleen onder /transmission. De filebrowser onder allen. Wil je allemaal niet zo fijnmazig op zetten dan zet je alles onder dezelfde eigenaar/groep.  

Filebrowser 
Een webfilebrowser is wel zo handig. Soms gaat het verwerken bij bovengenoemde diensten niet goed. Dat kan bijvoorbeeld komen door lastige naamgeving. De resource footprint is zo klein dat deze er net goed bij gepakt kan worden. Het instellen is straight forward.  Vergeet niet meteen na installatie een wachtwoord + gebruiker in te stellen.

Plex  
Plex is de waaruit je films kijkt of muziek luistert. Plex heeft ook een goed ondersteunde app op je telefoon, zowel voor Apple als Android. Om films te kijken op je telefoon moet je 5,- dollar betalen. Om muziek te luisteren met Plex-amp moet je ook een abonnement hebben en/of een lifetime pass betalen. Ik raad je het sterk aan. Plex heeft geen poort naar binnen nodig. Dat is handig als je de server uit huis host. Met de gratis versie kan je wel een Chromecast gebruiken.  Heb je alles betaald dan is de service zo makkelijk als Spotify of Netflix, maar dan zelf gehost en dat met elk bekend media apparaat in huis en buitenhuis. 

Het mooie van Plex is dat je ook personen buiten jezelf kan uitnodigen. Authenticatie en rolbedeling is niet moeilijk. Met Plex kan je verschillende mediaservers koppelen.  Zo kan met vrienden een keten van servers aan elkaar koppelen.  

Data stroom

Installatie 

Installatie is redelijk straight forward en is per dienst goed gedocumenteerd. Ik raad je aan om de gehele stack met Docker te deployen. Ter illustratie heb ik een docker-compose.yaml geschreven. Deze kan je zo in bijvoorbeeld portainer plakken of in een directory plaatsen. Nadat je docker en docker-compose hebt geïnstalleerd hoef je alleen nog maar docker-compose up uit te voeren.  

Installatie docker en docker-compose 
https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-install-Docker-and-docker-compose-on-Ubuntu 

docker-compose.yml 
Let wel op dat je de paden goed configureert. Let erop, dat ik dit bestand aanbied als voorbeeld. Je zal hier zelf een reverse proxy voor moeten installeren, zoals Nginx of je zal per dienst de poorten moeten binden aan het host systeem. Vergeet niet in elke applicatie een wachtwoord in te stellen. Zet in Plex ook 2FA aan.

https://gist.githubusercontent.com/maikell/1d207fd50324d7aa343d31e4cc14b97d/raw/9639d8ef648a810cd315c3955cd38accd9008dea/docker-compose.yml

Leave a Comment