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

23 марта 2019, 08:00

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

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 поправлен.


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

  1. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) 2 месяца назад

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

  2. Артем Меркулов (Artemiy)
    Артем Меркулов (Artemiy) 2 месяца назад

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

    • Artem Tomshin (tweaker3)
      Artem Tomshin (tweaker3) отредактировано 2 месяца назад

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

К списку статей

Похожие статьи

14 ноября 2018, 06:43
Плагин для интеграции в Athom Homey дочерних zigbee-устройств, подключенных на координаторы deCONZ - RaspBee или ConBee.
25 ноября 2018, 18:23
Умное зеркало добавляем модули Airplay и Google Calendar
04 апреля 2019, 17:48
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
26 ноября 2018, 12:35
Выключение и включение компьютера через HomeBridge, а так-же через HomeAssistant
09 января 2019, 17:34
Небольшая статья о том, зачем нужна малина, почему автоматизации в HomeKit это не очень хорошо и чем USB стик лучше отдельного шлюза.
11 мая 2018, 17:40
Данное руководство предназначено для тех, кто хочет самостоятельно развернуть RASPBIAN STRETCH LITE на Raspberry pi3 и установить HomeBridge.
30 сентября 2018, 19:52
Razberry - первый старт
12 ноября 2018, 20:49
То, что поможет завести камеры с RTSP-потоком в HomeKit через Homebridge на Raspberry Pi
02 ноября 2018, 09:32
установка ioBroker на ОС Linux