Статья

Deluge + MiniDLNA + Docker = Медиасервер для вашего ТВ

Немного информации из википедии:

DLNA (англ. Digital Living Network Alliance) — набор стандартов, позволяющих совместимым устройствам передавать и принимать по домашней сети различный медиа-контент (изображения, музыку, видео), а также отображать его в режиме реального времени. То есть — технология для соединения домашних компьютеров, мобильных телефонов, ноутбуков и бытовой электроники в единую цифровую сеть. Устройства, которые поддерживают спецификацию DLNA, по желанию пользователя могут настраиваться и объединяться в сеть в автоматическом режиме. Средой передачи медиаконтента обычно является домашняя локальная сеть (IP-сеть). 

Подключение DLNA-совместимых устройств к домашней сети может быть как проводным (Ethernet), так и беспроводным (Wi-Fi).

Почему именно DLNA, а не Plex Media Server, Kodi и т.д. ?

Большинство ТВ нативно поддерживают DNLA, и нет необходимости устанавливать сторонние приложение, ведь работают они не всегда гладко и должным образом. MiniDLNA - легковесный DLNA-сервер, используется в таких устройствах, как роутеры и различные NAS. Кстати, в том же Plex и Kodi есть уже встроенные DLNA-сервер, но нам чем проще и легче, тем лучше, ибо они еще те монстры, и в каждом есть свои недостатки.

На моем примере: у меня ТВ LG 42LA690V 2013 года выпуска, он хоть и смарт-телик, но вы бы видели, как на нем работают приложение Plex, тормоз, это еще тот ад. А вот DLNA вполне все шустро.

Как качать торренты?

Все просто, Deluge-клиент есть на все популярные платформы  (Windows, MacOS, Linux), имеется веб-клиент (точная копия десктопной версии). Тут проблем нет, интерфейс очень приятный, скорость загрузки/раздачи в реальном времени без лагов, это.

Как вариант скачать торрент-файл в расшаренную папку по локальной сети, где deluge-server его увидит и автоматически начнет скачку. Использую, очень удобно!

Так же имеется возможность установить плагин telegramer, и подсовывать сылки на торрент-файлы прямо из telegram откуда угодно. Подробнее о возможностях плагина.

На чем запустить?

