67

Deluge и Transmission на Raspberry Pi

Всем привет. Признаться честно, я узнал про связку Raspberry Pi и Transmission относительно недавно, хотя за несколько лет успел увидеть огромное количество способов использования этого одноплатника. После этого у меня появилась идея написать материал, который с одной стороны освещал бы этот use case Raspberry Pi, а с другой – был бы сделан в стиле DIY (Do It Yourself), рассказывая о том, как приготовить образ для своего одноплатника самостоятельно. Более того, я посчитал не лишним рассказать не только о Transmission'е, но и о Deluge. Очевидно, что у каждого из этих проектов есть свои достоинства и недостатки, поэтому одной из целей этой статьи является помочь сделать выбор.


Мотивация


Одноплатники в общем и Raspberry Pi в частности отличаются бесшумной работой, только если вы не оснастили свое устройство охлаждением, которое булькает или гудит.

Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb

Таким образом, одноплатник является идеальным решением для выкачивания гигабайтов мультимедиа: он практически незаметен, бесшумен и не потребляет много энергии. Более того, у каждого в пределах локальной сети есть доступ к торрент-клиенту буквально с любого более-менее современного устройства. Но не поймите меня не правильно. Я слушаю музыку через Google Play Music и смотрю фильмы и сериалы на IVI и Амедиатеке, таким образом, всячески поощряя платный контент. Однако очень часто провайдер услуг просто не в состоянии вам дать то, что нужно в данный конкретный момент времени. К примеру, мы с женой договорились устроить 30-го декабря то, что мы назвали «День СТС». Наше осознанное детство пришлось на начало 2000-х, когда СТС был торт, а Интернет еще не так доступен. Таким образом, мы решили провести субботний день за просмотром сериалов, на которых выросли: моя любимая жена знакомила меня с Отчаянными домохозяйками, а я ее – с мультсериалом Назад в будущее, а вместе мы ностальгировали под Удивительные странствия Геракла (чтобы убить двух зайцев сразу, мы выбрали серию, где первый раз появляется Зена). Кстати, именно Назад в будущее, простите, хрен найдешь на IVI или Амедиатеке в силу его чудовищной непопулярности, что очень, на мой взгляд, несправедливо. Помните какие крутые эксперименты показывались в конце каждой серии? В общем, торрент-трекеры в очередной раз спасли положение.

Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb
Как выглядит мое решение


В данном разделе я хочу показать как выглядит решение, которое лично я уже использую достаточно давно. Стоит сразу отметить, что одного торрент-клиента на одноплатнике будет недостаточно, т.к., в конце концов, должна быть какая-то точка вхождения для устройств, на которых непосредственно будет проигрываться мультимедиа. Как ни странно, в моем случае этой точкой стал обычный FTP-сервер на базе vsftpd. Дело в том, что такие проигрыватели, как MX Player и VLC умеют стримить видео поверх FTP, т.е. приложению не нужно загружать видео целиком, чтобы его проиграть. Таким образом, я подключаюсь с целевого устройства к FTP-серверу, вижу список файлов, выбираю интересующий и проигрываю его так, как будто он хранятся на самом устройстве. Альтернативы FTP-серверу могут быть сколь угодно сложными, изощренными и современными. К примеру, я рассматривал Plex Media Server. Посмотрите в его стороны и вы. Тем не менее, он и другие, на мой взгляд, сильно усложняют очень простую задачу.


Целевыми устройствами для меня являются телевизор на базе Android 6.0 «Marshmallow».

Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb
и планшет на базе Android 7.0 «Nougat».
Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb
На этих устройствах в качестве FTP-клиента (и не только) я использую ES File Explorer File Manager. Что касается самого устройства для торрент-качалки и FTP-сервера, то для этих целей я выбрал Orange Pi Zero с обычным внешним жестким диском.
Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb

Сам одноплатник с модулем расширения и корпусом стоит в три раза дешевле, чем голая плата Raspberry Pi 3. Тем не менее, я ни в коем случае не пытаюсь никого отговорить от использования RPi в качестве торрент-качалки. Если у вас уже давно валяется без дела этот одноплатник, то почти наверняка он будет рад оказать вам услугу и взять на себя функцию торрент-клиента, хотя конечно для этой задачи он будет немного избыточен. Таким образом, если вы в процессе выбора устройства для этой задачи, то выберите что-то более простое и, как следствие, дешевое.


