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

Установка Plex

Установка Plex из репозитория

Проверить установлена ли утилита curl, что бы проверить набрать показать версию приложения:

curl -V

или

sudo apt list --installed curl

Если не будет выведена информация, то установить:

sudo apt install curl

Импортировать ключ GPG репозитория:

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

Добавить репозиторий Plex:

echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list

Проверить установлен ли пакет apt-transport-https:

sudo apt list --installed apt-transport-https

Если не установлен, то установить:

sudo apt install apt-transport-https

Обновить список пакетов:

sudo apt update

Установить Plex Media Server:

sudo apt install plexmediaserver -y

Установка Plex скачав deb пакет

Так же можно установить медиасервер скачав пакет с официального сайта. Минус данного способа установки в том, что не будет автоматического обновления. Придется каждый раз скачивать свежую версию и устанавливать.

Зайти на страницу загрузки, выбрать версию для линукс, нажать Выберите распределение навести курсор на Ubuntu (16.04+) / Debian (8+) - Intel/AMD 64-bit нажать правую кнопку мыши и Скопировать ссылку. Ссылка будет примерно такого типа:

https://downloads.plex.tv/plex-media-server-new/1.31.1.6733-bc0674160/debian/plexmediaserver_1.31.1.6733-bc0674160_amd64.deb?_gl=1*saxi9i*_ga*NTkzMDgyNzM4LjE2NzcyNDAxNzQ.*_ga_G6FQWNSENB*MTY3Nzg3NTM3MC42LjEuMTY3Nzg3NTcxOC4wLjAuMA..

Все что в ссылке после знака вопрос можно удалить .deb?

Скачиваем пакет:

curl -O (Ссылка, которую скопировали ранее)

Посмотреть и скопировать название .deb файла:

ls

Устанавливаем Plex введя имя пакета, который скачали:

sudo dpkg -i plexmediaserver_1.31.1.6733-bc0674160_amd64.deb

Настройка файервола UFW для Plex

Пакет правил для Plex

Создать новые правила UFW

sudo nano /etc/ufw/applications.d/ufw-plex-mediaserver
[Plex]
title=Plex Mediaserver
description=Plex Mediaserver
ports=32400/tcp

[Plex-DLNA]
title=Plex Mediaserver (DLNA)
description=Plex Mediaserver (DLNA)
ports=32469/tcp,1900/udp

[Plex-ALL]
title=Plex Mediaserver (ALL)
description=Plex Mediaserver (ALL)
ports=32400,32469,8324/tcp|1900,5353,32410,32412,32413,32414/udp

Сохранить файл Ctrl+O Enter, закрыть Ctrl+X

Какие порты открывать читать на сайте поддержки Plex

Открыть доступ к серверу Plex

sudo ufw allow Plex

Настройка Fail2Ban для Plex

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

Регистрация аккаунта Plex

Зайти на сайт https://www.plex.tv/. В правом верхнем углу нажать Sign Up выбрать подходящий способ регистрации. Это нужно для последующего использования медиа сервера, а так же удаленного доступа к нему.

Установка настройка transmission

Для наполнения медиа сервера контентом использую торрент клиент Transmission для сервера

Установка из репозитория

sudo apt install transmission-daemon -y

Остановка Transmission-daemon

Для дальнейшей настройки необходимо остановить Transmission-daemon

sudo systemctl stop transmission-daemon.service

Проверка работы демона

sudo systemctl status transmission-daemon.service

Пользователи будут добавлены чуть ниже по плану.

Настройка Transmission-daemon

Сделать копию конфига на всяк случай, если что-то пойдет не так, а это возможно. В каталог пользователя сервера например так:

sudo cp -R /etc/transmission-daemon /home/wildserver/.config

Открываем файл настроек:

sudo nano /etc/transmission-daemon/settings.json

Минимальные настройки для функционирования, остальные можно сделать в приложении. Но после рестарта сервера или демона настройки сделанные в приложении придется заново вводить. Более тонкие настройки позже в процессе эксплуатации. Найти строчки заменить или дописать.

...
#Найти
"bind-address-ipv4": "0.0.0.0",
#Заменить на
"bind-address-ipv4": "айпи сервера в локальной сети",
...
#Найти
"blocklist-enabled": false,
"blocklist-url": "http://www.example.com/blocklist",
#Заменить на
"blocklist-enabled": true,
"blocklist-url": "https://github.com/Naunter/BT_BlockLists/raw/master/bt_blocklists.gz",
...
#Найти
"download-dir": "/var/lib/transmission-daemon/downloads",
#Заменить на
"download-dir": "/home/media/download-torrents",
...
#Найти
"incomplete-dir": "/var/lib/transmission-daemon/Downloads",
"incomplete-dir-enabled": false,
#Заменить на
"incomplete-dir": "/home/media/download-torrents",
"incomplete-dir-enabled": true,
...
#Найти
"port-forwarding-enabled": false,
#Заменить на
"port-forwarding-enabled": true,
...
#Найти
"rpc-bind-address": "0.0.0.0",
#Заменить на
"rpc-bind-address": "айпи сервера в локальной сети",
...
#Найти
"rpc-password": "*************************************",
#Заменить на
"rpc-password": "ПАРОЛЬ",
...
#Найти
"rpc-username": "transmission",
"rpc-whitelist": "127.0.0.1",
#Заменить на
"rpc-username": "Имя Пользователя для входа",
"rpc-whitelist": "127.0.0.1,192.168.*.*,IP-адреса с которых можно заходить",

