Servarr¶
Qu’est-ce que Servarr ?¶
Servarr est un ensemble d’outils qui permettent le téléchargement, et la synchronisation de films, séries, musiques … Plutôt intrigué pour le mettre sur la seedbox.
N.B : Comme on peut le voir sur tous les sites, « Clause de non-responsabilité : Ce document a été élaboré strictement à des fins d’information. Il ne constitue pas une approbation d’activités (y compris les activités illégales), de produits ou de services. Vous êtes seul responsable du respect des lois applicables, y compris les lois sur la propriété intellectuelle, lorsque vous utilisez nos services ou que vous vous fiez à toute information contenue dans le présent document. Nous n’acceptons aucune responsabilité pour les dommages résultant de l’utilisation de nos services ou des informations qu’ils contiennent, de quelque manière que ce soit, sauf lorsque la loi l’exige explicitement. »
Voilà. Pas envie de me faire fermer mon petit site tout léger pour une documentation border-line.
Pour faire simple, chaque produit permet de gérer le téléchargement d’un type de contenu.
Radarr : Films
Sonarr : Series
Lidarr : Musique
Readarr : Livre
Whisparr : Film X
Prowlarr : Orchestre l’ensemble
Il faudra se rappeler de ça pour l’utilisation.
Installation¶
J’ai créer un rôle Ansible pour gérer tout ça. Il fonctionne à l’aide des tags pour sélectionner le ou les produits à installer.
Installation d’un des services¶
Chaque service va s’installer de façon plus ou moins similaire. J’ai mis là dessous les informations pour radarr. Dans le cas de sonarr, il faudra changer radar en sonnar. J’ai décidé de mettre tous les services servarr dans un dossier dédié servarr. Ce n’est pas ce que dit la documentation des applications. Pas vu d’effets de bords.
On se prépare le terrain :
mkdir -p /{opt,var/lib}/servarr/radarr
addgroup --system media
adduser --system --home /var/lib/servarr/radarr --shell /bin/false --no-create-home --group --disabled-password --disabled-login radarr
adduser radarr media
chmod -R 0750 /{opt,var/lib}/servarr/
chown root:media /{opt,var/lib}/servarr
chown radarr:radarr /{opt,var/lib}/servarr/radarr
On récupère et on unarchive le service
cd /opt/servarr/radarr
sudo -u radarr wget --content-disposition 'http://radarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64' -O Radarr.tar.gz
sudo -u radarr tar -xzf Radarr.tar.gz --strip-components=1 && rm Radarr.tar.gz
chown radarr:radarr -R /opt/servarr/radarr
chmod o-rx -R /opt/servarr/radarr
On créé le service :
cat << EOF | sudo tee /etc/systemd/system/radarr.service > /dev/null
[Unit]
Description=Radarr Daemon
After=syslog.target network.target
[Service]
User=radarr
Group=media
Type=simple
ExecStart=/opt/servarr/radarr/Radarr -nobrowser -data=/var/lib/servarr/radarr/
TimeoutStopSec=20
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl -q daemon-reload
systemctl enable --now -q radarr
Le service est installé et présent sur son port par défaut. On verra plus tard comment réaliser le reverse proxy.
Installation via ansible¶
Il est possible d’utiliser le rôle créé pour installer tout ça, mais également mettre à jour les serveurs. Je ne vais pas détailler la configuration, le rôle est complet et dispose d’un ReadMe.
ansible-playbook ./servarr.yml -i ./inventories --ask-vault-pass --tags always,lidarr,sonarr,radarr,prowlarr
Configuration¶
Reverse proxy avec nginx¶
Comme toujours, je préfère mettre mon nginx en reverse proxy plutôt que d’exposer les ports par défauts sur internet. Pour cela, on emploi toujours les mêmes méthodes, et je ne les détaillerais pas ici :
Création d’un certificat personnel ou via LetsEncrypt
Création d’un enregistrement DNS
J’ai décidé de faire un site par service (ex : radarr.luclis.fr, sonarr.luclis.fr …). Il aurait pu être intéressant de faire un site avec des sous-sites (ex: servarr.luclis.fr/radarr). Ça m’aurait plu pour faire un dashy pour la page de base.
La configuration du nginx elle ressemble à ça.
#radarr nginx conf
server {
listen 80;
server_name radarr.luclis.fr srvprj02ovh.luclis.fr;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name radarr.luclis.fr srvprj02ovh.luclis.fr;
ssl_certificate /etc/ssl/public/radarr.luclis.fr_chain.pem;
ssl_certificate_key /etc/ssl/private/radarr.luclis.fr.key;
client_max_body_size 50m;
#Fichier de logs
access_log /var/log/radarr_access.log;
error_log /var/log/radarr_error.log;
location / {
proxy_pass http://localhost:7878;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload;";
}
}
Reverse proxy avec apache¶
Je me suis retrouvé à faire un reverse proxy avec apache cette fois. Donc autant le présenter également.
<VirtualHost *:80>
ServerName radarr.morphee.ninja
Redirect permanent / https://radarr.morphee.ninja/
ErrorLog /var/log/apache2/radarr-error.log
CustomLog /var/log/apache2/radarr-access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName radarr.morphee.ninja
Protocols h2 http/1.1
SSLEngine on
# Enable only strong encryption ciphers and prefer versions with Forward Secrecy
SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
# Letsencrypt's certbot will place a file in this folder when updating/verifying certs
# This line will tell apache to not to use the proxy for this folder.
SSLCertificateFile /etc/letsencrypt/live/radarr.morphee.ninja/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/radarr.morphee.ninja/privkey.pem
ProxyPass "/.well-known/" "!"
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:7878/ connectiontimeout=5 timeout=300
ProxyPassReverse / http://127.0.0.1:7878/
ErrorLog /var/log/apache2/radarr.morphee.ninja-error.log
CustomLog /var/log/apache2/radarr.morphee.ninja-access.log combined
</VirtualHost>
</IfModule>
Sécurisation¶
Gestions des groupes¶
L’ensemble des outils part du principe qu’ils utilisent chacun leur propre compte et un groupe commun, media. Ce dernier est également celui avec lequel doit tourner le mediacenter et les clients de téléchargement.
Mise en place de flaresolverr¶
Utilisation¶
Configuration des outils¶
Interfacer prowlarr avec un service¶
Chacun des outils fonctionnant globalement dans leur coins, prowlarr a pour objectif d’unifier la configuration de chacunes des applications. Pour cela, il faut interfacer ce dernier avec les applications.