У меня данные сервисы развернуты на домашнем сервере в докере, на материнской плате mini-itx. Можно и на Raspberry Pi запустить, примонтировав внешний жесткий диск, но узкое место тут будет USB-поры, скорость чтения/записи, всего 2.5 мбайта/сек. Проверял, расстроился =(

Установка Deluge

Рассмотрим установку BitTorrent-клиента Deluge в Docker-контейнере. Как установить Docker и docker-compose, можно посмотреть в данной статье, так же пользователь должен иметь право использовать Docker. После того как вы установите Docker и docker-compose, нужно создать каталоги для хранения файла docker-compose.yml и файлы конфигураций наших сервисов.

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

mkdir -p /home/user/docker/media mkdir /home/user/docker/media/deluge mkdir /home/user/docker/media/deluge/config touch /home/user/docker/media/docker-compose.yml

Так же создадим каталоги для хранения медиафайлов и предоставим права для пользователя user, в моем случае я использую отдельный жесткий диск, примонтированный в /storage/media:

sudo mkdir -p /storage/media sudo mkdir /storage/media/Video sudo mkdir /storage/media/Torrents sudo mkdir /storage/media/.incompleted sudo chown -R user:user /storage/media/

Используемые каталоги:

/storage/media/Video - каталог хранения медиафайлов

/storage/media/Torrents - каталог, из которого будет автоматическое скачивание торрент-файлов

/storage/media/.incompleted - каталог с загружаемыми файлами

Содержимое файла docker-compose.yml:

version: '3.3' services: deluge: container_name: deluge image: linuxserver/deluge:amd64-5b398f77-ls22 #image: linuxserver/deluge:arm32v7-5b398f77-ls22 #image: linuxserver/deluge:arm64v8-5b398f77-ls22 restart: always environment: - PUID=1000 - PGID=1000 volumes: - /storage/media/Video:/downloads - /storage/media/Torrents:/torrents - /storage/media/.incompleted:/incompleted -./deluge/config:/config network_mode: host

Обратите внимание, сервис deluge будет работать от пользователя (uid:gid = 1000:1000), это важно, так же каталог с медиафайлами на хост-машине, должен иметь точно такие же uid и gid, что и в контейнере.

Запускаем контейнер c Deluge:

cd /home/user/docker/media docker-compose up -d

После создания контейнера переходим по ссылке в браузере http://ВАШ_ИП:8112/, для авторизации по умолчанию пароль deluge, там же вам предложат его сменить.

Далее нам нужно прописать в настройках каталоги как на скриншоте ниже:

Так же нам нужно разрешить удаленные подключения к Deluge из локальной сети, при помощью графического GTK -клиента:

Создадим пользователя для удаленного подключения и перезагрузим контйнер:

echo "user:password:10" >> /home/user/docker/media/deluge/config/auth docker restart deluge

Далее скачиваем с официального сайта клиент под вашу операционную систему (MacOS/Windows/Linux) и добавляем в него наш сервер с логином и паролем, созданными ранее, как на скриншоте:

Установка MiniDLNA

Будем использовать готовый образ. В нем уже присутствуют превью медиафайлов.

Добавим в конец файла docker-compose.yml:

minidlna: container_name: minidlna image: sego/minidlna #image: sego/minidlna-armhf restart: always volumes: - /storage/media/Video:/media:ro environment: - MINIDLNA_media_dir=V,/media - MINIDLNA_friendly_name=MiniDLNA - MINIDLNA_merge_media_dirs=yes - MINIDLNA_force_sort_criteria= upnp:class, upnp:originalTrackNumber, dc:title - MINIDLNA_root_container=B network_mode: host

Запустим контейнер с MiniDLNA:

cd /home/user/docker/media docker-compose up -d

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

Ниже немного фото:

Update (16.06.2019):

Вышла новая версия deluge 2.0 (07.06.2019), список изменений:

Переход на Python 3 с минимальной поддержкой, оставленной для Python 2.7.
Новый логотип.
Многопользовательская поддержка.
Обновления производительности для обработки тысяч торрентов с более быстрым временем загрузки.
Новый консольный интерфейс, который эмулирует GTK / веб-интерфейсы.
Пользовательский интерфейс GTK перешел на GTK3 с улучшениями и дополнениями пользовательского интерфейса.
Предварительная выборка магнита для выбора файла при добавлении торрента.
Полностью поддерживаю релиз libtorrent 1.2.
Поддержка переключения языков.
Улучшена документация, размещенная на ReadTheDocs.
Плагин AutoAdd заменяет встроенную функциональность.
Теперь веб-интерфейс по умолчанию демонизируется, поэтому для служебных сценариев потребуется опция -d.

Подробнее об изменениях на официальном сайте.

Рекомендую использовать версию 1.3.15, так как пока еще релиз сырой, приложения для MacOS нет, только кривой интерфейс, если собирать из исходников, да и в русском языке нашел только одно переведенное слово. 

Образы docker версии 1.3.15 для вашего ядра:

linuxserver/deluge:amd64-5b398f77-ls22

linuxserver/deluge:arm32v7-5b398f77-ls22

linuxserver/deluge:arm64v8-5b398f77-ls22

Выше в статье docker-compose.yml поправлен.


до появления  Apple TV на что я только не ставил dlna клиенты, всегда что то не устраивало. Вот бы тогда этот мануал! эх...

А на Apple TV как смотришь фильмы?

infuse и кинопаб

Для таких целей в качестве железки лучше взять HP Microserver. У меня на нём стоит minidlna, transmission и samba сервер для удобства. Торренты качаю Transmission GUI на любом домашнем ПК. Всё льется сразу на сервер. Комп можно сразу отрубать и пока дохожу до спальни - фильм уже скачался. :)

Да, малина для этих целей вообще не торт, из-за скорости USB. 
Deluge - аналог Transmission, так же есть клиент и сервер. Deluge же мне больше приглянулся, легкий, быстрый и приятный интерфейс, советую попробовать. Хотя может и в Transmission уже что то поменялось, я его последний раз использовал лет шесть назад =)

У меня телевизор и другие устройства не видят dlna из докера.


Вернуться назад

Устройства


Raspberry Pi

Raspberry Pi 4

(16 отзывов)

Вернуться назад