Files
docudjeex/content/fr/6.recycled/3.alternatives/1.plex.md
T

11 KiB

title, description
title description
Plex Installer Plex Media Server avec Tautulli sur votre homelab pour diffuser films et séries depuis n'importe où sur tous vos appareils.

:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}

::note{to="/serveex/media/jellyfin"}

C'est une alternative à Jellyfin, conservée ici pour référence. Plex n'est pas entièrement auto-hébergé : même la lecture locale passe par le relais de Plex et exige un compte Plex, et plusieurs fonctions sont derrière le paywall du Plex Pass. ::

Plex est une plateforme de streaming vidéo auto-hébergée pour gérer votre bibliothèque de films ou de séries et les lire en local ou à distance. Plex propose des applications pour TV, Android, iOS, Windows et macOS, permettant de diffuser votre bibliothèque comme sur Netflix.

Avec le Plex Pass, vous pouvez aussi organiser et écouter votre musique à la manière de Spotify, à la différence que c'est votre contenu, hébergé et diffusé depuis votre serveur.

picture

Nous installerons également Tautulli, un outil qui fournit des statistiques détaillées sur Plex. Comme toujours, nous utiliserons les images linuxserver.io quand c'est possible.

::note

Vous devrez créer un compte Plex.tv. Vous n'avez pas besoin d'exposer votre service Plex, il sera accessible via la plateforme. Votre serveur Plex sera pilotable directement depuis votre compte. ::

Installer Plex

::file-tree

tree: /: - srv: - docker: - plex: - compose.yml - .env - config/ - transcode/ - tautulli: - config/ - media: - tvseries/ - movies/ - library/

::

::steps{level="3"}

Créer les dossiers média

Créez les dossiers movies, tvseries et library dans /media :

mkdir -p /media/movies /media/library /media/tvseries

Déployer la stack

Ouvrez Dockge dans votre navigateur et cliquez sur compose.
Nommez la stack plex et ajoutez la configuration suivante :

---
services:
  linuxserver_plex:
    image: ghcr.io/linuxserver/plex:amd64-latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=${PUID}
      - PGID=${GUID}
      - TZ=Europe/Paris
      - VERSION=docker
    volumes:
      - /srv/docker/plex/config:/config
      - /srv/docker/plex/transcode:/transcode
      - /media:/media
    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:
      - PUID=${PUID}
      - PGID=${GUID}
      - TZ=Europe/Paris
    volumes:
      - /srv/docker/tautulli/config:/config
    ports:
      - 8181:8181
    restart: unless-stopped

::tip{icon=""} Ajoutez le label Watchtower à chaque conteneur pour automatiser les mises à jour :

---
services:
  plex:
    #...
    labels:
      - com.centurylinklabs.watchtower.enable=true

  tautulli:
    #...
    labels:
      - com.centurylinklabs.watchtower.enable=true

::

Renseigner vos variables d'environnement

Trouvez vos PUID et GUID en lançant :

id utilisateur

Remplissez votre fichier .env avec les valeurs récupérées, par exemple :

PUID=1000
GUID=1000

Déployez la stack.

L'interface locale est disponible sur http://ipdevotreserveur:32400/web/index.html.
Tautulli est accessible sur http://ipdevotreserveur:8181.

::warning{to="https://support.plex.tv/articles/200288586-installation/#toc-2"}

Vous devez être sur votre réseau local pendant la configuration initiale de Plex. Sinon, l'URL redirigera vers votre compte Plex sans détecter votre serveur. Un VPN n'y changera rien. Si vous n'avez pas le choix, vous pouvez faire la configuration à distance via un tunnel SSH. ::

Terminé !

::

Paramétrer Plex

Plex propose une série de films et de séries gratuits. Après avoir créé votre compte, je vous conseille de tout désactiver dans la section Services en ligne pour garder une bibliothèque propre.

Allez ensuite dans la section Accès à distance et choisissez manuellement un port (nous prendrons 1234). Mieux vaut ne pas utiliser le port par défaut.

picture

  • Sur votre box, redirigez le port TCP 1234 vers le port 32400 de l'IP de votre serveur avec les règles NAT.
  • Une fois fait, retournez dans Plex pour vérifier que l'accès à distance fonctionne.

::caution

