Опрос


Что для Вас Умный Дом?


Результаты

Настройка BitTorrent-клиента с Web-интерфейсом на медиа-сервере

08/01/2011 23:07:39

Пожалуй, сегодня трудно себе представить домашний медиасервер без BitTorrent-клиента. Домашнее видео - это, конечно, хорошо, но...
Мой сервер с мультимедийным контентом работает под управлением Debian Linux, а значит нужен был клиент для Linux. Однако мне бы не подошел клиент с традиционным GUI. Так как сервер установлен в подвале дома, куда лишний раз бегать не хотелось, мне нужна была программа, управляемая удаленно, желательно, через Web-интерфейс. Таким образом я бы мог управлять клиентом через Интернет или локальную сеть. Такая программа обнаружилась в репозитории Debian под именем torrentflux.

Torrentflux - клиент, работающий совместно с Web-сервером Apache и MySQL-сервером. В качестве движка используется адаптированная версия BitTornado, написанная на языке python. Установка пакета в Debian не вызвала сложностей. Клиент оказался вполне работоспособным. Важно, что клиент может работать с разными пользователями. Все управление клиентом и его настройка производится только через Web-интерфейс. Вроде бы то, что надо, но есть два недостатка.

1. Torrentflux не умеет запускать и останавливать закачки по расписанию.
2. Torrentflux не сохраняет общую статистику upload торрента - информация доступна только для текущей сессии.

Первый пункт - самый важный. Мне нужен клиент, который бы мог автоматически запускать все закачки, скажем в 1:30 ночи и останавливать свою работу в 6:20. Днем сервер выполняет свои прямые обязанности и не загружает канал, а ночью качает и раздает - вполне логично.
Второй пункт необходим для оценки рейтинга и понимания того, какие закачки уже можно удалить. Сам torrentflux написан на PHP, поэтому я внес в него необходимые мне коррективы.

 

Torrentflux patched. Scheduled start/stop

На скриншоте показаны изменения: кнопки Start/Stop All Torrents, а также общий объем отданного по каждому торренту.
Кнопки - это здорово, но нужно как-то нажать эти кнопки в условленный час. Для этого удобно использовать программу curl.

В cron я прописал следующее:

30   1   *   *   *   curl -s 'http://192.168.0.251/torrentflux/index.php?startall=now&sec=123'
20   6   *   *   *   curl -s 'http://192.168.0.251/torrentflux/index.php?stopall=now&sec=123'

Время, а также IP-адрес сервера нужно указать, естественно свои. Остановлюсь только на параметре sec. Дело в том, что в программе torrentflux используется авторизация пользователей. Нельзя просто вызывать нужный URL. С другой стороны в torrentflux используется не самая простая система авторизации с использованием сессий. Чтобы решить эту задачу я внес небольшие изменения в файл functions.php. Значение '123' является своего рода паролем, который задается в коде. Этот пароль работает только на запуск или остановку всех закачек и другие операции с ним недоступны. Не самое, наверное, правильное решение, но так как "админ" в домашней сети один, домашние пользователи не хакеры, а сам медиа-сервер от внешнего мира закрыт файрволом и авторизацией Apache - сгодится и такое.

Были исправлены следующие файлы: index.php, functions.php и добавлен новый файл savedetails.php
Скачать патч к torrentflux можно по torrentflux-patch.zip.
Необходимо распаковать архив и скопировать файлы в папку с установленным torrentflux. (/usr/share/torrentflux/www/ по умолчанию в Debian)

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:



Сортировка комментариев: Последние сверху | Первые сверху

2012-12-22 16:14:18 | Михаил
Для решения такой же задачи я использовал transmission-daemon , т.к. очень удачно обнаружилось что есть расширение-клиент для Chrome remote-transmission-plus что позволяет отправлять задачи на загрузку с рабочих станций в один клик. и по необходимости управлять через web интерфейс или выпадающее меню расширения в Chrome.


2011-07-26 09:04:41 | friday
а можно еще добавить функцию добавления и запуска торрента автоматически - например делаем скрипт - который обнаруживает выход новой серии, скачивает файл и запускает закачку


2011-01-17 22:00:59 | Andrey_B
gdr, спасибо. TorrentFlux подкупил только тем, что все шло в комплекте, тогда как web-морду к rtorrent нужно было прикручивать.
Но выяснились некоторые недостатки TorrentFlux. Например, невозможно приостановить (поставить на паузу закачку) - всегда это процедура стоп/старт. И самое важное для меня то, что TorrentFlux не умеет на лету менять ограничения по скорости download/upload. Поменять эти ограничения можно для отдельных торрентов, но не для всего клиента в целом. Это не совсем удобно, когда в работе десятки торрентов.


2011-01-17 20:24:52 | gdr
советую rtorrent + rutorrent (веб-морда к нему). Консольный (работает в screen-e), имеет свой планировщик, статистику ведет и пр.