Installer Overseerr avec Docker
Tutoriel d'installation de Overseerr sous Docker, une application qui va vous permettre de gérer les requêtes de contenus des utilisateurs de votre instance Plex

Au sommaire :
- 1-Qu'est-ce que Overseerr ?
- 2-Prérequis
- 3-Déploiement
- 4-Configuration
- 5-Exposer son instance avec Traefik
1-Qu'est-ce que Overseerr ?
Overseerr est une application qui va permettre aux utilisateurs de votre instance Plex d'effectuer des requêtes de films et séries.
En acceptant une requête, Overseerr va ajouter le film ou la série à Radarr/Sonarr et télécharger automatiquement le contenu souhaité.
Cette application vous dis certainement quelque chose si vous êtes un lecteur de technonagib.fr ? C'est normal, j'ai déjà rédigé un tutoriel sur Jellyseerr qui est un fork de Overseerr compatible Jellyfin et Emby.
Le seul avantage que je constate avec Overseerr dispose d'une application mobile sur iOS/Android (payante, 2,99 euros).

Mais sinon le fonctionnement des deux applications est identique.
2-Prérequis
Pour déployer Overseer, vous devez disposer d'une machine virtuelle fonctionnant sous Ubuntu Server.
Création de la machine virtuelle :
Virtualisation avec Proxmox VE : Si vous partez de zéro, suivez mon guide détaillé pour virtualiser Ubuntu sur Proxmox VE avec des réglages optimisés.

Automatisation avec Cloud-Init : Pour gagner du temps lors de la configuration, utilisez un template Cloud-Init. Cela permet d'automatiser et de simplifier l'initialisation de vos machines virtuelles. Retrouvez les instructions dans ce guide.

Installation des outils nécessaires :
Docker et Docker Compose : Une fois la machine virtuelle prête, installez Docker et Docker Compose, indispensables pour gérer et orchestrer vos conteneurs. Ce guide vous accompagnera dans l'installation.

Exposition de l'application :
Proxy inverse avec Traefik : Pour exposer vos applications sur Internet de manière sécurisée, configurez un proxy inverse. Traefik est une solution recommandée. Suivez ce guide pour l'installation.

Instance Plex nécessaire
Enfin, pour faire fonctionner Overseerr, vous devrez disposer d'une instance Plex opérationnelle. Overseerr interagit directement avec Plex pour gérer les requêtes de films et de séries. Si vous n'avez pas encore installé Plex, suivez ce guide pour l'installer sous Docker.

Radarr, Sonarr et Tautulli nécessaires
De plus, pour que Overseerr puisse ajouter des films ou des séries automatiquement à Radarr et Sonarr, vous devrez disposer de ces applications. L'utilisation de Tautulli est également possible pour surveiller les statistiques de votre Plex, mais elle reste optionnelle. Voici les guides pour les installer sous Docker.


3-Déploiement
Commencez par créer un dossier "docker" à la racine du dossier utilisateur"
mkdir -p ~/docker
Créez un fichier nommé "compose.yml"
touch ~/docker/compose.yml
Ouvrez le fichier "compose.yml" et copiez cette configuration.
networks:
# Docker Bridge Network
default:
driver: bridge
services:
overseerr:
image: lscr.io/linuxserver/overseerr:latest
container_name: overseerr
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ${APPDATA}/overseerr:/config
ports:
- 5055:5055
restart: unless-stopped
- services : c'est là qu'il faudra ajouter les configuration de vos conteneurs
- image : nom du registry suivi du nom de l'application et du tag "latest" (lscr.io/linuxserver/overseerr)
- container_name : le nom du conteneur, sinon Docker en choisira un de manière aléatoire
- environment : indiquez les variables de base des applications Linuxserver.io comme le PUID (utilisateur), le PGID (groupe) et la TZ (timezone)
- volumes : variable ${APPDATA) (/home/user_name/appdata) suivi du nom de l'application (/app_name)
- ports : le port d'écoute pour accéder à l'interface web
- restart : unless-stopped par défaut. Le daemon de Docker redémarrera automatiquement le conteneur sauf si vous l’arrêtez, il faudra le démarrer manuellement
Enregistrez le fichier "compose.yml" et déployez le conteneur.
docker compose up -d
4-Configuration
Une fois l'application démarrée, tapez l'adresse IP de votre machine virtuelle suivi du numéro de port que vous aurez choisi.
Choisissez la langue de votre choix en cliquant sur l'icône en haut à droite.

Puis authentifiez-vous en cliquant en cliquant sur "Sign In".



- Server : vous pouvez retrouver le serveur automatiquement en cliquant sur l'icône de recherche
- Hostname or IP Address : indiquez l'adresse IP de votre serveur ou le nom de domaine de votre instance Plex
- Port : laissez par défaut
- Use SSL : si vous voulez sécuriser les échanges, activez l'option

Cliquez sur "Save Changes" puis sur "Sync Librairies" pour synchroniser vos contenus.