Как построить свое решение


Для того чтобы дальше следовать руководству понадобится одноплатник под управлением какого-нибудь Linux'а. Если для торрент-качалки вы расчехляете давно лежащее без дела устройство, то предлагаю поставить на него Raspbian или Ubuntu. Однако, какой бы не была система, – свежеустановленная или работающая уже много месяцев – в ней должны быть git, Docker и docker-compose. Дело в том, что я предлагаю воспользоваться проектом MMB, который представляет собой набор Dockerfile'ов и связанных с ними ресурсов для сборки образов Docker-контейнеров с различными сервисами, предназначенными для запуска на Raspberry Pi и других одноплатниках. (Кстати, в MMB вы найдете не только Transmission и Deluge, но и свежайшую версию Nextcloud'а.) Теперь выполните следующие команды на своем устройстве.


$ git clone https://github.com/tolstoyevsky/mmb.git


Затем перейдите в mmb/transmission-web, соберите и запустите Transmission.


$ cd mmb/transmission-web

$ docker build -t cusdeb.com:5000/transmission:2_92_armhf .

$ docker-compose up -d


После этого соберите и запустите Deluge. Deluge не будет конфликтовать с Transmission, но оба торрент-клиента будут использовать одну и ту же директорию для загрузок. Когда определитесь с клиентом, лишний можно будет удалить.


$ cd ../deluge-web

$ docker build -t cusdeb.com:5000/deluge:1_3_15_armhf .

$ sudo ./postinst.sh

$ docker-compose up -d


Установка Deluge потребовала выполнение ./postinst.sh. Этот скрипт создает пустой конфигурационный файл и директорию state, в которой будут оседать все torrent-файлы.


В заключении соберите и запустите FTP-сервер.


$ cd ../vsftpd

$ docker build -t cusdeb.com:5000/vsftpd:3_0_3_armhf .

$ docker-compose up -d


Оба торрент-клиента будут загружать файлы в директорию /srv/common/downloads/, которая, в свою очередь, будет корневой директорией для FTP-сервера. Основная идея MMB заключается в подогнанности сервисов к друг другу.


Кстати базовые образы сервисов MMB включают qemu-arm-static, который позволяет запускать сервисы, собранные под архитектуру armhf, на машинах x86. Это сделано в первую очередь для отладки сервисов на машинах разработчиков.


Теперь рассмотрим торрент клиенты Deluge и Transmission по отдельности.


Deluge


По мнению Yandex Wordstat'а Deluge менее популярен, чем Transmission по крайней мере в области торрент-клиентов с веб-интерфейсом для Raspberry Pi. Интерфейс Deluge (как и Transmission) очень далек от интерфейсов современных веб-приложений, поэтому это первое, к чему нужно быть готовым.


Перейдите на http://ip-адрес-устройства:8002, чтобы начать работу с Deluge. Торрент-клиент потребует ввести пароль, которым по умолчанию является «deluge». Требование ввести пароль может показаться лишним с учетом того, что приложение рассчитано на то, чтобы быть доступным из локальной сети, но мало ли какие фантазии вам захочется воплотить, поэтому Deluge должен быть к этому готов. Затем подключитесь к deluged, демону Deluge. В данном конкретном случае единственный вариант, который предлагает приложение является правильным.

Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb

Дело в том, что веб-интерфейс и демон Deluge – отдельные компоненты: первый является одним из многочисленных пользовательских интерфейсов, а другой – тем, что делает всю основную работу. deluged может даже быть запущен на одной машине, а веб-интерфейс – на другой, поэтому в самом начале работы с приложением необходимо уточнить, какой именно deluged необходимо использовать. Очевидно, что Deluge способен удовлетворить самые изысканные потребности пользователей. Забегая вперед, хочу сказать, что Transmission устроен намного проще.


В основном, работа Deluge ничем не отличается от любого (или почти любого) другого торрент-клиента. Если вы имеете дело с публичным торрент-трекером, то клиенту можно передать ссылку на .torrent-файл, но если торрент-трекер требует авторизации, то .torrent-файл придется сначала скачать себе на машину, а только потом передать клиенту.

Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb
Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb

Transmission


Перейдите на http://ip-адрес-устройства:8003, чтобы начать работу с Transmission. Торрент-клиент потребует ввести логин и пароль, которым по умолчанию в обоих случаях являются «cusdeb». Вы всегда можете изменить логин и пароль, а также другие параметры, в файле docker-compose.yml, а затем перезапустить контейнер с клиентом.


По сравнению с Deluge Transmission обладает более аскетичным интерфейсом, но в основе это все тот же торрент-клиент – клиенту можно передать как ссылку на .torrent-файл, так и сам файл, чтобы начать загрузку раздачи. Однако есть одна особенность Transmission'а, которая мне всегда не давала покоя. О ней я хочу рассказать сразу. Это будет полезно в первую очередь тем, кто только присматривается к торрент-клиентам с веб-интерфейсом и Transmission'у в частности. Ветеранам этого направления ПО я здесь не смогу рассказать ничего нового.


В отличии от Deluge, когда вы тем или иным способом передадите клиенту .torrent-файл, Transmission не предложит вам выбрать, что именно из раздачи вам нужно загрузить в данный момент. К примеру, раздача вышеупомянутого мультсериала «Назад в будущее» состоит из 27 видео-файлов – 26 серий и трейлер.

Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb
Если вы нажмете «Upload», то клиент начнет загружать всю раздачу целиком. В большинстве случаев это не то, что нужно, поэтом необходимо для начала снять галочку со «Start when added». После того как приостановленная загрузка появится в списке, необходимо щелкнуть по ней два раза, чтобы справа появилась панель со свойствами раздачи. По умолчанию будет открыта вкладка «Info». Перейдите на вкладку «Files»
Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb

выберете нужные файлы и запустите загрузку.


Больше всего дискомфорта лично у меня вызывает по умолчанию выделенная галочка «Start when added», но это можно исправить. Для этого перейдите в настройки

Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb

и на самой первой вкладке сбросьте одноименную галочку. После этого на панеле «Upload Torrent Files» она будет всегда сброшенной. Надеюсь это сделает первый опыт общения с Transmission'ом еще более гладким, чем он мог бы быть.


FTP-сервер


Как уже было сказано выше, торрент-клиенты буду загружать файлы в директорию /srv/common/downloads/. Настоятельно рекомендую примонтировать туда внешний жесткий диск или флешку, чтобы поберечь SD-карту. Эта же директория будет корневой для FTP-сервера. Таким образом, для того чтобы увидеть и воспроизвести на целевом устройстве все то, что вы загрузили посредством Deluge или Transmission, установите ES File Explorer File Manager и VLC. Я предполагаю, что вы используете в качестве целевого любое устройство на базе Android. Я не исследовал эту тему в области устройств на базе iOS, т.к. в основном статья опирается на мой собственный опыт, а я завален Android-устройствами различных форм-факторов с ног до головы.


Запустите ES File Explorer File Manager и перейдите в раздел «FTP», который находится в категории «Network».

Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb
Создайте новое ftp-соединение. Укажите адрес устройства в локальной сети, замените порт 21 на 8004, используйте «cusdeb» в качестве логина и пароля.
Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb
Теперь, когда вы захотите проиграть тот или иной видео-файл на вашем устройстве, воспользуйтесь VLC.
Deluge и Transmission на Raspberry Pi Transmission, Deluge, Raspberry pi, Orange pi, Длиннопост, Cusdeb

При этом скачивать файл целиком на устройство не потребуется.


Заключение


Несмотря на избыточность Raspberry Pi для каких-то задач, некоторые темы все равно остаются популярными. Так, одной из таких тем является создание торрент-качалки на базе Transmission'а и Raspberry Pi. Однако, если в системе не будет ничего, кроме Transmission'а, то достаточно мощное и относительно дорогое устройство будет большую часть времени простаивать. За треть стоимости (с учетом доставки) Orange Pi Zero может гонять Transmission не хуже. Также стоит в сотый раз напомнить, что у RPi отсутствует поддержка SATA, хотя конечно это не так критично, как для облачного хранилища данных на базе того же Nextcloud'а. Тем не менее, я с удовольствием рассказал про этот конкретный use case Raspberry Pi, т.к. он многим оказался интересен. Этот use case можно было бы даже назвать одним из примеров Интернета вещей, хотя и с натяжкой – устройства взаимодействуют друг с другом не совсем через Интернет и не совсем без участия человека. Кстати, готовые образы с Deluge и Transmission для Raspberry Pi 1, 2, 3 и Zero вы всегда можете получить на нашем сайте. Всем удачного возвращения в строй после выходных!

Arduino & Pi

1.5K поста20.8K подписчиков

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

1
Автор поста оценил этот комментарий
Материнка asus z270m-plus. 32 гига ddr4. I7-7700k. 8 хардов wd gold по 4 терабайта. Контроллер lsi 9265-8i с bbu. M.2 ssd nvme plextor по 256 гигов. Это хранилка. Она же качает торренты, плюс хранение фоток. На сервере крутится esxi 6.5, под ним запущен win server 2012 r2. Deluge в режиме демона, плюс включен плагин autoadd. Кидаешь Торрент файл в папку и делюга сама качает куда надо. Скорость массива около 1 гига в секунду. Так что можно и смотреть и закачивать одновременно. Проигрывается все через другой комп с виндой, на котором стоит kodi. В него дополнительно вставлена quadro p600, для декодирования 4к. Корпус lian-li. Могу потом фотку приложить:)
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Спасибо большое.

