De *arr-stack met Jellyfin en Plex: hoe alles samenwerkt
Onze gids voor hardwaretranscodering met Jellyfin en Plex gaat over de mediaserver zelf. Daaromheen gebruiken de meeste self-hosters een familie tools waarvan de naam op arr eindigt: ze ordenen de bibliotheek, hernoemen bestanden, halen ondertitels op en laten je huishouden titels aanvragen. Deze pagina zet kort op een rij wie wat doet en hoe ze met elkaar praten.
Belangrijk: wij moedigen het downloaden van inhoud waarop je geen rechten hebt niet aan. Deze tools zijn neutraal; wat je ze geeft is jouw verantwoordelijkheid. Op Linux GPU-servers is het downloaden, opslaan of delen van illegale kopieën (BitTorrent, Usenet, illegale IPTV…) verboden door artikel 6 van onze voorwaarden en leidt het tot opschorting. Gebruik ze met je eigen bestanden (je rips, je muziek), werken uit het publieke domein (Internet Archive, Wikimedia Commons) en vrije licenties (open films van de Blender Foundation, Creative Commons-muziek).
Het diagram
- Jij (of iemand in je huishouden) vraagt een film of serie aan in Seerr.
- Seerr geeft de aanvraag door aan Radarr (films) of Sonarr (series).
- De *arr-app zoekt in de bronnen die in Prowlarr zijn ingesteld.
- Ze stuurt het gekozen item naar de downloadclient.
- Het bestand komt in
/data/downloads/. - De *arr-app importeert het: ze hernoemt het en zet het met een
hardlink in
/data/media/(direct, zonder extra ruimte). - Ze laat Jellyfin of Plex de bibliotheek verversen; Bazarr zet de ontbrekende ondertitels naast de video.
- Jellyfin of Plex leest
/data/media/. - Als een apparaat het oorspronkelijke formaat niet kan afspelen, transcodeert de server op de GPU (VAAPI / Quick Sync).
- De video wordt gestreamd naar tv, telefoon of browser.
Geen downloadclient? De stack werkt toch: zet je eigen bestanden in een map en gebruik de Manual Import van Sonarr, Radarr of Lidarr om ze te hernoemen en in te delen.
Wie doet wat
| Tool | Rol | Standaardpoort |
|---|---|---|
| Jellyfin / Plex | Mediaserver: bibliotheek, metadata, streaming, GPU-transcodering | 8096 / 32400 |
| Sonarr | Series: volgt afleveringen, importeert en hernoemt ze | 8989 |
| Radarr | Films: hetzelfde werk voor films | 7878 |
| Lidarr | Muziek: albums en artiesten, ideaal voor je eigen cd-rips | 8686 |
| Prowlarr | Beheert de bronnen (indexers) één keer en synchroniseert ze naar de *arr-apps | 9696 |
| Bazarr | Ondertitels voor alles wat Sonarr en Radarr beheren | 6767 |
| Seerr | Aanvraagportaal voor je huishouden, voor Jellyfin, Plex en Emby | 5055 |
Seerr is de fusie van Overseerr (Plex) en Jellyseerr (Jellyfin):
beide teams sloegen de handen ineen en brachten Seerr 3.0 uit in februari 2026
(ghcr.io/seerr-team/seerr). De Overseerr-images zijn verouderd; gebruik je
nog Overseerr of Jellyseerr, migreer dan naar Seerr met een nieuwe datamap,
zodat de oude als terugvaloptie blijft.
Readarr (boeken) is in 2025 door de ontwikkelaars stopgezet en de repository is gearchiveerd: kijk voor boeken en luisterboeken liever naar Audiobookshelf of LazyLibrarian.
Tools die er vaak bij horen
| Tool | Wat het toevoegt |
|---|---|
| Recyclarr | Synchroniseert bekende kwaliteitsprofielen en naamgevingsregels (TRaSH Guides) naar Sonarr en Radarr |
| Unpackerr | Pakt archieven uit zodat Sonarr / Radarr ze kunnen importeren |
| Tdarr | Hercodeert je bibliotheek in bulk (bijv. naar HEVC); kan de Intel-GPU gebruiken via VAAPI / QSV |
| Tautulli (Plex) / Jellystat (Jellyfin) | Kijkstatistieken, wie wat keek, meldingen |
| Kometa | Collecties, posters en overlays voor Plex (en deels Jellyfin) |
| Maintainerr | Regels om op te ruimen wat niemand kijkt |
| Wizarr | Uitnodigingslinks om iemand toegang te geven tot Jellyfin of Plex |
| Audiobookshelf | Server voor luisterboeken en podcasts |
| Homepage | Eén dashboard met alle diensten en hun status |
Eén Docker Compose-bestand
Alle apps delen één map /data met downloads/ en media/ erin. Het moet
voor elke container hetzelfde bestandssysteem zijn, anders worden
hardlinks trage kopieën die de schijfruimte verdubbelen.
mkdir -p /srv/data/{downloads,media/{movies,tv,music}} /srv/arr
cd /srv/arr
docker-compose.yml:
x-common: &common
restart: unless-stopped
environment:
PUID: "1000"
PGID: "1000"
TZ: Europe/Amsterdam
volumes:
- /srv/data:/data
services:
sonarr:
<<: *common
image: lscr.io/linuxserver/sonarr:latest
volumes: [/srv/data:/data, ./sonarr:/config]
ports: ["127.0.0.1:8989:8989"]
radarr:
<<: *common
image: lscr.io/linuxserver/radarr:latest
volumes: [/srv/data:/data, ./radarr:/config]
ports: ["127.0.0.1:7878:7878"]
lidarr:
<<: *common
image: lscr.io/linuxserver/lidarr:latest
volumes: [/srv/data:/data, ./lidarr:/config]
ports: ["127.0.0.1:8686:8686"]
prowlarr:
<<: *common
image: lscr.io/linuxserver/prowlarr:latest
volumes: [./prowlarr:/config]
ports: ["127.0.0.1:9696:9696"]
bazarr:
<<: *common
image: lscr.io/linuxserver/bazarr:latest
volumes: [/srv/data:/data, ./bazarr:/config]
ports: ["127.0.0.1:6767:6767"]
seerr:
image: ghcr.io/seerr-team/seerr:latest
init: true
restart: unless-stopped
environment:
TZ: Europe/Amsterdam
volumes: [./seerr:/app/config]
ports: ["5055:5055"]
jellyfin: # of de plex-dienst hieronder
image: jellyfin/jellyfin:latest
restart: unless-stopped
devices: [/dev/dri/renderD128:/dev/dri/renderD128]
group_add: ["${RENDER_GID}"]
volumes: [./jellyfin:/config, /srv/data/media:/data/media:ro]
ports: ["8096:8096"]
# plex:
# image: plexinc/pms-docker:latest
# restart: unless-stopped
# network_mode: host
# devices: [/dev/dri:/dev/dri]
# volumes: [./plex:/config, /srv/data/media:/data/media:ro]
echo "RENDER_GID=$(stat -c %g /dev/dri/renderD128)" > .env
docker compose up -d
Voeg aan hetzelfde bestand de downloadclient van je keuze toe, met
/srv/data:/data als volume en /data/downloads als doelmap,
alleen voor legale bronnen.
De apps aan elkaar koppelen
- Prowlarr → Settings → Apps: voeg Sonarr, Radarr en Lidarr toe met hun API-sleutel (in Settings → General van elke app). Prowlarr stuurt ze daarna dezelfde bronnen.
- Sonarr / Radarr / Lidarr → Settings → Media Management: hoofdmappen
/data/media/tv,/data/media/movies,/data/media/music; laat Use Hardlinks instead of Copy aan staan. - Sonarr / Radarr → Settings → Connect: voeg Emby / Jellyfin of Plex Media Server toe, zodat de bibliotheek na elke import ververst.
- Bazarr → Settings → Sonarr / Radarr: dezelfde API-sleutels, kies dan je ondertiteltalen en -aanbieders.
- Seerr: de eerste-startwizard vraagt om Jellyfin of Plex; voeg daarna via Settings → Services Radarr en Sonarr toe.
- Jellyfin of Plex: bibliotheken op
/data/media/...en GPU-transcodering zoals in onze gids.
Beveiliging
- Alleen Jellyfin/Plex en Seerr hoeven bereikbaar te zijn. De andere apps
luisteren op
127.0.0.1: open ze via een SSH-tunnel (ssh -L 8989:localhost:8989 support@je-server) of achter een reverse proxy met authenticatie. - Zet authenticatie aan in elke *arr-app (Settings → General → Authentication).
- Houd de mediamap alleen-lezen voor de mediaserver (
:rohierboven).
Opslag
De pakketten hebben 60 GB (Start), 120 GB (Power) of 240 GB SSD (Pro). Dat is ruim genoeg voor de apps en een muziek- of thuisvideobibliotheek; plan voor een grote filmcollectie de schijfgrootte vooraf, want hardlinks werken alleen binnen één bestandssysteem.
Probeer het
Linux GPU-server met Intel UHD 770 in de VM, Docker al geïnstalleerd, VAAPI en Quick Sync klaar voor Jellyfin en Plex. Vanaf €14,99 excl. btw/mnd, root-toegang.