Cliquez sur "Start Scan" vu que c'est la première fois que vous lancez Plex.
Normalement, il ne sera exécuté qu'une fois toutes les 24 heures. Plex vérifiera plus agressivement les ajouts récents de votre serveur Plex. Si c'est la première fois que vous configurez Overseerr, un scan manuel complet de la bibliothèque est recommandé !


Cliquez sur "Continue".

Il va falloir configurer Radarr et Sonarr.

Ajoutez les informations suivantes :
- Server Name : mettez respectivement Radarr et Sonarr
- Server Name : l'adresse IP locale de votre machine virtuelle
- API Key : la clé API que vous trouverez dans Settings/General/API Key


Cliquez sur "Test" et vous devriez avoir ce message.

Pour finaliser, indiquez les informations suivantes :
- Quality Profile : HD-1080p
- Root Folder : /movies pour Radarr et /tv pour Sonarr
- Language Profile (uniquement Sonarr) : mettez "Deprecated" (option inutile)

N'oubliez pas de cocher "Default" puis cliquez sur "Finish Setup".

Tout en haut apparaîtront les contenus récemment ajoutés qui se trouvent sur votre instance Plex (uniquement visible de l'administrateur) puis les contenus tendances, populaires, etc.

Option sympathique, si je clique sur un des films, j'ai juste à cliquer sur "Play on Plex" pour le visionner sur Plex.

Dans "Users", vous pouvez créer des utilisateurs locaux ou carrément importer les utilisateurs de votre instance Plex.

Ensuite, vous ou vos utilisateurs devront choisir un film ou une série. Pour l'exemple, le documentaire "Alphago" sur le sujet de l'intelligence artificielle (je vais le faire avec mon compte pour l'exemple, pas d'utilisateurs sur mon instance actuellement).

Je clique sur "Request".

Puis je choisi le profil (HD-1080p par défaut) puis en cliquant sur "Request", le film sera ajouté immédiatement sur Radarr.
Vu que je suis administrateur, la requête est accepté automatiquement et le film sera ajouté sur Radarr en mode "Monitoring" (téléchargement automatique).


Je retrouve le film dans les requêtes.

Et également sur Radarr.

Par contre si c'est l'utilisateur qui en fait directement la demande, je le retrouve en liste d'approbation et personnellement ça m'arrange car j'ai juste besoin de savoir quels sont les contenus demandés par les utilisateurs, pour le reste je me débrouille.
Dans Settings/Services, on retrouve bien les deux instances Radarr et Sonarr (vous pouvez en ajouter d'autres).

Dans "Settings/Plex", indiquez les informations suivantes :
- Internal URL : l'adresse IP locale de votre instance suivi du numéro de port
- External URL : l'adresse web de votre instance

Si vous avez une instance Tautulli, indiquez les informations suivantes :
- Hostname or IP Address : indiquez l'adresse IP de votre serveur ou le nom de domaine de votre instance Tautulli
- Port : laissez par défaut
- Use SSL : si vous voulez sécuriser les échanges, activez l'option
- API Key : la clé API de Tautulli

Dans "Settings/Notifications", vous pouvez configurer le protocole SMTP.

Dans "Settings/Users", vous pouvez modifiez les droits des utilisateurs (la configuration par défaut me va très bien).
J'ai juste coché "Recently Added" pour que lorsque des nouveaux contenus apparaissent, les utilisateurs n'auront qu'à cliquer pour visualiser sur Plex.

Option intéressante dans dans "Setting/General Settings", vous pouvez sélectionner la langue et la région de vos contenus.

5-Exposer son instance avec Traefik
networks:
# default network
default:
driver: bridge
# Traefik network
web:
name: web
driver: bridge
services:
traefik:
container_name: traefik
image: traefik:v2
restart: always
networks:
- web
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ${APPDATA}/traefik/traefik.yml:/traefik.yml
- ${APPDATA}/traefik/dynamic.yml:/dynamic.yml
- ${APPDATA}/traefik/letsencrypt/acme.json:/acme.json
- ${APPDATA}/traefik/shared:/shared
labels:
- traefik.enable=true
- traefik.http.routers.traefik.entrypoints=websecure
- traefik.http.routers.traefik.rule=Host(`traefik.<domain_name>`)
- traefik.http.routers.traefik.service=api@internal
- "traefik.http.routers.traefik.middlewares=middlewares-basic-auth@file"
overseerr:
image: lscr.io/linuxserver/overseerr:latest
container_name: overseerr
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ${APPDATA}/overseerr:/config
networks:
- web
restart: unless-stopped
labels:
- traefik.enable=true
- traefik.http.routers.overseerr.entrypoints=websecure
- traefik.http.routers.overseerr.rule=Host(`overseerr.<domain_name>`)
- traefik.http.routers.overseerr.service=overseerr-svc
- traefik.http.services.overseerr-svc.loadbalancer.server.port=5055
- traefik.http.routers.overseerr.tls.certresolver=letsencrypt