Stack média complète : Jellyfin + arr + qBittorrent
Dernière mise à jour le
🎯 Vue d’ensemble
La stack média repose sur un principe simple : automatiser tout le pipeline, de la recherche d’un film à son apparition dans l’interface de streaming, sans intervention manuelle.
Jellyseerr ← interface de demande (toi ou tes proches)
│
Radarr/Sonarr ← gestion films / séries (téléchargement auto)
│
Prowlarr ← proxy d'indexers (sources torrent)
│
qBittorrent ← client de téléchargement
│
Bazarr ← sous-titres automatiques
│
Jellyfin ← streaming (films, séries, musique)
│
Suggestarr ← suggestions personnalisées
→ Pour la musique et les mangas, voir Extension de la stack média.
🎬 Jellyfin — le serveur de streaming
Jellyfin est l’équivalent open-source et 100% gratuit de Plex. Il indexe tes dossiers média, génère les métadonnées (affiches, résumés, acteurs via TheMovieDB), et expose une interface web + des clients natifs pour TV, mobile, navigateur.
Installation Docker
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Brussels
volumes:
- ./config:/config
- /chemin/vers/films:/data/films
- /chemin/vers/series:/data/series
- /chemin/vers/musique:/data/music
ports:
- "8096:8096"
Points importants
- Transcoding hardware : sur Raspberry Pi, active le transcoding V4L2 dans les paramètres (Dashboard → Lecture) pour utiliser le GPU intégré et ne pas saturer le CPU.
- Bibliothèques : crée des bibliothèques séparées Films / Séries TV / Musique avec les bons types — Jellyfin utilise le type pour récupérer les bonnes métadonnées.
- Naming convention : les *arr rangent les fichiers dans le format attendu par Jellyfin automatiquement — ne pas renommer à la main.
🔍 Prowlarr — centralisateur d’indexers
Prowlarr est le point central qui agrège tous tes indexers torrent (ou Usenet) et les expose aux *arr. Tu gères tes indexers en un seul endroit plutôt que de les configurer dans chaque service.
services:
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Brussels
volumes:
- ./config:/config
ports:
- "9696:9696"
Configuration
- Ajoute tes indexers (trackers publics ou privés) dans Indexers
- Dans les paramètres de chaque *arr, configure Prowlarr comme application — il synchronisera les indexers automatiquement
🎥 Radarr — gestion automatique des films
Radarr surveille une liste de films suivis, cherche via Prowlarr, télécharge via qBittorrent, et range les fichiers dans le bon dossier au bon format.
services:
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Brussels
volumes:
- ./config:/config
- /chemin/vers/films:/movies
- /chemin/vers/downloads:/downloads
ports:
- "7878:7878"
À configurer après l’installation
- Profils de qualité : définis les qualités acceptables (1080p, 4K, etc.) et leurs limites de taille
- Gestion du chemin :
Root Folder→ le dossier films final,Download Clients→ qBittorrent - Indexers : configurer Prowlarr comme source (une seule fois via l’intégration Prowlarr)
- Import mode : “Hardlink” si les downloads et la bibliothèque sont sur le même filesystem — évite la copie et économise l’espace disque
📺 Sonarr — gestion automatique des séries
Même principe que Radarr mais pour les séries TV : suivi par saison/épisode, téléchargement automatique dès la sortie.
services:
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Brussels
volumes:
- ./config:/config
- /chemin/vers/series:/tv
- /chemin/vers/downloads:/downloads
ports:
- "8989:8989"
Sonarr surveille les épisodes manquants et les nouvelles saisons de chaque série ajoutée — une fois une série dans la liste, tu n’as plus à t’en occuper.
🌐 qBittorrent — client de téléchargement
Le client BitTorrent que Radarr/Sonarr/Lidarr pilotent via son API web.
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Brussels
- WEBUI_PORT=8080
volumes:
- ./config:/config
- /chemin/vers/downloads:/downloads
ports:
- "8080:8080"
- "6881:6881"
- "6881:6881/udp"
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8080"]
interval: 30s
Configuration dans les *arr
Dans Radarr/Sonarr : Settings → Download Clients → Add → qBittorrent. Configure une catégorie différente par *arr (radarr, sonarr, lidarr) — ça permet un rangement propre.
🔤 Bazarr — sous-titres automatiques
Bazarr se connecte à Sonarr et Radarr, détecte les films/épisodes sans sous-titres, et les télécharge automatiquement depuis plusieurs sources (OpenSubtitles, Subscene, etc.).
services:
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: bazarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Brussels
volumes:
- ./config:/config
- /chemin/vers/films:/movies
- /chemin/vers/series:/tv
ports:
- "6767:6767"
Configure ensuite les connexions Sonarr/Radarr dans Settings → Sonarr et Settings → Radarr, et active les langues souhaitées (français, anglais…).
🙋 Jellyseerr — interface de demandes
Jellyseerr permet à des proches (ou à toi-même) de demander des films et séries via une interface simple, sans accès à l’admin Radarr/Sonarr. Chaque demande est automatiquement transmise au bon *arr.
services:
jellyseerr:
image: fallenbagel/jellyseerr:latest
container_name: jellyseerr
restart: unless-stopped
environment:
- TZ=Europe/Brussels
volumes:
- ./config:/app/config
ports:
- "5055:5055"
À configurer : connexions Jellyfin + Radarr + Sonarr dans l’interface (Settings → Services). Les utilisateurs s’authentifient avec leur compte Jellyfin.
💡 Suggestarr — suggestions automatiques
Suggestarr analyse la bibliothèque Jellyfin et suggère automatiquement des films/séries similaires à ce que tu as déjà, en les ajoutant dans Jellyseerr. C’est un “Discover Weekly” pour le cinéma/séries.
services:
suggestarr:
image: ciuse99/suggestarr:latest
container_name: suggestarr
restart: unless-stopped
environment:
- TZ=Europe/Brussels
- JELLYSEERR_URL=http://jellyseerr:5055
- JELLYSEERR_API_KEY=<ta_clé>
- JELLYFIN_URL=http://jellyfin:8096
- JELLYFIN_API_KEY=<ta_clé>
🗂️ Organisation des dossiers
Structure recommandée pour que les hardlinks fonctionnent (downloads et bibliothèque sur la même partition) :
/media/
├── downloads/ ← qBittorrent écrit ici
│ ├── radarr/
│ ├── sonarr/
│ └── lidarr/
├── films/ ← Radarr range ici (hardlink depuis downloads)
├── series/ ← Sonarr range ici
└── musique/ ← Lidarr range ici
Hardlink = le fichier n’est pas copié, juste référencé depuis deux endroits. Zéro espace disque supplémentaire, import instantané.
🔒 Sécurité et accès
- Les interfaces *arr et qBittorrent ne sont jamais exposées publiquement — accessibles uniquement en LAN ou via Tailscale
- Seul Jellyfin (et optionnellement Jellyseerr) peuvent être exposés via le reverse proxy (Nginx Proxy Manager) avec SSL
- Active l’authentification dans chaque service