Сохранить файл Ctrl+O Enter, закрыть Ctrl+X

Небольшие пояснения к настройкам Transmission

Все что начинается с rpc относится к настройкам веб морды. По умолчанию включено:

"rpc-enabled": true,

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

"rpc-password": "ПАРОЛЬ",

Большинство роутеров и маршрутизаторов имеют функцию UPnP, трансмиссион автоматически попробует пробросить порт 51413, эта функция включена по умолчанию:

"port-forwarding-enabled": true,

Если в маршрутизаторе отключена данная функция, проброс портов делается вручную или включением UPnP.

Немного не понял зачем данная функция. Понятно, что для блокировки получения данных с перечисленных адресов, что если не сделать такую блокировку, то случится что то непонятное и плохое. Лишним не будет ее включить:

"blocklist-enabled": true,

Ссылку на список блэклиста можно получить на гитхабе и вставить:

"blocklist-url": "https://github.com/Naunter/BT_BlockLists/raw/master/bt_blocklists.gz",

Можно заморочится позже и дошлифовать наличие таких листов.

Для примера рабочий конфиг

{
    "alt-speed-down": 100000,
    "alt-speed-enabled": true,
    "alt-speed-time-begin": 420,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": true,
    "alt-speed-time-end": 1439,
    "alt-speed-up": 0,
    "bind-address-ipv4": "192.168.30.33",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "blocklist-url": "https://github.com/Naunter/BT_BlockLists/raw/master/bt_blocklists.gz",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/home/media/download-torrents",
    "download-limit": 100,
    "download-limit-enabled": 0,
    "download-queue-enabled": true,
    "download-queue-size": 10,
    "encryption": 1,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/home/media/download-torrents",
    "incomplete-dir-enabled": true,
    "lpd-enabled": false,
    "max-peers-global": 200,
    "message-level": 1,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 200,
    "peer-limit-per-torrent": 50,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "default",
    "pex-enabled": true,
    "port-forwarding-enabled": true,
    "preallocation": 1,
    "prefetch-enabled": true,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": true,
    "rpc-bind-address": "192.168.30.33",
    "rpc-enabled": true,
    "rpc-host-whitelist": "",
    "rpc-host-whitelist-enabled": true,
    "rpc-password": "4ad065c43f5269a6c2c0cb4288eeff1e73cvDSZxdmveN",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "wildserver",
    "rpc-whitelist": "127.0.0.1,192.168.*.*",
    "rpc-whitelist-enabled": true,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": true,
    "seed-queue-size": 5,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 10000,
    "speed-limit-up-enabled": true,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 18,
    "upload-limit": 100,
    "upload-limit-enabled": 0,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true
}

Запуск Transmission-daemon

sudo service transmission-daemon start

Открытие портов доступа к Transmission

Поскольку на сервере установлен файервол UFW необходимо дать доступ к вебморде, которая доступна пока локально, но откроем ее для всего мира через обратный прокси и порта для работы Transmission-daemon 51413, который по умолчанию. Заменить можно на желаемый изменив номер порта в строке конфига:

"peer-port": 51413,

Для начала откроем порт 9091 по умолчанию через него происходит доступ к web интерфейсу. Для этого добавим в файл

sudo nano /etc/ufw/applications.d/ufw-bittorent

правило:

[Transmission web]
title=Transmission web
description=Transmission BitTorrent client
ports=9091

И активируем его:

sudo ufw allow "Transmission web"

Потом откроем порт 51413 готовое правило уже есть.

sudo ufw allow Transmission

Исправление ошибки буфера

UDP Failed to set receive buffer: requested 4194304, got 425984 (tr-udp.c:97)
UDP Failed to set send buffer: requested 1048576, got 425984 (tr-udp.c:105)

Данная ошибка появляется при просмотре статуса работы демона:

sudo systemctl status transmission-daemon.service

Решением является увеличение буфера приема и буфера обмена на 16 и 4 мегабайта соответственно. Открыть файл:

sudo /etc/sysctl.conf

Добавить в конце строки:

net.core.rmem_max = 16777216
net.core.wmem_max = 4194304

Сохранить файл Ctrl+O Enter, закрыть Ctrl+X

Перечитываем конфиг:

sudo sysctl -p
sudo sysctl --system

Остановить Transmission-daemon и снова запустить. Ошибка исправится. Хотя можно и не перезапускать все равно надо будет потом перезагрузить сервер.

