rtorrent + wtorrent или удобная круглосуточная легкая торрентокачалка

kaliy аватар

Висит в коридоре сервер унылый, работает денно и нощно, всё хочет сказать мне о доле своей нелёгкой, да пресекаю все попытки жалобу подать его я. Интернет раздаёт, парень добрый, не жадный, почему б работой не нагрузить его на ночь? Нечего ему прохлаждаться, пусть качает торренты большие.

Мой верный товарищ, махая крылом, торренты качает rtorrent'ом.
Чтоб облегчить труд его решил я управлять торрентами со своего старого десктопного компьютера. Я искал, искал, пока, наконец, не подобрал wtorrent.

Я долго пытался подружить wtorrent с rtorrent, но они были неправильных знаков зодиака и ни в какую не хотели уживаться на одном диске, жётским называющимся. Но мне удалось наладить их отношения, потратив на это примерно час полезного времени, которое могло помочь человечеству, а вылетело через сеточку в окно.

Собственно, настройки посвящённый потс объявляется открытым.
Я извращенец, заражаю всех извращением, поэтому будем мы собирать из исходников всё, что нам необходимо (ну, а просто по-другому никак). Итак, для начала нам понадобится xmlrpc-c. После этого соберём rtorrent и libtorrent. Собирать будем всё из SVN, ведь мы любим всё свежее, don't we?

svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd xmlrpc-c
./configure --prefix=/usr
make
make install
# ну, или checkinstall'ом можно собрать пакет :)
cd ..
cd rtorrent-svn
svn co svn://rakshasa.no/libtorrent/trunk
svn up
cd trunk
cd libtorrent
./autogen.sh
./configure --prefix=/usr
make
make install
cd ../rtorrent
./autogen.sh
./configure --with-xmlrpc-c --prefix=/usr
make
make install


После этого можно создать файл ~/.rtorrent.rc (если его нет) и вписать в него следующую строку:

scgi_port = localhost:5000

Теперь необходимо настроить веб-сервер. Я использую lighttpd. Для работы wtorrent также необходимо, чтобы были установлены php, php-xmlrpc, php-sqlite и sqlite. Если чего-то из этого комплекта у вас не хватает, смело берите в руки напильник, кидайте его в окно и начинайте устанавливать.

Итак, что нужно менять в lighttpd.conf. Прежде всего необходимо добавить/раскомментировать строчку

"mod_scgi",

И добавить в конец файла следующие строки:

scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"host" => "127.0.0.1",
"port" => 5000, # Порт, указанный в .rtorrent.rc
"check-local" => "disable"
)
)
)


Теперь, для того, чтобы можно было авторизовываться в wtorrent и добавлять торренты из далёкого, дикого и безобразного интернета, находясь далеко от дома, от родного города, от родной страны, от родной планеты, необходимо создать htdigest:

#вместо kaliy и zhazha необходимо подставить %username% и пароль
echo kaliy:XML-RPC:`echo -n kaliy:XML-RPC:zhazha | md5sum | cut -b -32` > /path/to/htdigest

Теперь в lighttpd.conf раскомментируем/добавим строчку

"mod_auth",

и добавить в конец файла следующее:

auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/path/to/htdigest"
auth.require = ( "/RPC2" =>
(
"method" => "basic",
"realm" => "XML-RPC",
"require" => "valid-user"
)
)

Апач настраивается немного иначе, об этом можно прочитать здесь.

Теперь запустим rtorrent (это необходимо для работы wtorrent, честно). Он не умеет работать в качестве демона, поэтому запустим его через screen:

screen -dmS rtorrent rtorrent

Эту строчку лучше сразу прописать в загрузочные скрипты, чтобы не запускать каждый раз при загрузке системы. Вернуться к rtorrent можно будет, набрав команду screen -r rtorrent

Теперь установим, собственно, сам wtorrent. Скачиваем из SVN в каталог, указанный в настройках веб-сервера (например, /var/www/htdocs/):
svn co svn://wtorrent-project.org/repos/trunk/wtorrent/
Теперь последние штрихи. В каталоге wtorrent/conf/ есть файл sample.home.conf.php, который нужно отредактировать и переименовать в home.conf.php. Чтобы понять, что и как нужно исправлять, можно из браузера запустить файл wtorrent/install2.php
Ну, и в самом конце запускаем wtorrent/install.php и пользуемся торрентокачалкой.

Пруфскрин прилагается:

D3viL аватар

кароши статья.

kaliy аватар

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

Да, зачет.

CORPSE аватар

Моя больше предпочитает mldonkey. Удобно и функционально. Плюс, есть удобные клиентские примочки вроде kmldonkey. А тут как-то очень гламурно получается...

[root@brain root]# mount /dev/hands /mnt/ass -o nosuid,umask=000

Debian GNU/Linux Lenny

apt-get install torrentflux

всё

kaliy аватар

torrentflux - это тихий ужас с неудобным интерфейсом, без аякса (wtorrent все-таки более динамичный), без возможности управлять приоритетами закачек отдельных файлом.
а ещё он глючит страшно, вот уже 2 раза пыхпых выводил какие-то странные ошибки, с которыми мне было влом разбираться

Grifon аватар

Добавлю немного о безопасности.
если мы хотим, чтобы торентом пользовались не 1, а несколько человек, то надо запускать rtorrent от отдельного пользователя.
Создадим его (тут и далее работаем от root, пока не оговорено иное):

useradd -s /bin/true -d /home/rtorrent -g nobody -G lighttpd -m rtorrent

Мы видим, что пользователь не имеет рабочей оболочки.
Редактируем конфиг командой:
sudoedit -u rtorrent ~rtorrent/.rtorrent.rc

Создаём каталог для скачиваемых фалов
mkdir -p 775 ~rtorrent/{download,torrents}

Последняя команда создаёт папку для файлов *.torrent.
Проставляем права на каталог и папку:
chmod 600 ~rtorrent/.rtorrent.rc
chown rtorrent:lighttpd ~rtorrent/{download,torrents}

Запускаем командой:
sudo -H -u rtorrent screen -dmS rtorrent rtorrent

Проверяем запуск:
# netstat -anp|grep rtorrent
tcp   0      0 127.0.0.1:5000   0.0.0.0:*   LISTEN   2066/rtorrent
tcp   0      0 0.0.0.0:6973     0.0.0.0:*   LISTEN   2066/rtorrent

Далее, lighttpd запускается от пользователя lighttpd, поэтому распаковываем wtorrent в папку, на которую настроен lighttpd, меняем права:
chown -R lighttpd: /path/to/wtorrent
chmod -R 755 /path/to/wtorrent
chmod -R 750 /path/to/wtorrent/db

В файле /path/to/wtorrent.сonf/system.conf.php ищем строку
define( 'PERM_TORRENTS',        0777);

И меняем её на
define( 'PERM_TORRENTS',        0755);

А в конфиге lighttpd должна быть строка
url.access-deny = ("~", ".inc", ".db", ".tpl.php", ".cls.php")

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".