Accueil / Guide Media Server Docker 2026 (Partie 4) : Autobrr, cross-seed & Beszel

Guide Media Server Docker 2026 (Partie 4) : Autobrr, cross-seed & Beszel

Si vous avez suivi les trois premières parties, vous avez une stack media server qui offre une qualité et une liberté bien supérieures aux services de streaming classiques. C’est sécurisé, c’est beau, et ça télécharge tout seul.

Mais entre nous… c’est un peu « lent » et « fermé », non ?

Attendre 15 minutes que le RSS de Sonarr se réveille ? Devoir activer un VPN sur son téléphone juste pour demander un film sur Seerr ? C’est bon pour les amateurs.

Aujourd’hui, on passe à la vitesse supérieure. On va parler architecture réseau avancée, vitesse temps-réel et optimisation de ratio.

1. L’Accès Distant : Mon Architecture Hybride

Ouvrir tous les ports ou tout mettre derrière un reverse proxy classique (Nginx, Traefik…), c’est non seulement pénible à maintenir (certificats SSL, Fail2Ban…), mais surtout peu sécurisé : votre IP personnelle se retrouve exposée publiquement dans les enregistrements DNS. Pour 2026, j’ai adopté une approche hybride qui sépare les usages selon le niveau de confiance.

Voici ma stratégie :

  1. Accès « Famille/Invités » (Public) : Via Cloudflare Tunnel. C’est pour Seerr uniquement. Pas de VPN à installer pour Mamie, juste une URL HTTPS propre.
  2. Accès « Admin » (Privé) : Via Tailscale. C’est pour Sonarr, Radarr, Prowlarr, Qui. Hors de question d’exposer ces services critiques sur le net. Si je veux gérer mon serveur, je m’authentifie via le mesh VPN.
  3. Streaming (Performance) : Via Port Forwarding classique (32400). C’est pour Plex. Notez que Plex.tv connaît de toute façon votre IP pour établir la liaison.

Avec Jellyfin, vous n’auriez pas le choix que de « leaker » votre IP publiquement dans les DNS via un DynDNS pour l’exposer sans VPN). Pourquoi ? Car les tunnels (Cloudflare/Tailscale) peuvent brider la bande passante ou violer les TOS en cas de gros streaming vidéo.

A. Cloudflare Tunnel : Pour Seerr uniquement

C’est la solution « Zéro Trust ». Votre serveur crée un tunnel sortant vers Cloudflare. Pas de trou dans votre pare-feu, HTTPS géré par eux.

Pré-requis critiques :

  • Avoir un Nom de Domaine (acheté chez OVH, Namecheap, etc.).
  • Avoir confié la gestion des DNS à Cloudflare (Nameservers pointant vers ceux de Cloudflare). Sans ça, le tunnel ne peut pas créer les sous-domaines automatiquement.

Configuration :

  1. Allez sur Cloudflare Zero Trust > Networks > Tunnels.
  2. Cliquez sur le bouton « Gérer les tunnels » puis sur « Créer un nouveau Tunnel cloudflared ».
  3. Sélectionnez « Cloudflared », donnez-lui un nom (ex: MediaServer) et validez.
  4. À l’étape « Install and run a connector », choisissez l’environnement Docker. Cloudflare va vous afficher une longue commande docker run ... --token eyJh.... ⚠️ Ne copiez pas toute la commande ! Copiez uniquement la longue chaîne de caractères après --token (le bloc qui commence par ey...).
  5. Ajoutez ce token dans votre fichier .env : TUNNEL_TOKEN=eyJhIjoi...
  6. Configurez le conteneur dans votre compose.yml :
YAML
  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: cloudflared
    restart: always
    command: tunnel run
    environment:
      - TUNNEL_TOKEN=${TUNNEL_TOKEN}
  1. Dans l’interface Cloudflare (cliquez sur « Next »), ajoutez un Public Hostname :
    • Subdomain : demandes.mondomaine.fr
    • Service : http://seerr:5055