Добавление Plex в группы

Используя терминал

Для того чтобы можно было добавлять каталоги в библиотеку Plex нужно добавить пользователя сервера в группу plex, а также добавить пользователя plex в группу торрент клиента transmission для того, чтобы читать скачанные файлы. И наоборот добавить пользователя transmission в группу plex, что бы записывать файлы в каталоги Plex`a.

sudo usermod -a -G plex USER
sudo usermod -a -G debian-transmission USER
sudo usermod -a -G debian-transmission plex
sudo usermod -a -G plex debian-transmission

Используя Webmin

Для более понятного видения происходящего воспользоваться Webmin

По такой же схеме добавить USER (ваш ник на сервере) группы plex и debian-transmission.

А так же пользователя plex в группу debian-transmission

И наоборот пользователя debian-transmission в группу plex

Создание каталогов для медиа

Для фильмов и музыки выделил отдельные жесткие диски и примонтировал их каталогу HOME. Назвав /media/ первый диск и в нем каталоги /video/ - для фильмов, /video/serial/ соответственно для сериалов. Второй диск отдал под музыку примонтировав к /music/. Так же создал каталог для загрузки торрентов, для временного хранения не докачанных файлов /download-torrents/ Получилось так:

/home/media/video/
/home/media/video/serial/
/home/media/music/
/home/media/download-torrents/

Надо будет подразделить и сделать отдельно папку film. Еще не помешает создать отдельный каталог для мультфильмов /home/video/multiki/ и многосерийных мультфильмов /home/video/serial/multiki/ что бы было:

/home/media/video/film/
/home/media/video/multiki/
/home/media/video/serial/film/
/home/media/video/serial/multiki/
/home/media/music/
/home/media/download-torrents/

Создание каталогов

Все выше перечисленные каталоги создаем одной строкой.

mkdir /home/media/ /home/media/video/ /home/media/video/film/ /home/media/video/serial/ /home/media/video/multiki/ /home/media/video/serial/multiki/ /home/media/video/serial/film/ /home/media/video/serial/film/ /home/media/download-torrents/ /home/media/music/

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

Создание каталогов в Webmin

Права на каталоги

Созданным каталогам права и владелец присваиваются так:

sudo chow -R plex:plex /home/media/
sudo cmod -R 754 /home/media/
sudo chow -R debian-transmission:debian-transmission /home/media/download-torrents/

Права на каталоги в Webmin

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

Настройка Plex

Проверка работы сервера

sudo systemctl status plexmediaserver

Остановка сервера

sudo systemctl stop plexmediaserver

Запуск сервера

sudo systemctl start plexmediaserver

Включение автозапуска

sudo systemctl enable plexmediaserver

Выполнить все перечисленные команды. Остановка и запуск нужны для того что бы вступили в силу изменения по включение пользователя plex в группы.

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

sudo reboot

Вход на сервер и первичная настройка

В браузере, лучше Chrome, в FireFox`e разочаровался (об этом чуть позже) Набрать ip-адрес сервера и подключение к порту 32400. Для примера:

192.168.0.100:32400/web/

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

Удалении Plex

В процессе экспериментов с настройками, установками различных плагинов, которые еще работоспособны но многие уже не поддерживаются, поскольку Plex потихоньку прикрывает лавочку на такие расширения. Наступает такой момент, когда исправлять и искать причину почему что то пошло не так затратит больше времени, чем просто снести медиа сервер и по новой установить. Наигравшись, пришел к выводу, что проще смирится с тем что есть, оставил в памяти те настройки, которые посчитал нужными и добившись стабильной работы сервера. Кто желает может пройти “путь самурая” и для этого следующая памятка по удалению медиа сервера.

sudo apt purge plexmediaserver

А так же таким способом:

dpkg -r plexmediaserver

И удалении каталога, если он остался:

sudo rm -r /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/

Раньше переустановка не вызывала никаких проблем и тут на тебе такая ошибка при установке:

dpkg: ошибка при обработке пакета plexmediaserver (--configure):
 installed plexmediaserver package post-installation script subprocess returned error exit status 255
При обработке следующих пакетов произошли ошибки:
 plexmediaserver

Помогло только удаление группы plex.

groupdel plex

И потом опять добавление в группу plex себя и debian-transmission

Приложения для медиа сервера

Приложение Plex

Приложения для различных устройств можно скачать с официального сайта.

Для Андроид есть ограничения, без Plex Pass фильмы не посмотришь, две минуты и хочет, что бы приобрели Plex Pass. С этим потом разберусь, как расшарить. Через браузер в телефоне или планшете ограничений нет, но неудобно.

Для Windows (Виндовс) все замечательно, без проблем.

А вот для Linux Debian оболочка Mint получилось запустить только такой вариант

Приложение transmission-remote-gui

Для удобства скачивания на сервер и контроля торрентов использовать приложение ** transmission-remote-gui**

В Windows скачать

В Debian linux установить командой:

sudo apt install transgui