Aller au contenu

[TUTO] Plex via docker, version "express" + Configurations


Messages recommandés

Posté(e) (modifié)

Préambule

Nous allons voir comment faire un docker avec Plex en version "express", entre guillemets car cette version plus rapide Ă  mettre en place utilisera un script pour maintenir le docker Ă  jour et relancera plex chaque nuit par la mĂȘme, la coupure dure le temps du relancement du docker et au final inutile de surveiller github ou d'utiliser de docker aux supers droits pour maintenir Ă  jour l'image.

Si vous préférez une version plus classique vous avez mon autre tutoriel :

 

I - Préparation de l'installation

A ) On commence par la création d'un dossier "Plex" dans le dossier "docker"

B ) Création de 2 sous dossiers que vous créez dans le dossier "Plex" : "config" et "transcode"

C ) La création d'un utilisateur "Plex", pour lequel on ne définira aucun accÚs dans les applications et un droit de lecture seule sur les dossiers vidéos.

D ) Récupération du PUID/PGID pour le docker :

Connectez vous en ssh et tapez dans la console "id Plex", on prendra alors note du uid/gid retourné.

E ) Transcodage matériel

Si votre nas est bien compatible : Voir la liste

Alors vous créez un fichier "plexhw.sh" à la racine de notre dossier "Plex" contenant :

#!/bin/sh

if [ -d /dev/dri ]; then
           chmod 660 /dev/dri/renderD128
           chmod 660 /dev/dri/card0
fi

exit 0

Puis faire une tùche qui s'exécutera au démarrage : Panneau de configuration / Planificateurs de tùches / Créer / Tùche déclenchée / Script défini par l'utilisateur

Avec pour utilisateur "root", en évÚnement "Démarrage" et dans le script le chemin de notre fichier "/volume1/docker/Plex/plexhw.sh"

Exécutez manuellement la tùche pour appliquer la modification.

 

II - Création du docker

A ) Le script du docker

La création d'un fichier "dockerplex.sh" dans le dossier "Plex" contenant les lignes suivantes :

#!/bin/sh

docker pull lscr.io/linuxserver/plex:latest
docker stop Plex
docker rm Plex
docker image prune -f
docker volume ls -qf dangling=true | xargs -r docker volume rm

docker run -d \
 --cpu-shares=50 \
 --memory=4G \
 --memory-swap=4G \
 --name=Plex \
 --net=host \
 --device=/dev/dri:/dev/dri \
 -e PUID=0000 \
 -e PGID=000 \
 -e VERSION=latest \
 -e TZ=Europe/Paris \
 -v /volume1/multimedia:/data:ro \
 -v /volume1/docker/Plex/transcode:/transcode:rw \
 -v /volume1/docker/Plex/config:/config:rw \
 lscr.io/linuxserver/plex:latest

exit 0

B ) Les variables Ă  personnaliser :

1 ) La mémoire

--memory=4G \
--memory-swap=4G \

Ici le réglage est pour 4Go, valeur idéale surtout lors des parses, néanmoins vous pouvez réduire ces valeurs, il faudra mettre alors pour :

2Go : 2G

1Go : 1G

La variable memory-swap = memory, empĂȘche le docker de dĂ©border dans le swap une fois la limite de mĂ©moire max atteinte.

2 ) Transcodage matériel

Si votre nas n'est pas compatible alors vous supprimez la ligne :

--device=/dev/dri:/dev/dri \

3 ) PUID/PGID

-e PUID=0000 \
-e PGID=000 \

Par les valeurs récupérées au point "I -> D"

4 ) Les dossiers multimédias

-v /volume1/multimedia:/data:ro \

A personnaliser et multiplier en fonction de vos dossiers, par exemple :

-v /volume1/Vidéo:/data/movies:ro \
-v /volume1/Séries:/data/tvshows:ro \

C ) Création et update journalier

Nous créons une tùche qui exécutera notre fichier tous les jours à 5h30 : Panneau de configuration / Planificateurs de tùches / Créer / Tùche planifiée / Script défini par l'utilisateur

