Comment installer Plex Media Server sur CentOS 8

Plex est un serveur multimédia gratuit, open-source et complet qui te permet de diffuser tes photos, tes vidéos et tes fichiers audio sur ton PC, ta tablette ou ton téléphone, où que tu sois dans le monde. Plex prend en charge la plupart des systèmes d’exploitation, notamment Linux, Windows, Mac et FreeBSD. Plex prend aussi en charge plusieurs plugins qui te permettent de regarder du contenu de Comedy Central et MTV.

Plex est un système de lecteur multimédia client-serveur. Il te suffit d’installer le serveur Plex sur le serveur où tu conserves tes médias, puis d’installer une application Plex sur ton téléphone, ta tablette ou d’autres appareils pour accéder à tes médias sur Internet.

Caractéristiques Prend en charge plusieurs utilisateurs. Affiche des recommandations de films/émissions de télé. Crée une liste de lecture pour ta musique et tes films préférés. Synchronise et accède aux fichiers multimédias pour une utilisation hors ligne. Le contrôle parental te permet d’installer l’application Plex sur l’appareil d’un enfant et de le limiter à regarder des contenus spécifiques uniquement. Possibilité de diffuser tes chaînes de télévision locales sur ton appareil et de regarder la télévision en direct.

Dans ce tutoriel, nous allons te montrer comment installer Plex Media Server sur un système CentOS 8 avec Nginx comme proxy inverse.

Conditions préalables

  • Un serveur exécutant CentOS 8 avec un minimum de 2 Go de RAM.
  • Un nom de domaine valide est pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur ton serveur.

Mets le système à jour

Tout d’abord, il est recommandé de mettre à jour ton serveur avec la dernière version. Tu peux le mettre à jour en utilisant la commande suivante :

dnf update -y

Une fois que ton serveur est mis à jour, redémarre-le pour appliquer les changements.

Installer le serveur multimédia Plex

Par défaut, le paquet du serveur multimédia Plex n’est pas disponible dans le référentiel par défaut de CentOS 8. Tu devras donc créer un référentiel pour le serveur multimédia Plex. Tu peux le créer avec la commande suivante :

nano /etc/yum.repos.d/plex.repo

Ajoute les lignes suivantes :

[Plex]
name=Plex
baseurl=https://downloads.plex.tv/repo/rpm/$basearch/
enabled=1
gpgkey=https://downloads.plex.tv/plex-keys/PlexSign.key
gpgcheck=1

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, installe le serveur multimédia Plex à l’aide de la commande suivante :

dnf install plexmediaserver -y

Une fois l’installation terminée, démarre le service multimédia Plex et active-le pour qu’il démarre après le redémarrage du système avec la commande suivante :

systemctl enable plexmediaserver
systemctl start plexmediaserver

Tu peux aussi vérifier l’état du serveur multimédia Plex avec la commande suivante :

systemctl status plexmediaserver

Tu devrais voir la sortie suivante :

