Домашний Сервер: Часть 5 – Установка и настройка Plex Media Server в контейнере LXC Proxmox-VE

  1. Домашний Сервер: Часть 1 – Предисловие, аппаратная и софтовая начинка
  2. Домашний Сервер: Часть 2 – Установка системы виртуализации Proxmox
  3. Домашний Сервер: Часть 3 – Внутренний DNS сервис на BIND9 или свои доменные имена в локальной сети
  4. Домашний Сервер: Часть 4 – Настройка Transmission daemon в контейнере LXC Proxmox-VE
  5. Домашний Сервер: Часть 5 – Настройка Plex Media Server в контейнере LXC Proxmox-VE (вы тут)

 

Предисловие

Ну вот мы и добрались до самого медиасервиса с помощью которого можно просматривать свою медиатеку.

Познакомился я с Plex еще лет пять назад, тогда он был проще, но позволял делать все, что необходимо.

Кратко, что такое Plex? — По сути это медиа «комбайн» или центр управления, с помощью которого вы можете удобно хранить, искать и воспроизводить свой медиа контент и это не только фильмы или сериалы, это могут быть изображения и музыка. Командой Plex выпущены приложения для различного типа устройств, чтобы можно было начать смотреть фильм дома на большом экране и досмотреть например его в дороге.

Источник: www.plex.tv

 

Кстати недавно Plex запустил собственный бесплатный потоковый сервис с поддержкой рекламы.

Источник 5 dec 2019 (ENG): www.flatpanelshd.com

 

И еще, вы знали, что Plex поддерживает VR?

Т.е. если у вас нет большого экрана, но есть VR, вы можете создать себе свой собственный виртуальный кинотеатр. Правда есть пара нюансов =)

www.plex.tv/virtual-reality

 

Можно принять участие в переводе Plex

https://www.transifex.com/plex-1/plex-web/

 

P.S.

Скажу сразу — это не реклама. От слова «совсем». Просто на текущий момент это единственная грамотная система для просмотра локальной медиатеки на различных устройствах, причем абсолютно бесплатно!

Установка Plex Media Server

В первую очередь необходимо развернуть отдельный LXC контейнер для медиасервера.

Подробно мы это разобрали в статье: Домашний Сервер: Часть 3 – Внутренний DNS сервис на BIND9 или свои доменные имена в локальной сети

Также для Plex Media Server понадобится доступ к месту хранения скачанных медиа файлов фильмов и сериалов, делаем по аналогии с Torrent качалкой

Мы разобрали это в статье: Домашний Сервер: Часть 4 – Настройка Transmission daemon в контейнере LXC Proxmox-VE

По итогу получаем финальный конфиг LXC контейнера для Plex в Proxmox-VE

 

cat /etc/pve/lxc/102.conf

 

#*) plexmediaserver

#*) snmpd

#*) nginx

arch: amd64

cores: 4

hostname: PLEX

memory: 2048

mp0: /rpoolz/data,mp=/mnt/data

nameserver: 192.168.88.7 192.168.88.1

net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=52:60:C0:78:C1:71,ip=dhcp,type=veth

onboot: 1

ostype: debian

rootfs: local-zfs:subvol-102-disk-0,size=8G

searchdomain: gregory-gost.ru

swap: 2048

unprivileged: 1

 

Запустим контейнер и перейдем к установке и настройке Plex Media Server

 

Проверяем смонтированную папку

 

ls -l /mnt/

total 1

drwxrwxrwx 4 nobody nogroup 4 Sep 25 23:14 data

 

Видим нужную нам папку, все хорошо, продолжаем.

 

Обновляем контейнер и устанавливаем дополнительные утилиты

 

apt update && apt full-upgrade -y

 

apt install net-tools curl apt-transport-https

 

Разработчики Plex любезно предоставляют полноценный репозиторий для обновлений через APT.

Т.е. нам не нужно качать исходники, собирать пакет и т.д., что безусловно намного удобнее!

Источник (ENG): Enable repository updating for supported Linux server distributions

 

 

В этой статье рассматривается процесс установки в контейнере Debian: DEB-based distros (Debian, Ubuntu, etc.)

По ссылке разработчиков Plex, также присутствует инструкция добавления репозитория для RPM-based distros (Fedora, CentOS, etc.)

 

Скачиваем и устанавливаем ключ от репозитория

 

curl https://downloads.plex.tv/plex-keys/PlexSign.key | apt-key add -

 

Создадим файл источника для установки и обновлений.

 

nano /etc/apt/sources.list.d/plexmediaserver.list

 

# Plexmediaserver

deb https://downloads.plex.tv/repo/deb public main

 

Обновляем репозитории

 

apt update

 

Подготовка завершена, устанавливаем Plex Media Server

 

apt install plexmediaserver

 

При окончании установки появится запрос замены файла репозитория.

Я рекомендую оставить вариант по умолчанию. Т.е. не заменять файл репозитория созданный нами, на файл предлагаемый пакетом Plex

 

Файл настройки "/etc/apt/sources.list.d/plexmediaserver.list"

==> Файл, созданный вами или сценарием.

==> Также, файл в пакете, предоставленный сопровождающим пакета.

Что нужно сделать? Есть следующие варианты:

Y или I : установить версию, предлагаемую сопровождающим пакета

N или O : оставить установленную на данный момент вермию

   D    : показать различия между версиями

   Z    : запустить оболочку командной строки для проверки ситуации

По умолчанию сохраняется текущая версия файла настройки.

*** plexmediaserver.list (Y/I/N/O/D/Z) [по умолчанию N] ?

 

Дожидаемся окончания процесса установки и запуска.

Проверяем запущен ли Plex

 

service plexmediaserver status

 

Если видим то, что ниже, значит все хорошо.

 

Active: active (running)

 

Сервер Plex будет работать по IP адресу контейнера.

WEB интерфейс запущен на TCP порту 32400 и еще необходимо указать дополнительный путь /web/

 

netstat -nltp4

tcp        0      0 0.0.0.0:32400           0.0.0.0:*               LISTEN      27590/Plex Media

 

Откроем в браузере свой сервер набрав IP адрес и порт. У меня IP контейнера 192.168.88.8

192.168.88.8:32400/web/

gost-plex-1
 

После входа, Plex запросит вашу Учетную запись. Если у вас её нет, то будет необходимо пройти простую процедуру регистрации. Благо есть возможность заходить через учетные записи Google или Facebook.

После входа вас вернет на локальный сервер.

gost-plex-2
Вводное информационное окно

Далее необходимо выполнить первичную настройку Локального Сервера

 

После данного этапа сервером уже можно начинать пользоваться. Но есть еще некоторые вещи, которые упростят пользование данным сервисом и сделают его более понятным для пользователя владеющим Русским языком.

 

Установка и настройка nginx

 

Т.к. у нас есть DNS, реализуем вход по доменному имени, например у меня plex.gregory-gost.ru

Как видите никаких портов и дополнительных путей вводить при этом не требуется.

Сравните, что удобнее, понятнее и привычнее?

192.168.88.8:32400/web/

или

plex.gregory-gost.ru

 

Для этого используем реверс прокси.

Ставим nginx, останавливаем, удаляем базовый сайт «hello world» и добавляем свои настройки.

 

apt install nginx

 

service nginx stop

 

rm /etc/nginx/sites-enabled/default

 

nano /etc/nginx/nginx.conf

 

error_log               /var/log/nginx/error.log crit;

pid                     /var/run/nginx.pid;

worker_rlimit_nofile    8192;

timer_resolution        100ms;

include                 /etc/nginx/modules-enabled/*.conf;



events {

        multi_accept    on;

        accept_mutex    off;

        use             epoll;

}



http {

        include         /etc/nginx/mime.types;

        include         /etc/nginx/fastcgi.conf;

        default_type    application/octet-stream;



        sendfile        on;

        tcp_nopush      on;

        tcp_nodelay     on;



        #ssl_session_cache      shared:SSL:10m;

        #ssl_session_timeout    10m;



        include         /etc/nginx/conf.d/*.conf;



}

 

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

 

upstream plex_backend {

        server          127.0.0.1:32400;

        keepalive       32;

}



server {

        listen          80;

        server_name     plex.gregory-gost.ru;



        send_timeout    100m;



        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].";



        client_max_body_size 100M;



        proxy_http_version 1.1;

        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 Upgrade $http_upgrade;

        proxy_set_header Connection "Upgrade";



        proxy_redirect off;

        proxy_buffering off;



        location / {

                if ($http_x_plex_device_name = '') {

                        rewrite ^/$ http://$http_host/web/index.html;

                }

                proxy_pass http://plex_backend;

        }



}

 

Запускаем nginx и проверяем вход по доменному имени

 

service nginx start

 

Установка плагина Kinopoisk

 

Plex поддерживает различные плагины, которые немного упрощают жизнь. Для того, чтобы фильмы в библиотеке обрабатывались корректно и метаданные по ним скачивались на Русском языке можно и не ставить данный плагин. Plex умеет по умолчанию работать с The Movie Database (TMDb) и подгружает русские названия с описанием и постеры от туда. Правда рейтинг также берется с TMDb.

Благо есть «в нашем селении» способные умельцы. Уважаемый amirotin разработал плагин, который парсит метаданные с Кинопоиска.

С декабря 2019 года, amirotin перестал заниматься плагином и его поддержку на себя взял ziemenz.

 

Возможности плагина:

 

    1. Загрузка рейтингов для фильмов

 

    • Kinopoisk

 

    • Rotten Tomatoes

 

    • IMDb

 

    • The Movies Database

 

 

  • Источники рецензий на фильмы

 

    • Kinopoisk

 

    • Rotten Tomatoes

 

 

  • Загрузка трейлеров фильмов

 

  • Загрузка дополнительных материалов (сцены, интервью)

 

  • Загрузка английских имен актеров

 

  • Приоритет локализованных обложек фильмов

 

  • Поддержка прокси-серверов (http, sock5)

 

 

Я надеюсь, что данный плагин не является нарушением авторских или каких-либо других прав компании ООО «Яндекс» (владеет Кинопоиском с 15 октября 2013 г.) т.к. это не коммерческий софт

У себя, я использую Релизную версию плагина 2.0.1 от 29 февраля 2020 г.: Стабильный релиз v2.0.1

Инструкция для других OS(Windows, MacOS, FreeBSD, FreeNAS, QNAP, ): https://github.com/amirotin/Kinopoisk.bundle

Новая страница с исходниками плагина: https://github.com/ziemenz/Kinopoisk.bundle

Переходим в папку с плагином, скачиваем и распаковываем

cd /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/

 

wget https://github.com/ziemenz/Kinopoisk.bundle/archive/v2.0.1.tar.gz

 

tar xvzf v2.0.1.tar.gz

 

Переименовываем папку т.к. она содержит лишнее «2.0.1»

 

mv Kinopoisk.bundle-2.0.1 Kinopoisk.bundle

 

Даем права для Plex Media Server на папку

 

chown -R plex:plex Kinopoisk.bundle/

 

Финальный вариант работающего Plex Media Server

gost-plex-6
Скриншот Web интерфейса Plex Media Server

 

Некоторые настройки Plex Media Server

 

Покажу некоторые настройки, которые у меня установлены для Plex Media Server.

В основном это настройки библиотек и плагинов обработки для них, остальные вы можете изучить самостоятельно, благо все на Русском языке.

Для фильмов Кинопоиск 2.0

Для сериалов The Movie Database т.к. плаин Кинопоиска пока не умеет работать с сериалами.

Изображения кликабельны:

 

TV Приставки и приложения для просмотра

 

И еще, немного затронем то, на чем все это великолепие можно смотреть!

Я использую на текущий момент:

 

    1. Xiaomi Mi Box S (MDZ-22-AB) Global Version — Использую на текущий момент. Все устраивает полностью, Android TV с приложением Plex, удобный Bluetooth пульт. (5 990 руб. на дату написания статьи в магазине Xiaomi. На Ali дешевле.)

 

    1. Raspberry Pi 3B+ с LibreELEC 9.2.0 — Установлен скрипт Plex с автозапуском. Пока единственный нормальный Custom по опыту. В целом задачи решает, но не так удобен, как Mi Box S на Android TV. Я писал статью по использованию: Домашний Медиа-плеер: LibreELEC(Kodi) на Raspberry Pi 3B+. Но планирую заменить на какой-нибудь Smart Box

 

 

Что еще можно использовать?

 

    1. Google Chromecast Ultra — Собственно плеер на Android TV от самого Google, функции аналогичные Mi Box S, но нет в комплекте Bluetooth пульта.

 

    1. Nvidia Shield TV 2019 — Обновленная «приставка» от Nvidia. С пультом, аналог Mi Box S и Google Chromecast Ultra, но дороже (13 990 руб. на дату написания статьи в магазине Nvidia)

 

    1. Nvidia Shield TV Pro 2019 — Более прокачанная версия «шилда» причем Plex Media Server уже встроен в этот медиаплеер, что конечно сомнительно всего 16Гб места, часть из которого занимает система. Даже с учетом возможности подключения HDD/SSD. (17 590 руб. на дату написания статьи в магазине Nvidia)

 

    1. Другие китайские или Российские(российско-китайские?) приставки на базе простого Android, CoreELEC, Android TV, др. — Ценники начиная от 1 500 руб. (Ugoos, H96, X96, X88, Movix Pro и т.д. и т.п.)

 

    1. Приложение PlexApp (офф версия требует PlexPass) — Есть, как для iOS так и для Android. Ставится на любой планшет, смартфон и т.д.Присутствует на некоторых Smart TV, тут вам нужно изучить набор приложений для вашего телевизора.

 

    1. Raspberry Pi и его аналоги на базе Kodi. Домашний Медиа-плеер: Raspbian + Kodi + плагин Plex на Raspberry Pi 3 B+

 

 

На февраль 2020:

Если хотите нормальные UHD(«4K» Ultra HD 2160p) с HDR и Автофреймрейтом, то смотрите в сторону Ugoos AM6+ или Pro, Nvidia Shield TV 2019 Pro

Для FHD(Full HD 1080p) Xiaomi Mi Box S побюджетней.

 

Если что-то забыл, пишите в комментариях, добавлю 🙂

 

Заключение

 

На этой радостной ноте предлагаю, закончить свое повествование по реализации Домашнего медиа сервера. Мы своего добились, фильмы и сериалы качаются на раз-два, просмотр доставляет одно удовольствие, ПК не захламлен кучей фильмов.

Возможно существуют и альтернативы Plex-у, в виде каких-то DLNA клиентов или даже тот-же Kodi, но все они не так удобны и проработаны, что дает очевидный выбор в пользу Plex. Даже при наличии различного рода сервисов, которые избыточны для домашнего локального просмотра, Plex их не навязывает и они не заметны. Это позволяет использовать его с комфортом.

Мне остается только понадеятся на грамотное развитие данной системы в будущем и пожелать его авторам успехов.

А вам дорогие читатели находить новые решения, использовать все самое лучшее и делиться впечатлениями!

 

В рамках цикла «Домашний сервер» планирую еще две статьи

    1. The Dude — мониторинг девайсов в домашней сети.
    1. FreePBX (Asterisk) — IP телефония.

А вот реализация Домашнего IoT пойдет в отдельный цикл, чтобы было проще ориентироваться в дальнейшем. Посмотрим будет ли интерсено читателям )

    1. openHAB 2 — домашний IoT.

 

Благодарю за ваше время!

Всего хорошего на просторах Интернета 😉

 

UPD: 29.02.2020

Изменен источник и инструкция для плагина Kinopoisk.