Si ça ne marche pas : vérifiez les règles de votre pare-feu et autorisez le port 32400 sur votre serveur. ::

  • Si vous avez le PlexPass et un GPU ou iGPU, activez l'accélération matérielle dans la section Transcodeur.
  • Dans Paramètres > Bibliothèque, activez Mettre à jour ma bibliothèque automatiquement.
  • Dans Gérer > Bibliothèque, ajoutez ou modifiez les bibliothèques en pointant /media/movies pour les films et /media/tvseries pour les séries.

Et voilà ! Vous avez un serveur Plex fonctionnel !

Ajoutez simplement vos médias dans /media/movies et /media/tvseries sur votre serveur. Vous pouvez ensuite installer l'application Plex sur vos appareils et regarder vos contenus préférés en local ou à distance.

::note{to="/general/networking/samba"}

Si vos médias sont stockés sur un disque réseau (un NAS ou un disque dur externe accessible par le réseau), reportez-vous au guide de montage Samba pour que Plex puisse y accéder. ::

Exposer Tautulli avec Swag

Vous n'avez pas besoin d'exposer Plex, il est accessible via votre compte Plex sur plex.tv.

En revanche, vous voudrez peut-être exposer Tautulli pour consulter vos statistiques depuis une simple URL quand vous n'êtes pas chez vous.

::note

Nous partons du principe que vous avez le sous-domaine tautulli.mondomaine.fr avec un CNAME pointant vers mondomaine.fr dans votre zone DNS. Et bien sûr, à moins d'utiliser Cloudflare Zero Trust, le port 443 de votre box doit être redirigé vers le port 443 de votre serveur dans les règles NAT. ::

::steps{level="3"}

Ajouter le réseau de Tautulli à SWAG

Allez dans Dockge et modifiez le fichier compose de SWAG en y ajoutant le réseau de Tautulli :

---
services:
  swag:
     container_name: # ...
      # ... 
     networks:              # Rattache le conteneur au réseau personnalisé 
      # ...           
      - tautulli            # Nom du réseau déclaré

networks:                   # Définit le réseau personnalisé
  # ...
  tautulli:                 # Nom du réseau déclaré
    name: tautulli_default  # Nom réel du réseau externe
    external: true          # Le marque comme défini à l'extérieur

Redéployez la stack et attendez que SWAG soit pleinement opérationnel.

::note

Nous partons ici du principe que le nom du réseau de Tautulli est tautulli_default. Vous pouvez vérifier la connexion en visitant le tableau de bord de SWAG sur http://ipdevotreserveur:81. ::

Créer le fichier subdomain.conf

Copiez et renommez le fichier tautulli.subdomain.conf.sample en tautulli.subdomain.conf, puis modifiez-le :

::tip{icon="" to="/serveex/files/file-browser-quantum"} Astuce : utilisez File Browser pour naviguer et modifier vos fichiers plutôt que des commandes dans le terminal. ::

sudo cp /srv/docker/swag/config/nginx/proxy-confs/tautulli.subdomain.conf.sample /srv/docker/swag/config/nginx/proxy-confs/tautulli.subdomain.conf
sudo nano /srv/docker/swag/config/nginx/proxy-confs/tautulli.subdomain.conf

Vérifiez que la configuration correspond à ce qui suit, et modifiez-la si nécessaire :

## Version 2023/05/31
# make sure that your tautulli container is named tautulli
# make sure that your dns has a cname set for tautulli

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name tautulli.*;

    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 tautulli;
        set $upstream_port 8181;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ (/tautulli)?/api {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app tautulli;
        set $upstream_port 8181;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ (/tautulli)?/newsletter {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app tautulli;
        set $upstream_port 8181;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ (/tautulli)?/image {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app tautulli;
        set $upstream_port 8181;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }
}

::tip{icon="" to="/serveex/advanced/authentik#protecting-an-app-via-reverse-proxy"} Vous pouvez protéger cette application avec Authentik en retirant le # devant include /config/nginx/authentik-server.conf; et include /config/nginx/authentik-location.conf;. N'oubliez pas de créer une application et un provider dans Authentik. ::

Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.

Terminé !

::

Attendez quelques minutes, puis ouvrez http://tautulli.mondomaine.fr dans votre navigateur.

::caution

Si ça ne marche pas : vérifiez les règles de votre pare-feu. ::

Et c'est terminé !