--- navigation: true title: Automatisation main: fluid: false --- :ellipsis{left=0px width=40rem top=10rem blur=140px} # Servarr ::alert{type="info"} 🎯 __Objectifs :__ - Automatiser les téléchargements de films et de séries avec Radarr, Sonarr, Bazarr, Prowlarr et Overseerr. :: [Servarr](https://wiki.servarr.com/) est une collection d'applications développées dans le but d'automatiser le téléchargement, la mise à jour et la gestions des media. Ici nous allons porter notre attention sur les films et séries avec comme objectif : - Pouvoir choisir un film dans un catalogue via une interface web - N'avoir plus rien à faire à part en profiter quelques minutes plus tard sur Plex Simple. ![arr](/img/serveex/arr.svg) Je vous propose de déployer la stack puis nous verrons par la suite la configuration de chacune des apps et leur fonctionnement. ## Installer les apps --- ### Docker compose Structure des dossiers : ```console root ├── docker │ ├── plex │ │ ├── compose.yml │ │ ├── config │ │ └── transcode │ ├── tautulli │ │ └── config │ ├── sonarr │ │ └── config │ ├── radarr │ │ └── config │ ├── bazarr │ │ └── config │ ├── prowlarr │ │ └── config │ └── overseerr │ └── config └── media ├── tvseries ├── movies └── library ``` Ouvrez dockge et votre stack `plex`. Modifiez le compose comme ceci : ```yaml --- services: linuxserver_plex: image: ghcr.io/linuxserver/plex:latest container_name: plex network_mode: host environment: - PUID=${PUID} - PGID=${PGID} - TZ=Europe/Paris - VERSION=docker - PLEX_CLAIM= #optional volumes: - /docker/plex/config:/config - /docker/plex/transcode:/transcode #optional - ${MEDIA_PATH}:/media labels: - com.centurylinklabs.watchtower.enable=true restart: unless-stopped mem_limit: 4096m mem_reservation: 2048m devices: - /dev/dri:/dev/dri tautulli: image: lscr.io/linuxserver/tautulli:latest container_name: tautulli environment: - TZ=Europe/Paris volumes: - /docker/tautulli/config:/config ports: - 8181:8181 restart: unless-stopped sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID=${PUID} - PGID=${PGID} - TZ=Europe/Paris volumes: - /docker/sonarr/config:/config - ${MEDIA_PATH}:/media ports: - 8989:8989 restart: unless-stopped radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=${PUID} - PGID=${PGID} - TZ=Europe/Paris volumes: - /docker/radarr/config:/config - ${MEDIA_PATH}:/media ports: - 7878:7878 restart: unless-stopped prowlarr: image: lscr.io/linuxserver/prowlarr:latest container_name: prowlarr environment: - PUID=${PUID} - PGID=${PGID} - TZ=Europe/Paris volumes: - /docker/prowlarr/data:/config ports: - 9696:9696 restart: unless-stopped overseerr: image: lscr.io/linuxserver/overseerr:latest container_name: overseerr dns: - 1.1.1.1 - 8.8.8.8 environment: - PUID=${PUID} - PGID=${PGID} - TZ=Europe/Paris volumes: - /docker/overseerr/config:/config ports: - 5055:5055 restart: unless-stopped bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr environment: null restart: unless-stopped - PUID=1000 - PGID=1000 - TZ=Europe/Paris volumes: - /docker/bazarr/config:/config - ${MEDIA_PATH}:/media ports: - 6767:6767 ``` ::alert{type="success"} ✨ Ajoutez le label de watchtower dans chaque conteneur afin d'automatiser les mises à jour ```yaml services: plex: #... labels: - com.centurylinklabs.watchtower.enable=true tautulli: #... labels: - com.centurylinklabs.watchtower.enable=true :: Renseignez le `.env` avec les variables ci-dessous ```properties PUID= GUID= MEDIA_PATH= ``` | Variable | Valeur | Exemples | |-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------| | `PUID`{lang=properties} | A renseigner avec les infos de votre user (trouvables via la commande `id nomdutilisateur`{lang=shell}) | `1000` | | `GUID`{lang=properties} | A renseigner avec les infos de votre user (trouvables via la commande `id nomdutilisateur`{lang=shell}) | `1000` | | `MEDIA_PATH`{lang=properties} | le chemin vers votre dossier media, ici : `/media`. Attention, il doit correspondre aussi à celui qu'utilise Qbittorrent. | `/media` | Déployez la stack. ### Paramétrer Radarr --- Radarr est une app qui permet de requêter à votre place vos sources de torrent et de définir quel type de release vous souhaitez télécharger en priorité. Radarr permet aussi de mettre à jour vos films si une meilleure version est disponible. Maintenant que vous avez déployé la stack, vous pouvez vous rendre sur `http://ipduserveur:7878`. ::alert{type="danger"} :::list{type="danger"} - __En cas d'échec :__ vérifiez les règles de votre pare-feu. ::: :: Créez vous un compte, choisissez bien *forms login*. ##### Ajouter un *root folder* - Dans le menu à gauche, cliquez sur *Settings > Media Management*. - Ajoutez un *root folder*, choisisez `/media/movies` ::alert{type="warning"} :::list{type="warning"} - __Attention :__ Si vous avez déjà des films dans `movies` issus de Qbittorrent, ne les ajoutez pas dans Sonarr si ce dernier vous le propose. Radarr risque de les modifier ce qui entrainerait l'arrêt du seed par Qbittorrent. ::: :: ##### Configurer les profils Dans le menu *Settings > Profiles*, vous trouverez les profils par défaut de Radarr. Comprendre que lorsque vous faites une requete, vous demandez un de ces profils. Ainsi, radarr va chercher en priorité le parametre le plus élevé, puis s'il ne trouve pas, il va passer à celui d'en dessous etc. Vous pouvez par exemple régler comme ceci pour le profile "any", en décochant tout sauf ce qui est sur l'image, et en les mettant dans le même ordre. Avec ce profil "any", Radarr va chercher en priorité du 4K REMUX (meilleure qualité), puis s'il ne trouve pas, il va passer au critère du dessous. ![profiles_radarr](/img/serveex/radarr1.png) ##### Ajouter Qbittorrent Dans *Settings > Downloads Clients* vous allez ajouter Qbittorrent. - Renseignez le *Host* avec l'IP de votre serveur et précisez le port de la webui, si vous avez suivi mon tuto c'est le `5695`. - Renseignez le *Username* et le *Password* de votre interface Qbittorrent. - Cliquez sur *test*. - Si tout est ok, cliquez sur *save*. ##### Connecter à Plex Dans *Settings > Connect*, ajoutez une nouvelle connexion, choisissez *Plex Media Server*. - Dans *Host* mettez `plex` ou l'adresse IP de votre serveur. - Dans port mettez `32400`. - Cliquez sur le bouton bleu "authenticate with Plex.tv" et authentifiez vous avec votre compte Plex. - Appuyez sur le bouton *test*. - Si tout est ok, appuyez sur le bouton *save*. ##### Récupérer la clé API pour Prowlarr et Overserr - Dans *Settings > General*, copiez la *API Key* et notez la précieusement. ### Paramétrer Sonarr --- Sonarr est une app qui permet de requêter à votre place vos sources de torrent et de définir quel type de release vous souhaitez télécharger en priorité. Radarr permet aussi de mettre à jour vos séries si une meilleure version est disponible. - Rendez-vous sur `http://ipduserveur:8989`. - Suivez exactement les mêmes étapes que pour Radarr, et en *root folder* mettez `/media/tvseries`. ::alert{type="danger"} :::list{type="danger"} - __En cas d'échec :__ vérifiez les règles de votre pare-feu. ::: :: ### Paramétrer Prowlarr --- Prowlarr est un proxy qui permet de gérer vos sources de torrents et de les passer à Radarr et Sonarr. Rendez-vous sur `http://ipduserveur:9696` et créez vous un compte en choisissant bien *forms login*. ::alert{type="danger"} :::list{type="danger"} - __En cas d'échec :__ vérifiez les règles de votre pare-feu. ::: :: ##### Ajouter une source - Dans la section *Indexers*, ajoutez l'indexer de votre source de torrent. ##### Ajouter Radarr et Sonarr Dans la section *Settings > Apps*, ajoutez Radarr et Sonarr avec les informations ci-dessous : - Prowlarr Server : `http://prowlarr:9696` (ou remplacez prowlarr par l'IP de votre serveur) - Sonarr / Radarr Server : `http://sonarr:8989` ou `http://radarr:7878`(ou remplacez sonarr/radarr par l'IP de votre serveur) - API Key, la clé que vous avez notée pour Radarr et celle de Sonarr. - Appuyez sur *Test*. - Si tout va bien, appuyez sur *Save*. ### Paramétrer Bazarr --- Bazarr est une app qui permet de chercher automatiquement les bons sous-titre dans les langues souhaitez pour tout les films et séries que Radarr et Sonarr ajoutent pour vous. Rendez-vous sur `http://ipduserveur:9696`. ::alert{type="danger"} :::list{type="danger"} - __En cas d'échec :__ vérifiez les règles de votre pare-feu. ::: :: Rendez-vous dans *Settings > General* et créez un identifiant et un mot de passe en utilisant le *forms login*. #### Ajouter un profil de langage - Dans *Settings > Languages* cliquez sur le bouton rose *Add new profile* et nommez le. - Cliquez sur le bouton rose *Add Languages* et ajoutez les langues que vous souhaitez, par exemple *French* et *English*. - Sauvegardez et quittez. - En bas de l'ecran dans *Default Language For Newly Added Show*, cochez les deux cases et renseignez le profil que vous venez de créer. ![Bazarr](/img/serveex/bazarr2.png) - Enregistrez avec le bouton tout en haut de l'écran. #### Ajouter des fournisseurs de sous-titre - Dans *Settings > Providers*, ajoutez vos fournisseurs favoris, comme par exemple : ![Bazarr](/img/serveex/bazarr.png) - Enregistrez avec le bouton tout en haut de l'écran. #### Ajouter Radarr et Sonarr - Rendez-vous dans *Settings > Sonarr* - Dans *Adress*, mettez `sonarr` ou l'adresse IP du serveur. - Dans *Port* mettez `8989`. - Dans *API Key* mettez la clé API de Sonarr. - Cliquez sur *Test*. - Enregistrez avec le bouton tout en haut de l'écran. Faites de même avec Radarr. ### Paramétrer Overseerr --- [Overseerr](https://overseerr.dev/) est une application qui permet de naviguer dans un catalogue de film et de faire des requetes à Sonarr et à Radarr. Il suffit de naviguer dans les films ou séries, puis de cliquer sur *Demander*, et le film ou la série sera automatiquement téléchargée selon les paramètres de Radarr ou de Sonarr. Si le film ou la série n'est pas sortie, cela sera automatiquement téléchargé lorsque cela sera disponible. Ainsi, les épisodes d'une séerie arrivent automatiquement au fur et à mesure dans Plex sans aucune intervention manuelle. ![Overseerr](/img/serveex/overseerr.webp) Rendez-vous sur `http://ipduserveur:5055` et authentifiez vous avec votre compte Plex. ::alert{type="danger"} :::list{type="danger"} - __En cas d'échec :__ vérifiez les règles de votre pare-feu. ::: :: #### Ajouter Radarr et Sonarr Lorsque cela vous est demandé, ajoutez un serveur radarr : - Cochez *serveur par défaut*. - __Nom du serveur :__ Radarr - __Nom d'hôte ou adresse IP :__ `radarr` ou l'adresse IP de votre serveur - __Port :__ `7878`. - __Clé d'API :__ la clé API de Radarr. - Cliquez sur *Tester* en bas. Si tout va bien, continuez à renseigner les champs. - __Profil de qualité :__ celui que vous avez configuré (par exemple, `any`). - __Dossier racine :__ le dossier de plex. Dans nos exemples : `/media/movies`. - __Disponibilité minimale :__ `Annoncé`. Ainsi, si un film n'est pas sorti, vous pouvez le demander et il sera automatiquement récupéré à sa sortie. - Cochez les 3 cases du bas. - Sauvegardez et continuez. Puis faites de même avec Sonarr : - Cochez *serveur par défaut*. - __Nom du serveur :__ Radarr - __Nom d'hôte ou adresse IP :__ `sonarr` ou l'adresse IP de votre serveur - __Port :__ `8989`. - __Clé d'API :__ la clé API de Sonarr. - Cliquez sur *Tester* en bas. Si tout va bien, continuez à renseigner les champs. - __Profil de qualité :__ celui que vous avez configuré (par exemple, `any`). - __Dossier racine :__ le dossier de plex. Dans nos exemples : `/media/tvseries`. - __Profil de langue :__ `Deprecated`. - Cochez les 4 cases du bas. - Sauvegardez et continuez. Et voilà ! Vous n'avez plus qu'à faire une demande d'un film et d'une serie, puis de vérifier dans qbittorrent ou dans radarr/sonarr que tout va bien. Dans quelques minutes, votre media sera sur Plex ! ## Exposer Overseerr avec Swag --- Il peut etre intéressant d'exposer Overseerr, si vous souhaitez pouvoir faire des requêtes depuis l'exterieur sans VPN, ou si vous avez partagé votre Bibliothèque Plex à des utilisateurs et que vous souhaitez qu'ils aient accès à Overseerr. ::alert{type="info"} :::list{type="info"} - Nous partons du principe que vous avez le sous-domaine `films.mondomaine.fr` avec un `CNAME` qui pointe vers `films.fr` dans [zone DNS](/generalites/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur dans [les règles NAT](/generalites/nat). ::: :: Rendez-vous dans dockge, et éditez le compose de SWAG en ajoutant le réseau d'overseer, qui est celui de Plex car dans la stack Plex : ```yaml services: swag: container_name: # ... # ... networks: # Relie le conteneur au réseau custom # ... - plex # Nom du réseau déclaré dans la stack networks: # Définit le réseau custom # ... plex: # Nom du réseau déclaré dans la stack name: plex_default # Nom véritable du réseau externe external: true # Précise que c'est un réseau à rechercher en externe ``` Relancez la stack en cliquant sur "déployer" et patientez le temps que SWAG soit complètement opérationnel. ::alert{type="info"} :::list{type="info"} - Ici nous partons du principe que le nom du réseau de Tautulli est `plex_default`. Vous pouvez vérifier que la connexion est opérationnelle en visitant le dashboard de SWAG en tapant `http://ipduserveur:81`. ::: :: Créez le fichier `films.subdomain.conf` et éditez le : ::alert{type="success"} ✨ __Astuce :__ vous pouvez utiliser [File Browser](/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: ```shell sudo vi /docker/swag/config/nginx/proxy-confs/films.subdomain.conf ``` Rentrez en édition en appuyant sur `i`: ```nginx ## Version 2024/07/16 # make sure that your overseerr container is named overseerr # make sure that your dns has a cname set for overseerr server { listen 443 ssl; listen [::]:443 ssl; server_name films.*; include /config/nginx/ssl.conf; client_max_body_size 0; # enable for ldap auth (requires ldap-location.conf in the location block) #include /config/nginx/ldap-server.conf; # enable for Authelia (requires authelia-location.conf in the location block) #include /config/nginx/authelia-server.conf; # enable for Authentik (requires authentik-location.conf in the location block) #include /config/nginx/authentik-server.conf; location / { # enable the next two lines for http auth #auth_basic "Restricted"; #auth_basic_user_file /config/nginx/.htpasswd; # enable for ldap auth (requires ldap-server.conf in the server block) #include /config/nginx/ldap-location.conf; # enable for Authelia (requires authelia-server.conf in the server block) #include /config/nginx/authelia-location.conf; # enable for Authentik (requires authentik-server.conf in the server block) #include /config/nginx/authentik-location.conf; include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; set $upstream_app overseerr; set $upstream_port 5055; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; } location ~ (/overseerr)?/api { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; set $upstream_app overseerr; set $upstream_port 5055; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; } } ``` Appuyez sur `Echap` puis sauvegardez et quittez en tappant `:x` Patientez quelques minutes puis tapez dans votre navigateur `http://films.mondomaine.fr`. ::alert{type="danger"} :::list{type="danger"} - __En cas d'échec :__ vérifiez les règles de votre pare-feu. ::: :: Et voilà, vous avez exposé Overseerr !