? plexmediaserver.service - Plex Media Server
   Loaded: loaded (/usr/lib/systemd/system/plexmediaserver.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-01-06 02:45:40 EST; 41s ago
 Main PID: 1009 (Plex Media Serv)
    Tasks: 113 (limit: 12552)
   Memory: 268.1M
   CGroup: /system.slice/plexmediaserver.service
           ??1009 /usr/lib/plexmediaserver/Plex Media Server
           ??1033 Plex Plug-in [com.plexapp.system] /usr/lib/plexmediaserver/Resources/Plug-ins-349e9837e/Framework.bundle/Contents/Resources/>
           ??1077 /usr/lib/plexmediaserver/Plex Tuner Service /usr/lib/plexmediaserver/Resources/Tuner/Private /usr/lib/plexmediaserver/Resour>
           ??1246 Plex Plug-in [org.musicbrainz.agents.music] /usr/lib/plexmediaserver/Resources/Plug-ins-349e9837e/Framework.bundle/Contents/>
           ??1356 Plex Plug-in [com.plexapp.agents.plexthememusic] /usr/lib/plexmediaserver/Resources/Plug-ins-349e9837e/Framework.bundle/Cont>
           ??1364 Plex Plug-in [com.plexapp.agents.themoviedb] /usr/lib/plexmediaserver/Resources/Plug-ins-349e9837e/Framework.bundle/Contents>
           ??1365 Plex Plug-in [tv.plex.agents.music] /usr/lib/plexmediaserver/Resources/Plug-ins-349e9837e/Framework.bundle/Contents/Resource>
           ??1389 Plex Plug-in [com.plexapp.agents.thetvdb] /usr/lib/plexmediaserver/Resources/Plug-ins-349e9837e/Framework.bundle/Contents/Re>
           ??1450 Plex Plug-in [com.plexapp.agents.imdb] /usr/lib/plexmediaserver/Resources/Plug-ins-349e9837e/Framework.bundle/Contents/Resou>

Jan 06 02:45:40 plex systemd[1]: Starting Plex Media Server...
Jan 06 02:45:40 plex systemd[1]: Started Plex Media Server.

À ce stade, le serveur multimédia Plex est installé et fonctionne. Tu peux maintenant passer à l’étape suivante.

Configurer le pare-feu et SELinux pour le serveur multimédia Plex

Ensuite, tu devras configurer firewalld pour autoriser les ports spécifiques du serveur multimédia Plex. Tu peux le faire en exécutant les commandes suivantes :

firewall-cmd --zone=public --add-port=32400/tcp --permanent
firewall-cmd --zone=public --add-port=32469/tcp --permanent
firewall-cmd --zone=public --add-port=8324/tcp --permanent
firewall-cmd --zone=public --add-port=3005/tcp --permanent
firewall-cmd --zone=public --add-port=32412/udp --permanent
firewall-cmd --zone=public --add-port=32413/udp --permanent
firewall-cmd --zone=public --add-port=32414/udp --permanent
firewall-cmd --zone=public --add-port=32410/udp --permanent
firewall-cmd --zone=public --add-port=1900/udp --permanent
firewall-cmd --zone=public --add-port=5353/udp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent

Ensuite, recharge le service firewalld pour appliquer les modifications :

firewall-cmd --reload

Par défaut, SELinux est activé sur le serveur CentOS 8. Tu devras donc configurer SELinux pour accéder au Plex Media Server sur Internet. Tu peux configurer SELinux à l’aide de la commande suivante :

setsebool httpd_can_network_connect on -P

À ce stade, le serveur multimédia Plex peut être accessible sur Internet. Tu peux maintenant passer à l’étape suivante.

Accéder au serveur multimédia Plex

Tu peux maintenant accéder au serveur multimédia Plex en utilisant l’URL http://your-server-ip:32400. Tu devrais voir la page suivante :

Connexion Plex

Ensuite, tu devras t’inscrire avec une adresse e-mail valide pour utiliser le service. Après une inscription réussie. Tu seras redirigé vers le tableau de bord du serveur multimédia Plex, comme indiqué ci-dessous :

Tableau de bord du serveur multimédia Plex

Configurer Nginx comme proxy inverse

Ensuite, tu devras configurer Nginx comme proxy inverse pour pouvoir y accéder avec le nom de domaine sans avoir à fournir l’adresse IP et le numéro de port.

Pour ce faire, installe d’abord le serveur web Nginx avec la commande suivante :

dnf install nginx

Une fois l’installation terminée, démarre le service Nginx et active-le pour qu’il démarre après le redémarrage du système avec la commande suivante :

systemctl start nginx
systemctl enable nginx

Ensuite, crée un fichier de configuration d’hôte virtuel Nginx pour Plex à l’aide de la commande suivante :

nano /etc/nginx/conf.d/plex.conf

Ajoute les lignes suivantes :

upstream plex_backend {
        server 127.0.0.1:32400;
        keepalive 32;
}

server {
        listen 80;
        server_name plex.example.com;

        send_timeout 100m; #Some players don't reopen a socket and playback stops totally instead of resuming after an extended pause (e.g. Ch$

       	#Plex has A LOT of javascript, xml and html. This helps a lot, but if it causes playback issues with devices turn it off. (Haven't enc$
        gzip on;
        gzip_vary on;
        gzip_min_length 1000;
        gzip_proxied any;
        gzip_types text/plain text/css text/xml application/xml text/javascript application/x-javascript image/svg+xml;
        gzip_disable "MSIE [1-6]\.";

       	#Nginx default client_max_body_size is 1MB, which breaks Camera Upload feature from the phones.
       	#Increasing the limit fixes the issue. Anyhow, if 4K videos are expected to be uploaded, the size might need to be increased even more
        client_max_body_size 100M;

       	#Forward real ip and host to Plex
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
        proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
        proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
       	#Websockets
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";

       	#Buffering off send to the client as soon as the data is received from Plex.
        proxy_redirect off;
        proxy_buffering off;

        location / {
                proxy_pass http://plex_backend;
        }
}

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, tu devras définir la taille du seau de hachage du serveur Nginx. Tu peux le faire en modifiant le fichier de configuration de Nginx :

nano /etc/nginx/nginx.conf

Ajoute la ligne suivante juste au-dessus de la dernière ligne :

server_names_hash_bucket_size 64;

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, vérifie que Nginx n’a pas d’erreur de syntaxe avec la commande suivante :

nginx -t

Tu devrais voir la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Enfin, redémarre le service Nginx pour appliquer les modifications.

systemctl restart nginx

Pour vérifier l’état du service Nginx, exécute la commande suivante :

systemctl status nginx

Si tout va bien, tu devrais obtenir la sortie suivante :

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Thu 2020-01-09 05:17:27 EST; 48s ago
  Process: 1230 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 1229 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 1227 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 1232 (nginx)
    Tasks: 2 (limit: 5060)
   Memory: 13.1M
   CGroup: /system.slice/nginx.service
           ??1232 nginx: master process /usr/sbin/nginx
           ??1233 nginx: worker process

Jan 09 05:17:25 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jan 09 05:17:27 centos8 nginx[1229]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jan 09 05:17:27 centos8 nginx[1229]: nginx: configuration file /etc/nginx/nginx.conf test is successful

Tu peux maintenant accéder à ton serveur multimédia Plex en utilisant l’URL http://plex.example.com.

Conclusion

Félicitations ! Tu as réussi à installer le serveur multimédia Plex sur CentOS 8 avec Nginx comme proxy inverse. Tu peux maintenant explorer le serveur multimédia Plex pour découvrir d’autres options et configurer ta propre médiathèque. Ensuite, tu peux installer l’application Plex à partir de la boutique Play de ton téléphone et accéder à tes médias. Tu peux aussi autoriser tes amis et ta famille à accéder à tes photos, ta musique et tes films à partir d’un navigateur Web ou d’une application Plex. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...