Avec pour utilisateur "root" et dans le script le chemin de notre fichier "/volume1/docker/Plex/dockerplex.sh"

Exécutez manuellement la tùche pour la création initiale.

D ) Réclamer le serveur plex

Pour cette Ă©tape, il faudra ĂȘtre rapide, aprĂšs obtention du token, vous aurez 4 minutes.

1 ) Visitez cette page Plex Token et copiez le token obtenu

2 ) Modifiez notre fichier "dockerplex.sh" puis rajoutez la variable :  

-e PLEX_CLAIM=tokenobtenu \

3 ) Exécutez manuellement de nouveau la tùche du point "II -> C"

4 ) Votre serveur est maintenant réclamé, supprimez la variable rajoutée au point "II -> D -> 2"

 

Voilà c'est terminé, Inutile de relancer la tùche à nouveau, la modification temporaire pour le token sautera à la prochaine exécution du script, en seconde partie je donnerai les configurations que j'utilise actuellement pour vous faire gagner du temps.

Adresse du serveur : https://ipdunas:32400 

(en cas d’erreur, rajoutez /web à la fin)

NB : Dockerfile avec le label watchtower :

version: "2.1"
services:
  plex:
    cpu_shares: 50
    mem_limit: 4G
    container_name: Plex
    network_mode: host
    devices:
       - /dev/dri:/dev/dri
    labels:
      - com.centurylinklabs.watchtower.enable=true
    environment:
      - PUID=0000
      - PGID=000
      - TZ=Europe/Paris
      - VERSION=latest
    volumes:
      - /volume1/multimedia:/data:ro
      - /volume1/docker/Plex/transcode:/transcode:rw
      - /volume1/docker/Plex/config:/config:rw
    restart: unless-stopped
    image: lscr.io/linuxserver/plex:latest

 

Modifié par Einsteinium
  • Einsteinium a modifiĂ© le titre en [TUTO] Plex via docker, version "express"
Posté(e) (modifié)

Configuration du serveur que l'on retrouve en cliquant sur la petite clé à molette en haut à droite de l'interface.