Capture d'écran du dashboard zero trust de cloudflare.

Pas envie d’acheter un nom de domaine ? Si vous ne voulez pas payer 10€/an pour un .fr ou gérer des DNS, utilisez Tailscale Funnel. C’est une fonctionnalité incluse dans Tailscale qui permet d’exposer un service local sur le web public.

  1. Voir la section suivante pour l’installation sur le serveur.
  2. Activez Funnel dans la console admin.
  3. Lancez : tailscale funnel 5055. Vous obtiendrez une URL publique gratuite en https://mon-serveur.tailnet.ts.net accessible par n’importe qui. C’est parfait pour partager Seerr sans frais.

B. Tailscale : Pour l’Admin (Sonarr/Radarr)

Pour accéder à vos outils d’administration depuis l’extérieur sans les exposer, installez simplement Tailscale sur votre NAS/Serveur et sur vos appareils (Mac, iPhone).

Installation sur le serveur :

  • Linux (Ubuntu/Debian) : Une simple commande suffit : curl -fsSL https://tailscale.com/install.sh | sh
  • Synology / QNAP : Tailscale est disponible directement dans le « Package Center ».
  • Docker : Vous pouvez aussi l’ajouter à votre stack (image tailscale/tailscale), mais l’installation native sur l’hôte est souvent plus simple pour gérer le routing.