Pour rajouter une application, il suffit de cliquer sur le +

Si la configuration est classique (prowlarr sur le même serveur que le service), cette dernière va aller vite. Il suffit de récupérer le token d’API sur le service.
N.B : Il faudra faire attention aux tags que l’on mettra ici. Ces derniers permettent de préciser depuis quel site on veut télécharger des fichiers.

Pour trouver le token API, il suffit de se rendre sur l’application en question dans settings->general. Pour des raisons évidentes, je n’ai pas screen les valeurs …
]
Une fois cette configuration validée, il faudra la répéter pour tous les services mis en oeuvres.
Rajout d’un indexer sur Prowlarr¶
Les indexers de Prowlarr sont en fait des sites sur lesquels va aller pouvour récupérer vos films, series etc. Plusieurs s’offrent à vous, en fonction de ce que vous utilisez quotidiennement, vous aller pouvoir décider de tout ça. Dans mon cas, je vais présenter Sharewoord, suite à des problèmes avec flaresolverr et ygg.

Pour rajouter un indexer, Le petit +, et on recherche le nom de son indexer.
.
Le sync profile va vous permettre de décider dans quels cas utiliser l’indexer (recherche manuelles ? recherches automatiques ? Flux RSS ?). Je les ai laissés par défaut, je ne vois pas l’intérêt de le changer.
Le radio permet de stopper automatiquement le téléchargement quand on a donné assez. Je ne vois pas l’intérêt comme la plupart des sites demandent à ce qu’on ai partagé plus que téléchargé.
Vos paramètres d’authentification. Il seront stockés dans la bdd, je n’a pas regardé comment (encore).
Search freeleech only force l’indexer à n’être utilisé qu’en cas de période de téléchargement gratuit. Ça peut être intéressant si vous avez un petit ratio.
Enfin, le tag permet de définir sur quel applications on va vouloir utiliser cet indexer. Il faut en mettre un, sinon l’indexer ne s’active pas. J’ai mis le nom du site généralement, mais on peut mettre « global » par exemple.
N.B C’est ici qu’il faudra mettre un tag comme avecflaresolverrsi ce denrier doit l’utiliser.
Une fois rempli, ce dernier devrait arriver sur vos services directement.
Les téléchargements devraient pouvoir commencer automatiquement.
Les clients de téléchargements¶
Sur chacunes des applications, il faut maintenant configurer le ou les clients qui vont être utilisés pour télécharger des fichiers. Dans Settings->Download Clients, Rajouter un nouveau client. Dans mon cas, j’utilise transmission, je n’ai pas testé les autres. Là encore, la configuration est simple si vous êtes sur la même machine des deux côtés. Sinon, il faut que le service puisse avoir accès à l’API.

Point d’attention très important, la Category est en faite le dossier dans lequel seront mis les fichiers. Il est important ici de la définir sur le dossier où seront placés les téléchargements. Exemple pour moi : Musique.
Series & Animes ? Le cas de Sonarr¶
Pour sonarr, j’ai décidé de séparer mes séries et mes animés dans deux dossiers différents. Pour faire ce filtrage, il faut donc créer deux download clients, et attribuer un tag à chacun d’entre eux. Le premier sera series et le second animes.

