четверг, 26 апреля 2012 г.

web-интерфейс для rtorrent

Нет, я не злостный торрентокачальщик :), но все же необходимость иногда возникает. На моем рабочем сервере, являющимся шлюзом во внешний мир, я пользуюсь rtorrent-ом. Встал вопрос выбора web-интерфейса для него. Да-да, консоль это святое, но согласитесь, иногда удобнее делать через gui (особенно когда лень пробирает, правда? :) Мой выбор пал на rutorrent - достаточно удобен и функционален за счет множества своих плагинов. Ну что же, приступим к установке и настройке.


Считаем, что rtorrent уже установлен (если нет, то установите при помощи вашего пакетного менеджера). Выполним небольшие настройки rtorrent-а, для дальнейшего использования web-интерфейса. Сначала создадим пользователя, от имени которого будет крутится вся система (ну не под рутом же торренты качать?!):

useradd -m rtorrent

Создадим файл настроек .rtorrent.rc в домашней директории созданного пользователя, например, так:

touch /home/rtorrent/.rtorrent.rc

и добавим туда некоторые важные для нас опции:

scgi_port = 127.0.0.1:5000 #для управления rtorrent через web-интерфейс
directory = /home/rtorrent/download #место, куда будут загружаться файлы
session = /home/rtorrent/.rtorrent_session #место хранения сессии rtorrent

создадим и выставим права на указанные каталоги

mkdir /home/rtorrent/download
mkdir /home/rtorrent/.rtorrent_session
chmod 066 /home/rtorrent/download
chmod 066 /home/rtorrent/.rtorrent_session

О других настройках rtorrent-а можно посмотреть, например, здесь или здесь на русском.
Для того, чтобы можно было подключаться к rtorrent через web-интерфейс, нужно чтобы rtorrent был запущен. Для того, чтобы он запускался автоматически при старте можно воспользоваться двумя способами:
1. запустить с помощью утилиты screen

echo "screen -dmS torrent rtorrent" >> /etc/rc.d/rc.local

2. скачать скрипт с сайта rtorrent и поставить его в автозагрузку

cd /etc/init.d
wget libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh

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

user = "rtorrent"

назначим владельца скрипта, дадим возможность выполнения и добавим в автозагрузку

chmod +x rtorrentInit.sh
chown root:root rtorrentInit.sh
chkconfig rtorrentInit.sh on
(или update-rc.d rtorrentInit.sh defaults для семейства дебиана)

после выполнения команды "" вы можете увидеть следующее сообщение

сервис rtorrentInit.sh не поддерживает chkconfig

чтобы команда сработала без ошибок, необходимо добавить в файл rtorrentInit.sh после первой строки #!/bin/sh

### BEGIN INIT INFO
# Provides:          rtorrent_autostart
# Required-Start:    $remote_fs $network $syslog
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: rtorrent script using screen(1)
# Description:       rtorrent script using screen(1) to keep torrents working without the user logging in
### END INIT INFO

Скачиваем rutorrent и все плагины к нему (плагины можно скачать как по отдельности, так и одним файлом; воспользуемся вторым вариантом):

wget http://rutorrent.googlecode.com/files/rutorrent-3.4.tar.gz
wget http://rutorrent.googlecode.com/files/plugins-3.4.tar.gz

Распакуем rutorrent, например, в каталог /var/www/html

tar -xf rutorrent-3.4.tar.gz -C /var/www/html
tar -xf plugins-3.4.tar.gz -C /var/www/html/rutorrent

Настройки rutorrent хранятся в файле rutorrent/conf/config.php. Подробнее о настройках можно почитать здесь.

Теперь осталось настроить веб-сервер. Так как у меня уже установлен apache, то настройки будут именно для него (но можно подружить и nginx, и с lighthttpd, на оф.сайте есть инструкция)
Добавим в файл конфигурации apache следующую строку:

ProxyPass /RPC2 scgi://127.0.0.1:5000

и перезапустим apache. На этом настройку можно считать оконченной, но отмечу еще один момент. Если все это проводится на сервере в локальной сети, то я бы посоветовал защититься от "чужаков" средствами apache -  добавить поддержку .htaccess:

AccessFileName .htaccess

Положим файл .htaccess в корень распакованного нами rutorrent (у меня это /var/www/html/rutorrent) и добавим такие строчки:

AuthType Basic
AuthName "access to admin Web server"
AuthUserFile /etc/httpd/conf/htpasswd
Require valid-use

и командой htpasswd создадим файл для аутентификации:

htpasswd -c /etc/httpd/conf/htpasswd rtorrent

Теперь вы можете заходить на страницу вашего торрентокачальщика используя логин/пароль. На этом все :)

Комментариев нет:

Отправить комментарий