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.
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.
- Sur votre box, redirigez le port TCP
1234vers le port32400de 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/moviespour les films et/media/tvseriespour 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é !

