Благодаря AndreyUA в новый репозиторий добавлен web-интерфейс для rTorrent и установка торрент клиента приобрела завершённый вид. Ниже описаны минимальные телодвижения для того, чтобы заставить работать rTorrent с web-интерфейсом. Необходимо:
1. Установить пакеты
Code:
$ opkg install rutorrent screen php5-cgi lighttpd-mod-fastcgi lighttpd-mod-scgi lighttpd-mod-auth
2. Сконфигурировать rTorrent
Создать папки watchdir и session. При попадании *.torrent-файла в первую папку он будет автоматически добавлен в список заданий, вторая папка содержит текущее состояние скачек:
Code:
$ mkdir -p /opt/etc/rtorrent/watchdir
$ mkdir -p /opt/etc/rtorrent/session
Создать конфигурационный файл rtorrent.conf в папке /opt/etc/rtorrent со следующим содержимым:
Code:
max_uploads = 8
download_rate = 2048
upload_rate = 2048
directory = /tmp/harddisk/torrent
session = /opt/etc/rtorrent/session
schedule = watch_directory,5,5,load_start=/opt/etc/rtorrent/watchdir/*.torrent
schedule = untied_directory,5,5,stop_untied=
schedule = low_diskspace,5,60,close_low_diskspace=100M
bind = 0.0.0.0
port_range = 51411-51411
check_hash = yes
use_udp_trackers = yes
encryption = allow_incoming,enable_retry,prefer_plaintext
dht = auto
dht_port = 51412
peer_exchange = yes
scgi_local = /opt/var/rpc.socket
encoding_list = UTF-8
max_uploads_global = 32
max_downloads_global = 64
Поправьте выделенным красным путь, в нём должна быть указана папка на диске, в которую будут скачиваться файлы.
Создать файл для автоматического старта rtorrent - /opt/etc/init.d/S85rtorrent со следующим содержимым:
Code:
#!/bin/sh
ENABLED=yes
PROCS=rtorrent
ARGS="-n -o import=/opt/etc/rtorrent/rtorrent.conf"
PREARGS="screen -dmS rtorrent"
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
if [ -z "`pidof $PROCS`" ]; then
rm -f /opt/var/rpc.socket
fi
. /opt/etc/init.d/rc.func
и не забыть сделать его исполняемым:
Code:
$ chmod +x /opt/etc/init.d/S85rtorrent
3. Сконфигурировать web-сервер
В конец файла /opt/etc/lighttpd/lighttpd.conf добавьте строчки:
Code:
server.modules += ( "mod_scgi" )
scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"socket" => "/opt/var/rpc.socket",
"check-local" => "disable"
)
)
)
server.modules += ( "mod_fastcgi" )
fastcgi.server = (
".php" =>
( "localhost" =>
( "socket" => "/tmp/php-fcgi.sock",
"bin-path" => "/opt/bin/php-fcgi",
"max-procs" => 1,
"bin-environment" =>
( "PHP_FCGI_CHILDREN" => "2",
"PHP_FCGI_MAX_REQUESTS" => "1000"
)
)
)
)
server.modules += ( "mod_auth" )
auth.backend = "plain"
auth.backend.plain.userfile = "/opt/etc/lighttpd/passwd"
auth.require = (
"/rutorrent/" =>
( "method" => "basic",
"realm" => "restricted area",
"require" => "valid-user"
)
)
и создать файл cat /opt/etc/lighttpd/passwd с перечнем пар пользователь-пароль для ограничения доступа к ruTorrent. Пример файла:
В принципе всё, но ещё необходимо позаботиться о двух моментах:
а) если у вас, как у большинства форумчан web-интерфейс роутера «висит» на стандартном 80-ом порту, то для работы web-сервера lighttpd необходимо выбрать другой порт, изменив строчку в /opt/etc/lighttpd/lighttpd.conf:
б) для активной раздачи с торрент-клиента, а также для того, чтобы можно было управлять закачками из интернета, необходимо открыть на роутере соответствующие порты:
Code:
$ mkdir -p /tmp/local/sbin
$ echo "#!/bin/sh" > /usr/local/sbin/post-firewall
$ echo "/usr/sbin/iptables -I INPUT -p tcp --dport 51411 -j ACCEPT" >> /usr/local/sbin/post-firewall
$ echo "/usr/sbin/iptables -I INPUT -p udp --dport 51411:51412 -j ACCEPT" >> /usr/local/sbin/post-firewall
$ echo "/usr/sbin/iptables -I INPUT -p tcp --dport 81 -j ACCEPT" >> /usr/local/sbin/post-firewall
$ chmod +x /tmp/local/sbin/post-firewall
$ flashfs save && flashfs commit && flashfs enable
$ reboot
Управлять работой торрент клиента можно набрав в браузере <ip-адрес роутера>:81/rutorrent