1
Автор поста оценил этот комментарий

Тем, что куда проще записать на SD карточку готовый образ линукса и потом через веб поставить Transmission/DLNA/SMB. А можно и еще много чего на ету торенто качальку чего поставить. Например syncthing.net и тогда фотки со всех телефонов скачивается на тотже диск и можно смотреть через DLNA или на  компьютере через SMB.

А вот чего я не понимаю, почему делать ТОЛЬКО торенто качалку когда  мочности разбери хватает на куда больше.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

1
Автор поста оценил этот комментарий
Вместо малины лучше взять апельсинку, у нее есть SATA.
В качестве файл менеджера Amaze.
Шарить проще самбой (хотя фтп тоже ок).
В качестве проигрывателя лучше kodi, часто уделывает dune base 3...

А вот нафига собирать из исходников я не понимат.
Кстати для трансмиссии есть удобный клиент под андроид - Torrnado
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Для интересующихся этой темой стоит сразу добавить, что не у каждого Orange Pi есть SATA. Я привел в качестве примера Orange Pi Zero, у которого его нет. Согласен, можно взять Orange Pi Plus. У него есть SATA. Только не нужно путать с Orange Pi PC Plus. У него SATA нет.

Никогда не слышал про Torrnado. Спасибо большое за наводку.

