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

Installer Overseerr avec Docker
overseerr docker

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.

Virtualiser Ubuntu Server sur Proxmox VE
Guide d’installation de Ubuntu Server sur Proxmox VE avec mes meilleurs réglages.

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.

Initialiser vos machines virtuelles avec Cloud-init sur Proxmox VE
Guide d’installation de Cloud-Init qui va vous permettre d’automatiser vos déploiements

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.

Installer Docker
Guide d’installation de Docker.

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.

Installer Traefik avec Docker
Guide d’installation de Traefik.

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.

Installer Plex avec Docker
Guide d’installation de Plex 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.

Installer Radarr, Sonarr, Lidarr et Readarr avec Docker
Guide d’installation de Radarr, Sonarr, Lidarr et Readar sous Docker qui vont vous permettre d’automatiser le téléchargement de contenus sur votre seedbox.
Installer Tautulli avec Docker
guide d’installation de Tautulli, une application tierce pour mesurer les statistiques et l’activité de votre serveur Plex

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