Installer Jellyseer avec Docker

Tutoriel d'installation de Jellyseer sous Docker, une application qui va vous permettre de gérer les requêtes de contenus des utilisateurs de votre instance Plex ou Jellyfin.

Installer Jellyseer avec Docker
Jellyseer docker seedbox

Au sommaire :

  • 1-Qu'est-ce que Jellyseerr ?
  • 2-Prérequis
  • 3-Déploiement
  • 4-Configuration
  • 5-Exposer son instance avec Traefik

1-Qu'est-ce que Jellyseerr ?

Jellyseerr est un fork de Overseer qui va permettre aux utilisateurs de votre instance (Plex, Emby et Jellyfin) d'effectuer des requêtes de films et séries.

Pour ma part, avec des collègues on s'est dis que ce serait cool de récupérer la plupart des films cultes (et aussi des nanars) des années 80/90 donc avec Jellyseerr, ils pourront chercher les films (ou séries) et m'envoyer des requêtes de contenus à télécharger.

En acceptant une requête, Jellyseerr va ajouter le film ou la série à Radarr/Sonarr et télécharger automatiquement le contenu souhaité.

2-Prérequis

Pour déployer Jellyseerr, 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, Jellyfin, Radarr ou Sonarr nécessaire

Enfin, pour que Jellyseer fonctionne correctement, vous devrez disposer d'une instance de Plex, Jellyfin, Radarr ou Sonarr. Nous recommandons l’utilisation de Jellyfin pour sa gratuité et son caractère open source. Vous trouverez ici les guides pour installer ces outils sous Docker.

Installer Plex avec Docker
Guide d’installation de Plex sous Docker.
Installer Jellyfin avec Docker
Guide d’installation de Jellyfin sous Docker, une alternative à Plex.
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.

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:

  jellyseerr:
    image: fallenbagel/jellyseerr:latest
    container_name: jellyseerr
    volumes:
      - ${APPDATA}/jellyseerr:/app/config
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    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/jellyseerr)
  • 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

Accédez à l'interface web puis choisissez la langue de votre choix en cliquant sur l'icône en haut à droite.

Authentifiez-vous en cliquant en cliquant sur "Sign In" si vous avez une instance Plex (Plex centralise tout les identifiants).

Si vous avez Emby ou Jellyfin, indiquez les informations suivantes :

  • Jellyfin URL : l'adresse web de votre instance Emby ou Jellyfin
  • Email Address : votre adresse mail
  • Username : l'identifiant de votre compte Emby ou Jellyfin
  • Password : Le mot de passe de votre compte Emby ou Jellyfin

Cliquez sur "Sync Librairies" et activez celles que vous souhaitez. Sur mon instance j'en est 3 :

  • Documentaires
  • Films
  • Collection (regroupement des films d'une même série)

Cliquez sur "Start Scan" vu que c'est la première fois que vous lancez Jellyseerr.

Normalement, il ne sera exécuté qu'une fois toutes les 24 heures. Jellyseerr vérifiera plus agressivement les ajouts récents de votre serveur Jellyfin. Si c'est la première fois que vous configurez Jellyseerr, 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 Jellyfin (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 jellyfin" pour le visionner sur Jellyfin.

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

Ensuite, l'utilisateur devra choisir un film ou une série (L'impasse, film culte des années 90 que je vous recommande VIVEMENT).

Il doit cliquer sur "Request".

Puis il pourra choisir le profil (HD-1080p par défaut) puis en cliquant sur "Request", le film sera ajouté immédiatement sur Radarr.

Pour l'exemple je vais effectuer la requête au nom de l'utilisateur, ce qui va automatiquement ajouter le film sur Radarr en mode "Monitoring" (téléchargement automatique).

Je retrouve le film dans les requêtes.

Et également sur Radarr où ce dernier va le télécharger automatiquement.

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/Jellyfin", 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

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 Jellyfin.

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"

  jellyseerr:
    image: fallenbagel/jellyseerr:latest
    container_name: jellyseerr
    volumes:
      - ${APPDATA}/jellyseerr:/app/config
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    networks:
      - web
#    ports:
#      - 5055:5055
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.http.routers.jellyseerr.entrypoints=websecure
      - traefik.http.routers.jellyseerr.rule=Host(`jellyseerr.<domain_name>`)
      - traefik.http.routers.jellyseerr.service=jellyseerr-svc
      - traefik.http.services.jellyseerr-svc.loadbalancer.server.port=5055
      - traefik.http.routers.jellyseerr.tls.certresolver=letsencrypt