Je vous donne ma configuration, qui de mon point de vue est optimisĂ©, je n'utilise pas les services en ligne de plex (anglais), ni l'upload de photos (pas une photothĂšque de mon point de vue), musique (apple music pour ma part, mĂȘme si c'est sympa et bien foutu), le dlna ou le partage itunes (dĂ©passĂ©s pour les deux)

Si je ne précise pas un point particulier, alors c'est que le champs est par défaut.

A vous ensuite de personnaliser à votre sauce, cela n'est vraiment que pour vous donner une base de départ, j'y vais néanmoins de mes petits commentaires et vous invite à en débattre le cas échéant si votre avis diverge ou si vous voulez rajouter votre touche.

 

Général

Directement on clique sur le bouton "Afficher en mode avancé".

Ici vous donnez le nom de votre serveur sans caractÚres spéciaux pour ne pas avoir de problÚme, on ne coche que "Notifications push" si vous l'utilisez et on laisse le canal de mise à jour en public.

 

AccĂšs Ă  distance

On active pas l'accĂšs Ă  distance, sauf si vous voulez ouvrir votre serveur par le port, ce qui de mon point de vue craint, il vaut mieux ouvrir par un sous domaine que des bots ne trouveront pas grĂące Ă  un port scan.

Ici on ne rÚgle que "Vitesse de téléversement par internet", valeur en Mbit/s attention, exemple 400Mbits/s correspondra à 50Mo/s. (Voir google si cela ne vous parle pas)

 

BibliothĂšque

On coche tout sauf : "Analyser ma bibliothÚque périodiquement" (inutilement gourmand, il y a l'analyse auto lors de l'ajout de fichiers et les tùches planifiées pour le reste) & si vous n'utilisez pas la partie musique : "Inclure les bibliothÚques de musique dans les mises à jour automatiques" & "Activer le mélange intelligent sur les artistes et les listes de lecture musicales intelligentes"

Ensuite dans les menus déroulants :

Générer les aperçus vidéo miniatures : "jamais", gourmand, prend de la place inutilement pour un effet graphique que vous ne verrez que si vous allez dans le tableau de bord.

Générer des marqueurs d'introduction : "comme tùche planifiée", utile si vous avez un plex pass, il permet de sauter les introductions, mais gourmand, donc on le place en tùche planifiée.

GĂ©nĂ©rer les miniatures pour les chapitres : "jamais", gourmand, prend de la place inutilement, utilisable que dans certains lecteurs et au final jamais utilisĂ© depuis l'arrivĂ©e de la fonction reprendre, fonction qui Ă©tait bon du temps oĂč il fallait reprendre un film non fini.

Analyser les pistes audio pour le volume : "jamais", gourmand, prend de la place inutilement et ne sert à rien les lecteurs le faisant déjà (nivellement du volume et les transitions intelligentes)

Analyze audio tracks for sonic features : "jamais", je n'utilise pas la partie musique, mais pour plus d'information voir cette page.

VisibilitĂ© de l'emplacement : Administrateur seulement, cela ne regarde pas le commun des mortels 😉

 

Extensions :

Région "France" et désactiver les deux cases.

 

Réseau :

Activer le support ipv6 : désactiver (cause trop de problÚme)

Connexions sécurisées : Obligatoire, inutile de dire pourquoi je pense.

Les 3 champs suivants on laisse vide, car totalement inutiles, mĂȘme si vous utilisez un domaine/certificat, nous y reviendrons plus bas 🙂

Interface réseau préférée : tout

Strict TLS configuration ☑

On ne coche pas Activer la découverte du réseau local (GDM)

Flux distants autorisés par utilisateur : 3 pour ma part, à voir comment vous voyez la chose de votre cÎté.

Réseaux LAN : 192.168.0.0/255.255.255.0 ou 192.168.1.0/255.255.255.0 (ces deux choix correspondent à la plus part des réseaux, à adapter si vous avez une configuration exotique)

Interrompre les session sur pause depuis plus de 30 minutes, contre les vilains qui coupent leur TV sans arrĂȘter la diffusion.

On ne coche pas "Traiter l'IP WAN comme du débit LAN" et "Activer le relais", la premiÚre faisant sauter la limite de débit distant et la seconde inutile car bridée et peut poser des problÚmes à distance.

URL personnalisées pour accéder au serveur, si vous utilisez votre serveur que localement alors vous ne mettez que : https://192.168.X.X:32400 (en mettant l'ip de votre nas), si vous utilisez le nas en plus via un sous domaine, vous mettez alors : https://192.168.X.X:32400,https://domain.ndd.fr (Je reviendrai sur la fin au réglage à faire dans le reverse proxy)

On laissera le champs suivant vide et la derniÚre case "Webhooks" décochée.

 

Transcodeur

Qualité du transcodeur : Favoriser une haute vitesse d'encodage

Répertoire temporaire : /transcode

Taille du tampon : 60

Préréglage x264 : hyper rapide

Et on coche les 4 cases suivantes, sauf la seconde si vous voulez autoriser le transcodage vidéo.

Pour ma part tous mes lecteurs sont à jour et j'ai la fibre, les réglages sont faits pour la vitesse, si vous transcodez ils sont optimaux et le client aura la qualité qui correspondra à son débit, ce n'est pas parce qu'on aura choisi la vitesse, que l'image sera dégueulasse.

 

Langues

SĂ©lectionnez automatiquement les pistes audio et de sous-titres ☑

Et dans les menus : Français, manuellement et Français

 

DLNA

Décoché

 

Tùches planifiées

Entre 2 et 5h du matin (Rappelez vous notre dock sera relancé à 5h30) inutile de faire une plage plus longue et avec ces horaires elle se retrouve dans une plage normalement calme.

On coche tout sauf : "Mettre à jour l'analyse des médias durant la maintenance" & "Procéder à une analyse étendue des médias pendant la maintenance", deux tùches gourmandes inutiles.

Et si vous n'utilisez pas les photos : "Chercher les noms de lieux manquants pour les éléments des sections photo." & "Analyser et marquer les photos"

 

Bonus : Utilisation d'un sous domaine pour Plex

En partant du principe que votre domaine est configuré & aprÚs installation du certificat en suivant le tutoriel suivant :

Pour DSM 7, n'ayant plus vue sur DSM 6

Dans Panneau de configuration / Sécurité / Avancé / Niveau de profil TLS / SSL : Compatibilité intermédiaire

Dans : Panneau de configuration / Portail de connexion / Avancé
On clique sur le bouton "Proxy inversé" puis "Créer".

Dans Général :

Nom du proxy inversé : Plex
Source :
- Protocole : HTTPS
- Nom d'hĂŽte : plex.ndd.fr
- port : 443
Activer HSTS ☑
Destination :
- Protocole : HTTPS
- Nom d'hĂŽte : localhost
- Port : 32400

Dans En-tĂȘte personnalisĂ©e :

On fait "Créer" puis "WebSocket"
Puis on fera "Créer" puis "Créer" pour les variables suivantes :
X-Plex-Client-Identifier $http_x_plex_client_identifier
X-Plex-Device $http_x_plex_device
X-Plex-Device-Name $http_x_plex_device_name
X-Plex-Platform $http_x_plex_platform
X-Plex-Platform-Version $http_x_plex_platform_version
X-Plex-Product $http_x_plex_product
X-Plex-Token $http_x_plex_token
X-Plex-Version $http_x_plex_version
X-Plex-Nocache $http_x_plex_nocache
X-Plex-Provides $http_x_plex_provides
X-Plex-Device-Vendor $http_x_plex_device_vendor
X-Plex-Model $http_x_plex_model

Dans ParamÚtres avancés :

Les 3 délais à 60
Version HTTP du proxy : HTTP 1.1
Utiliser la page d'erreur renvoyée par le serveur cible

C'est terminĂ© pour les rĂ©glages, enjoy 😉

Modifié par Einsteinium
Ajout pour "Niveau de profil TLS / SSL"
  • 4 semaines aprĂšs...
Posté(e)

@CyberFr Merci 🙂

La diffĂ©rence entre celui ci et l'ancien, c'est la mĂ©thode de dĂ©ploiement qui ici est plus rapide, on ne par perd de temps dans l'interface graphique de docker, moins lourd en lecture on va Ă  l'essentiel, avec en prime des rĂ©glages de base pour plex 🙂

Posté(e)
Le 04/01/2022 à 10:31, Einsteinium a dit :

C ) Création et update journalier