Une fois connecté, vous accédez à vos services via l’IP Tailscale (ex: http://100.x.y.z:8989 pour Sonarr) comme si vous étiez à la maison. C’est incassable.

2. Autobrr : Le Sniper (IRC > RSS)

Le RSS, c’est du « Polling » (on demande « c’est prêt ? » toutes les 15 min). L’IRC, c’est du « Push » (le tracker hurle « C’EST PRÊT ! »). Pour les trackers privés (ou les publics réactifs), Autobrr est le standard.

Ajout au compose.yml

YAML
  autobrr:
    image: ghcr.io/autobrr/autobrr:latest
    container_name: autobrr
    environment:
      - TZ=${TZ}
    user: ${PUID}:${PGID}
    volumes:
      - ${CONFIG_DIR}/autobrr:/config
    ports:
      - 7474:7474
    restart: always

Configuration Express

  1. Allez sur http://VOTRE_IP:7474.
  2. Créez un user.
  3. Indexers : Ajoutez vos trackers (si supportés) ou connectez-le à Prowlarr (Settings > Indexers > Prowlarr).
  4. Clients (Sonarr/Radarr) : C’est l’étape indispensable pour que Autobrr puisse leur parler.
    • Allez dans Settings > Clients.
    • Cliquez sur le bouton « Add New ».
    • Sélectionnez le type (ex: Sonarr).
    • Host : http://sonarr:8989 (nom du conteneur Docker).
    • API Key : Collez la clé API de Sonarr.
    • Testez et sauvegardez. (Faites pareil pour Radarr sur http://radarr:7878).
  5. Filtres : C’est là que ça se joue. Créez un filtre « Global » :
    • Dans l’onglet action : Choisissez Action type Sonarr (votre client créé à l’étape 4).
    • Dans l’onglet general : Choisissez les indexers que vous voulez utilisez
    • Dans les autres onglets : c’est à vous d’adapter en fonction de vos besoins. Dans “movies and tv”, vous pouvez bloquer les remux par exemple.

Autobrr voit tout passer sur l’IRC. Il notifie instantanément Sonarr/Radarr (« Push »). Sonarr vérifie si le film est recherché et s’il correspond à vos profils de qualité Recyclarr. Si oui, Sonarr lance le téléchargement dans qBit. C’est l’approche la plus propre car elle respecte votre logique de gestion centralisée.

3. Cross-seed : Le Multiplicateur de Ratio

Le principe : vous téléchargez un film sur le Tracker A. Cross-seed scanne les autres trackers (B, C, D) pour voir si le même fichier existe. Si oui, il l’ajoute en seed. Résultat : 1 téléchargement = 4 seeds. Votre ratio explose sans utiliser plus de disque (merci les Hardlinks).

Préparation des dossiers

Rappelez-vous la Partie 1, on avait créé /data/torrents/cross-seed. C’est son moment de gloire.

Ajout au compose.yml

YAML
  cross-seed:
    image: crossseed/cross-seed
    container_name: cross-seed
    user: ${PUID}:${PGID}
    command: daemon
    volumes:
      - ${CONFIG_DIR}/cross-seed:/config
      - ${DATA_DIR}:/data # Pour scanner vos fichiers
    restart: always

Configuration (config.js)

Le fichier de configuration est en JavaScript. C’est puissant mais intimidant. Voici les points clés à modifier dans le fichier généré :

  • Torznab : Il faut donner à Cross-seed les URLs Torznab de vos trackers (à récupérer dans Prowlarr).
  • torrentClients : Utilisez le proxy Qui pour sécuriser l’accès (comme pour Sonarr/Radarr, plus de mot de passe en clair !).
    URL : qbittorrent:http://gluetun:7476/proxy/VOTRE_CLE_API
    (Générez une clé API dédiée pour Cross-seed dans Qui > Settings > Client Proxy Keys).
  • Utilisez linkDirs (où créer les liens) et dataDirs (où chercher les sources, incluant votre librairie multimédia pour le cross-seeding rétroactif) :
JavaScript
linkDirs: [ 
    "/data/torrents/cross-seed",
], 

dataDirs: [ 
    "/data/torrents/downloads",
    "/data/media/movies",
    "/data/media/tv" 
]

Note importante : Ce sont ici les paramètres de base pour que ça tourne. Cross-seed est un outil puissant mais qui demande du doigté. Il faudra impérativement fine-tuner le reste du fichier config.js en fonction des règles spécifiques de vos trackers (temps de seed, exclusions, etc.). Prenez le temps de lire la documentation pour l’adapter à votre usage.

4. Beszel : Le Monitoring sans l’usine à gaz

Oubliez Grafana + Prometheus + InfluxDB pour surveiller un simple NUC. C’est overkill. Beszel, c’est un agent ultra-léger et un joli dashboard. Ça s’installe en 2 minutes et ça vous dit si votre CPU est en train de fondre pendant un transcodage Plex.

Ajout au compose.yml

YAML
  beszel-hub:
    image: henrygd/beszel
    container_name: beszel
    ports:
      - 8090:8090
    volumes:
      - ${CONFIG_DIR}/beszel:/beszel_data
    restart: always

  beszel-agent:
    image: henrygd/beszel-agent
    container_name: beszel-agent
    network_mode: host # Nécessaire pour lire les stats du host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - PORT=45876
      - KEY=VOTRE_CLE_PUBLIQUE_BESZEL # À récupérer dans le Hub
    restart: always

Une fois le hub lancé, allez sur le port 8090 et créez votre compte admin.

Ensuite, cliquez sur le bouton « Add System » et remplissez les infos. Beszel va automatiquement vous générer le bloc Docker Compose pour l’agent contenant votre Clé Publique (KEY). Copiez cette clé dans votre compose.yml (section beszel-agent) et démarrez le conteneur agent. Vous avez maintenant de jolis graphes CPU/RAM/Docker/Disque.

Conclusion Finale : La fin du voyage

Voilà. Vous êtes passés d’un dossier « Téléchargements » en vrac à une infrastructure clean :

  • VPN étanche avec Killswitch.
  • Gestion automatisée de la qualité et du nommage.
  • Interface Netflix-like accessible de partout.
  • Vitesse temps-réel et monitoring.

Votre serveur va maintenant travailler pour vous, et non l’inverse. C’est ça, la vraie victoire du self-hosting.

Maintenant, vous pouvez retourner faire ce que vous voulez pendant que votre serveur se remplit tout seul de Linux ISOs.

Si cette série vous a plu, partagez-la (mais pas trop fort, on reste discrets). 🏴‍☠️

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut