- Домашний Сервер: Часть 1 – Предисловие, аппаратная и софтовая начинка
- Домашний Сервер: Часть 2 – Установка системы виртуализации Proxmox
- Домашний Сервер: Часть 3 – Внутренний DNS сервис на BIND9 или свои доменные имена в локальной сети
- Домашний Сервер: Часть 4 – Настройка Transmission daemon в контейнере LXC Proxmox-VE
- Домашний Сервер: Часть 5 – Настройка Plex Media Server в контейнере LXC Proxmox-VE (вы тут)
Предисловие
Ну вот мы и добрались до самого медиасервиса с помощью которого можно просматривать свою медиатеку.
Познакомился я с Plex еще лет пять назад, тогда он был проще, но позволял делать все, что необходимо.
Кратко, что такое Plex? — По сути это медиа «комбайн» или центр управления, с помощью которого вы можете удобно хранить, искать и воспроизводить свой медиа контент и это не только фильмы или сериалы, это могут быть изображения и музыка. Командой Plex выпущены приложения для различного типа устройств, чтобы можно было начать смотреть фильм дома на большом экране и досмотреть например его в дороге.
Источник: www.plex.tv
Кстати недавно Plex запустил собственный бесплатный потоковый сервис с поддержкой рекламы.
Источник 5 dec 2019 (ENG): www.flatpanelshd.com
И еще, вы знали, что Plex поддерживает VR?
Т.е. если у вас нет большого экрана, но есть VR, вы можете создать себе свой собственный виртуальный кинотеатр. Правда есть пара нюансов =)
Можно принять участие в переводе 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/
После входа, Plex запросит вашу Учетную запись. Если у вас её нет, то будет необходимо пройти простую процедуру регистрации. Благо есть возможность заходить через учетные записи Google или Facebook.
После входа вас вернет на локальный сервер.
Далее необходимо выполнить первичную настройку Локального Сервера
После данного этапа сервером уже можно начинать пользоваться. Но есть еще некоторые вещи, которые упростят пользование данным сервисом и сделают его более понятным для пользователя владеющим Русским языком.
Установка и настройка 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.
Возможности плагина:
- Загрузка рейтингов для фильмов
- Kinopoisk
- Rotten Tomatoes
- IMDb
- The Movies Database
- Источники рецензий на фильмы
- Kinopoisk
- Rotten Tomatoes
- Загрузка трейлеров фильмов
- Загрузка дополнительных материалов (сцены, интервью)
- Загрузка английских имен актеров
- Приоритет локализованных обложек фильмов
- Поддержка прокси-серверов (http, sock5)
У себя, я использую Релизную версию плагина 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
Некоторые настройки Plex Media Server
Покажу некоторые настройки, которые у меня установлены для Plex Media Server.
В основном это настройки библиотек и плагинов обработки для них, остальные вы можете изучить самостоятельно, благо все на Русском языке.
Для фильмов Кинопоиск 2.0
Для сериалов The Movie Database т.к. плаин Кинопоиска пока не умеет работать с сериалами.
Изображения кликабельны:
TV Приставки и приложения для просмотра
И еще, немного затронем то, на чем все это великолепие можно смотреть!
Я использую на текущий момент:
- Xiaomi Mi Box S (MDZ-22-AB) Global Version — Использую на текущий момент. Все устраивает полностью, Android TV с приложением Plex, удобный Bluetooth пульт. (5 990 руб. на дату написания статьи в магазине Xiaomi. На Ali дешевле.)
- Raspberry Pi 3B+ с LibreELEC 9.2.0 — Установлен скрипт Plex с автозапуском. Пока единственный нормальный Custom по опыту. В целом задачи решает, но не так удобен, как Mi Box S на Android TV. Я писал статью по использованию: Домашний Медиа-плеер: LibreELEC(Kodi) на Raspberry Pi 3B+. Но планирую заменить на какой-нибудь Smart Box
Что еще можно использовать?
- Google Chromecast Ultra — Собственно плеер на Android TV от самого Google, функции аналогичные Mi Box S, но нет в комплекте Bluetooth пульта.
- Nvidia Shield TV 2019 — Обновленная «приставка» от Nvidia. С пультом, аналог Mi Box S и Google Chromecast Ultra, но дороже (13 990 руб. на дату написания статьи в магазине Nvidia)
- Nvidia Shield TV Pro 2019 — Более прокачанная версия «шилда» причем Plex Media Server уже встроен в этот медиаплеер, что конечно сомнительно всего 16Гб места, часть из которого занимает система. Даже с учетом возможности подключения HDD/SSD. (17 590 руб. на дату написания статьи в магазине Nvidia)
- Другие китайские или Российские(российско-китайские?) приставки на базе простого Android, CoreELEC, Android TV, др. — Ценники начиная от 1 500 руб. (Ugoos, H96, X96, X88, Movix Pro и т.д. и т.п.)
- Приложение PlexApp (офф версия требует PlexPass) — Есть, как для iOS так и для Android. Ставится на любой планшет, смартфон и т.д.Присутствует на некоторых Smart TV, тут вам нужно изучить набор приложений для вашего телевизора.
- 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 их не навязывает и они не заметны. Это позволяет использовать его с комфортом.
Мне остается только понадеятся на грамотное развитие данной системы в будущем и пожелать его авторам успехов.
А вам дорогие читатели находить новые решения, использовать все самое лучшее и делиться впечатлениями!
В рамках цикла «Домашний сервер» планирую еще две статьи
- The Dude — мониторинг девайсов в домашней сети.
- FreePBX (Asterisk) — IP телефония.
А вот реализация Домашнего IoT пойдет в отдельный цикл, чтобы было проще ориентироваться в дальнейшем. Посмотрим будет ли интерсено читателям )
- openHAB 2 — домашний IoT.
Благодарю за ваше время!
Всего хорошего на просторах Интернета 😉
UPD: 29.02.2020
Изменен источник и инструкция для плагина Kinopoisk.