Blog

De *arr-stack met Jellyfin en Plex: Sonarr, Radarr, Prowlarr, Bazarr, Seerr

Hoe Sonarr, Radarr, Lidarr, Prowlarr, Bazarr en Seerr samenwerken met Jellyfin of Plex: UML-diagram, de rol van elke tool, één Docker Compose-bestand, hardlinks en GPU-transcodering op een Intel UHD 770.

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

UML-componentdiagram: je vraagt een titel aan in Seerr; Sonarr, Radarr of Lidarr zoekt via Prowlarr; de downloadclient schrijft naar /data/downloads; de *arr-app importeert met een hardlink naar /data/media; Bazarr voegt ondertitels toe; Jellyfin of Plex ververst de bibliotheek, transcodeert op de Intel UHD 770 en streamt naar je apparaten

  1. Jij (of iemand in je huishouden) vraagt een film of serie aan in Seerr.
  2. Seerr geeft de aanvraag door aan Radarr (films) of Sonarr (series).
  3. De *arr-app zoekt in de bronnen die in Prowlarr zijn ingesteld.
  4. Ze stuurt het gekozen item naar de downloadclient.
  5. Het bestand komt in /data/downloads/.
  6. De *arr-app importeert het: ze hernoemt het en zet het met een hardlink in /data/media/ (direct, zonder extra ruimte).
  7. Ze laat Jellyfin of Plex de bibliotheek verversen; Bazarr zet de ontbrekende ondertitels naast de video.
  8. Jellyfin of Plex leest /data/media/.
  9. Als een apparaat het oorspronkelijke formaat niet kan afspelen, transcodeert de server op de GPU (VAAPI / Quick Sync).
  10. 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

ToolRolStandaardpoort
Jellyfin / PlexMediaserver: bibliotheek, metadata, streaming, GPU-transcodering8096 / 32400
SonarrSeries: volgt afleveringen, importeert en hernoemt ze8989
RadarrFilms: hetzelfde werk voor films7878
LidarrMuziek: albums en artiesten, ideaal voor je eigen cd-rips8686
ProwlarrBeheert de bronnen (indexers) één keer en synchroniseert ze naar de *arr-apps9696
BazarrOndertitels voor alles wat Sonarr en Radarr beheren6767
SeerrAanvraagportaal voor je huishouden, voor Jellyfin, Plex en Emby5055

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

ToolWat het toevoegt
RecyclarrSynchroniseert bekende kwaliteitsprofielen en naamgevingsregels (TRaSH Guides) naar Sonarr en Radarr
UnpackerrPakt archieven uit zodat Sonarr / Radarr ze kunnen importeren
TdarrHercodeert je bibliotheek in bulk (bijv. naar HEVC); kan de Intel-GPU gebruiken via VAAPI / QSV
Tautulli (Plex) / Jellystat (Jellyfin)Kijkstatistieken, wie wat keek, meldingen
KometaCollecties, posters en overlays voor Plex (en deels Jellyfin)
MaintainerrRegels om op te ruimen wat niemand kijkt
WizarrUitnodigingslinks om iemand toegang te geven tot Jellyfin of Plex
AudiobookshelfServer voor luisterboeken en podcasts
HomepageEé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

  1. 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.
  2. Sonarr / Radarr / Lidarr → Settings → Media Management: hoofdmappen /data/media/tv, /data/media/movies, /data/media/music; laat Use Hardlinks instead of Copy aan staan.
  3. Sonarr / Radarr → Settings → Connect: voeg Emby / Jellyfin of Plex Media Server toe, zodat de bibliotheek na elke import ververst.
  4. Bazarr → Settings → Sonarr / Radarr: dezelfde API-sleutels, kies dan je ondertiteltalen en -aanbieders.
  5. Seerr: de eerste-startwizard vraagt om Jellyfin of Plex; voeg daarna via Settings → Services Radarr en Sonarr toe.
  6. 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 (:ro hierboven).

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.