Nous créons une tùche qui exécutera notre fichier tous les jours à 5h30 : Panneau de configuration / Planificateurs de tùches / Créer / Tùche planifiée / Script défini par l'utilisateur

Avec pour utilisateur "root" et dans le script le chemin de notre fichier "/volume1/docker/Plex/dockerplex.sh"

Exécutez manuellement la tùche pour la création initiale.

Lorsque j'exécute la tùche, le conteneur Plex disparaßt de docker. Le journal indique qu'un dossier n'a pas été trouvé et pourtant il existe bien avec le bon chemin d'accÚs.

PJ1.jpg

PJ2.jpg

PJ3.jpg

Posté(e)
Le 04/01/2022 à 10:31, Einsteinium a dit :

4 ) Les dossiers multimédias

-v /volume1/multimedia:/data:ro \

A personnaliser et multiplier en fonction de vos dossiers, par exemple :

-v /volume1/Vidéo:/data/movies:ro \
-v /volume1/Séries:/data/tvshows:ro \

Si tu regardes bien le format, c'est -v /Emplacement sur nas:/emplacement dans le docker:ro \

Toi tu as juste mis : -v /Emplacement sur nas:ro \

Posté(e)

Si je te suis bien, Vidéo, et Séries sont des dossiers partagés à le racine dans Vomume1 et data se situe dans /Volume1/docker/Plex/data. Tu le références simplement par /data précédé de deux points.