Après, il faudra taguer chaque séries/animes avec le bon tag pour qu’il utilise son bon client de téléchargement.
Les profiles de téléchargement¶
Chacune des applications embarque différents profiles de téléchargement. Il faut comprendre par là qu’il s’agit de la langue et qualité que l’on souhaite avoir pour les films. Dans ma logique, je veux éviter d’avoir des fichiers trop voluminueux. Donc je vais prendre mes films et séries en 1080p par défaut. Si jamais le film est vraiment beau, je le veux en 2160p. Pour ça, il faudra donc 2 profils, un 1080p et un 2160p. J’ai donc laisser que trois profils. Any, 1080p et 2160p.
Note : Il est possible d’améliorer encore notre filtre en précisant une taille maximale pour les fichiers. Ça se passe dans l’onglet quality et consiste à définir une quantité de donnée/minutes max. Si le film dépasse, il ne sera pas télécharger. Pratique pour forcer le h265.

Note : Il est également possible de préciser quel type de release on veut, en forçant la recherche d’un mot clé. Je m’en servirai peut-être pour forcer le h265 ou des « teams » afin d’avoir toute une série de la même team pour maximiser la disponibilité et le ratio.
Note : Il semblerait que le mieux pour forcer le h265 ça, c’est d’utiliser des custom format. Pastester également.
L’emplacement des médias¶
Le principe de la suite servarr est de décorreler la bibliothèque de média de celle des torrents. Cela permet de renommer automatiquement les films et séries en fonction de ce que préfère nos outils de streaming. Pour cela, on doit définir le media manager.
La configuration est assez simple, je ne vais pas la screen. Deux points d’attentions :
Sous import, on trouve une coche
use hardlink instead of copy. Cette dernier permet, si l’on travaille sur la même partition, de créer des liens entre les fichiers. Et ça permet surtout de réduire l’espace disque utilisé !Dans le cas où vous voudrez plusieurs sorties sur votre serveur de streaming (ex : animes vs series), il va falloir créer deux dossiers, distincts.
L’autotag - la solution pour se faciliter le téléchargement¶
Pour sonarr, j’ai des mis en place un tag auto basé sur le media-path présenté au dessus. Le principe : si c’est une série, on placera le fichier dans series & on télécharge ce dernier avec le download-client « series ».
Pour ça, rendez-vous dans settings->tags

Rajout d’une series/film/artiste¶
Dans l’ensemble, le processus va être le même quelque soit l’outil utilisé. On recherche, on rajoute, on vérifie qu’il a lancé automatiquement le téléchargement.
Particularité, les outils étant en anglais, il faudra souvent le nom anglais de la série/film. Moins cool. Exemple : Easy Girl -> Easy A. Very Bad Trip -> The Hangover. En cas de doute, vérifier le nom sur tvdb.


On remarquera sur la configuration que l’on peut choisir le dossier, important pour sonarr, mais égzalement la qualité. Voilà à quoi ont servit tous les paramètres précédents.
On clique sur rajouter, et voilà pour la première étape. Désormais, le service va suivre (monitor) toute nouvelle sortie de films, séries, album concerné.
Cas particuliers :
Dans le cas des films, si l’on désire télécharger également l’ensemble des films relatifs (ex : Iron Man 1, 2, 3 … ou tout le MCU), il faut préciser Monitor
Movie and Collection
Forcer le téléchargement d’un film/série¶
Il arrive parfois qu’il n’y ai pas de téléchargement qui matchent avec le profil désiré. Dans ce cas, il faudra importer manuellement le film/saison qui manque. Pour ça, sélectionner le film voulu, et cliquer sur l’icone de personne :
Ensuite, choisir le film que l’on souhaite télécharger.
A Noter : Les tracker publiques disposent de pas mal de contenu, mais également de beacoup de faux positif comme on peut le voir. Il convient d’être attentif sur ce que l’on prends. De plus, il sont généralement moins qualitatif que les privés.
N.B : Pour choisir, je me basse sur l’indexer (je préfère les privés), la taille, et surtout le nombre de peers disponibles ! Rouge = oublie, Jaune = ça va être lent ; bleu = go.
Avant de lancer le téléchargement, passer la souris sur le point d’exclamation rouge et regarder ce qu’il précise. S’il ne donne que des informations en lien avec la qualité ou autre, on peut télécharger directement. S’il précise qu’il ne connait pas le film, il faudra faire un manual import, avec le 2nd bouton.

Import manuel d’une série téléchargée ailleurs¶
Il arrive parfois que Radarr ou Sonarr n’arrive pas à linker un téléchargement avec le nom du film. C’est particulièrement le cas si le nom est en Français. Dans ce cas, on peut l’importer manuellement. Dans le service concerné, Activity->Queue. On trouve ici les téléchargements effectués ou en cours, mais non complet.
Dans ce cas, cliquer sur l’icone de personne au bout et configurer le film/série pour qu’il corresponde au film que l’on a téléchargé sur radarr.