показать ответы
3
Автор поста оценил этот комментарий
На сегодня нечего лучшего чем это я не знаю: http://www.friendlyarm.com/index.php?route=product%2Fproduct...

Чтобы не мучится с линуксом проще всего скачать и записать на SD карточку вот это чудо: https://sourceforge.net/projects/openmediavault/files/Other%... 

или выбирайте от сюда если у вас другой микро компьютер или если прошло много времени и нужна актуальная версия: https://sourceforge.net/projects/openmediavault/files/Other%...

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

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я всегда рассматривал OpenMediaVault как альтернативу Nextcloud и Seafile для создания NAS. Немного не понял, как она связана с торрент-качалками в общем и Deluge и Transmission'ом в частности.

показать ответы
1
Автор поста оценил этот комментарий
А сколько раздач и какие объемы у вас? У меня под торрентокачалку отдельный комп выделен. Если интересно, могу описать что внутри и как все пашет.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

За новогодние праздники я выкачал около 80 ГБ мультимедиа. Порядка 10 раздач. Немного затрудняюсь описать ситуацию в другое время, т.к. все больше отдаю предпочтение YouTube, IVI и Amediateka. Ну и конечно посмотреть Теорию большого взрыва на bigbangtv.space можно быстрее в день выхода, чем ждать, пока кто-нибудь оформит раздачу.


> У меня под торрентокачалку отдельный комп выделен. Если интересно, могу описать что внутри и как все пашет.


Конечно интересно. Расскажите пожалуйста.

показать ответы