Pourquoi deux dossiers partagĂ©s pour un mĂȘme contenu ?

Désolé mais je débute.

Posté(e)

Non lĂ  je donne des exemples, ils faut montĂ© tes dossiers multimĂ©dias dans le docker pour qu’il voit tes fichiers, aprĂšs cĂŽtĂ© docker tu choisis comme tu veux, lĂ  j’ai mis /data/movies, tu peux mettre /multi/films si tu prĂ©fĂšres, regarde bien mon poste prĂ©cĂ©dent, je ne peux pas faire plus clair 🙂

Posté(e)

Merci @Einsteinium pour ton tuto clair et précis.
Ca m'a pris quelques minutes et ça fonctionne bien.


J'ai tout de mĂȘme une question pour toi concernant les applications PLEX. Lorsque je mets les paramĂštres par dĂ©faut avec l'accĂšs Ă  distance etc j'ai accĂšs Ă  mon serveur dans les applications PLEX (Windows, IOS et Android) mais de maniĂšre indirecte en dehors de mon rĂ©seau. Or quand je me connecte avec mon navigateur j'apparais en connexion directe. (Pas d'IP fixe donc DDNS et reverse proxy). Lorsque je mets tes paramĂštres, je perds complĂštement l'accĂšs Ă  mon serveur en dehors de mon rĂ©seau local pour mes applications.
Connaitrais-tu un moyen de pouvoir faire des connections directes sans VPN en dehors de mon réseau local (comme sur mon navigateur) pour les applications?

Merci d'avance,

Arnaud

Posté(e)

Au temps pour moi, tes paramĂštres fonctionnent bien, en changeant la config j'avais supprimĂ© ma rĂšgle de ports dans mon pare-feu et oublier d'indiquer l'Irlande afin de pas ĂȘtre en indirect.

Tout est rentré dans l'ordre.

Encore merci!

Posté(e)

Bonsoir,

Tout d'abord merci pour ce tuto clair et rapide a mettre en place.

J'ai appliquĂ© le tuto il y a une dizaine de jour mais seulement depuis 2 jours, j'ai une notification de DSM comme quoi le container plex s'est arrĂȘtĂ© de maniĂšre inattendue. Apparemment sans incidence sur le fonctionnement a par recevoir la notification chaque jour. (Peut-ĂȘtre que conteneur met trop de temps Ă  s'arrĂȘter ?!?)

Autre petit problÚme non bloquant, dans les log docker du conteneur plex, l'heure des log est décalée d'une heure... Pourtant j'ai bien mis Europe/Paris....

Bref si quelqu'un à une idée pour résoudre ces petits aléa.

Merci d'avance 😀

Posté(e)

Ce type d’erreur n’arrive que si l’on arrĂȘte manuellement le docker pour le relancer (un update ?), alors a l’exĂ©cution du script suivant on reçoit cette erreur, mais effectivement sans aucune importance au finale.

Je n’ai pas de problùme horaire pour ma part dans les logs
 ton nas est bien à l’heure ?

Posté(e)

Oui c'est suite au script d'update/redémarrage du conteneur. 

Mon nas est bien à l'heure et en vérifiant, c'est tous les conteneurs docker qui sont en décalage d'une heure! 

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet


×   CollĂ© en tant que texte enrichi.   Coller en tant que texte brut Ă  la place

  Seulement 75 Ă©moticĂŽnes maximum sont autorisĂ©es.

×   Votre lien a Ă©tĂ© automatiquement intĂ©grĂ©.   Afficher plutĂŽt comme un lien

×   Votre contenu prĂ©cĂ©dent a Ă©tĂ© rĂ©tabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insĂ©rez-les depuis une URL.

×
×
  • CrĂ©er...

Information importante

Nous avons placĂ© des cookies sur votre appareil pour aider Ă  amĂ©liorer ce site. Vous pouvez choisir d’ajuster vos paramĂštres de cookie, sinon nous supposerons que vous ĂȘtes d’accord pour continuer.