Установка rtorrent во FreeBSD с веб интерфейсом rutorrent

15th Март 2010 | Метки: , , ,
Опубликовал: Andrey [rtty] Shidakov

rTorrent — консольный BitTorrent клиент для Linux/Unix систем, написанный на C++ на основе библиотеки libTorrent. Использует библиотеку ncurses для вывода. Отличается высокой скоростью и нетребовательностью к системным ресурсам.

ruTorrent — это графическая оболочка для работы с торрент клиентом rTorrent, работающая под управлением веб сервера.

Вот краткая инструкция для установки rTorrent + ruTorren во  FreeBSD:

1. Обновляем порты:

portsnap fetch update

2. Устанавливаем rtorrent:

cd /usr/ports/net-p2p/rtorrent
make install clean

Опция при установке XMLRPC должна быть выбрана.
3. Добавляем юзера p2p:

adduser p2p

4. Создаем нужные директории:

su - p2p
cd ~
mkdir torrent
mkdir ~/torrent/dl
mkdir ~/torrent/work
mkdir ~/torrent/session

5. Правим конфиг:

nano /home/p2p/.rtorrent.rc

У меня получилось вот такое содержимое:

min_peers = 1
max_peers = 100
min_peers_seed = 1
max_peers_seed = 50
download_rate = 1024
upload_rate = 1024
directory = /home/p2p/torrent/work
# Директория куда будут скачиваться Ваши файлы
session = /home/p2p/torrent/session
# Эта директория, в которую будут размещаться открытые закачки. Можете оставить 
# это поле пустым, чтобы все файлы размещались в directory.
schedule = watch_directory,5,5,load_start=/home/p2p/torrent/dl/*.torrent
schedule = untied_directory,5,5,stop_untied=
schedule = low_diskspace,5,60,close_low_diskspace=1000M
port_range = 6890-6999
# Диапазон портов по которым будет идти подключение
port_random = no
# Открывает случайный порт из заданного диапазона
use_udp_trackers = no
encryption = allow_incoming,enable_retry,prefer_plaintext
# Настройки шифрования. По умолчанию, шифрование отключено, 
# что эквивалентно параметру none.
dht = auto
dht_port = 6881
peer_exchange = yes
scgi_port = localhost:5000
safe_sync = yes
encoding_list = UTF-8
# Добавить предпочитаемую кодировку для имен файлов. Если при распознавании
#  ни одна кодировка не подойдет, будет использована кодировка по-умолчанию.

6. Устанавливаем mod_scgi:

cd /usr/ports/www/mod_scgi && make install clean

7. Настраиваем apache:
Добавляем в файл /usr/local/etc/apache22/httpd.conf строки

LoadModule scgi_module          libexec/apache22/mod_scgi.so
SCGIMount "/RPC2" 127.0.0.1:5000

Рестартим apache:

apacheclt restart

8. Стартовый скрипт rtorrent:
Для работы скрипта ставим screen:

cd /usr/ports/sysutils/screen && make install clean

Сам скрипт(найден в Интернете, автор указан в коментах) (/usr/local/etc/rc.d/rtorrent):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/sh
#
# rtorrent RCng startup script
# by Emanuele Cipolla (mail at emanuelecipolla dot net)
# Shamelessly ripped off the aMule startup script by Gabriele Cecchetti (amule.org forum)
# 
 
# PROVIDE: rtorrent
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: shutdown
 
#
# Add the following lines to /etc/rc.conf to enable rtorrent at startup
# rtorrent (bool): Set to "NO" by default.
#                Set it to "YES" to enable rtorrent
# rtorrent_user (str): Set to user running rtorrent
#                    (default 'p2p')
# rtorrent_home (str): Set to home directory of user running rtorrent
#                    (default /home/${rtorrent_user})
 
. /etc/rc.subr
 
name="rtorrent"
rcvar=`set_rcvar`
 
load_rc_config $name
 
[ -z "$rtorrent_enable" ] && rtorrent_enable="NO"
[ -z "$rtorrent_user" ] && rtorrent_user="p2p"
[ -z "$rtorrent_home" ] && rtorrent_home="/home/${rtorrent_user}"
 
required_dirs=${rtorrent_home}
required_files="${rtorrent_home}/.rtorrent.rc"
 
start_cmd="${name}_start"
stop_cmd="${name}_stop"
 
rtorrent_start()
{
        if [ ! -f /var/run/${name}.run ]
        then
          cd ${rtorrent_home}
          su ${rtorrent_user} -c "/usr/local/bin/screen -dmS rtorrent_init /usr/local/bin/rtorrent"
          touch /var/run/${name}.run
          echo "Started ${name}."
          echo `date` : "Started ${name}." >> /var/log/${name}.log
          else
          echo "${name} seems to be already running -- remove /var/run/${name}.run manually if needed."
        fi
}
 
rtorrent_stop()
{
        if [ -f /var/run/${name}.run ]
        then
          killall -INT $(echo -n 'ps aux | grep rtorrent | grep -v rtorrent_init') 2>>/var/log/${name}.log >>/var/log/${name}.log
          rm -f /var/run/${name}.run
          echo "Stopped ${name}."
          echo `date` : "Stopped ${name}." >> /var/log/${name}.log
        else
          echo "${name} doesn't seem to be running -- create /var/run/${name}.run if needed."
        fi
}
 
run_rc_command "$1"

Добавляем rtorrent в автозапуск:

echo 'rtorrent_enable="YES"' >> /etc/rc.conf

9. Приступаем к установке вебморды:
Переходим в папку веб сервера, куда мы хотим установить RuTorrent и выполняем:
Качаем и распаковываем архив с вебмордой http://code.google.com/p/rutorrent/downloads/list
Можно через svn:

svn checkout http://rutorrent.googlecode.com/svn/trunk/ rutorrent-read-only

Если все сделано правильно, то вы должны увидеть по адресу http://вашсервер/папка_rutorrentа Ваш веб интерфейс управления rtorrent.

10. Ставим пароль на доступ к rutorrent по сети с использованием htpasswd:

cd /home/p2p
htpasswd -c .htpasswd username

Создаем в папке с rutottent файл .htaccess

AuthType Basic
AuthName "Authorisation required!"
AuthUserFile /home/p2p/.htpasswd
require user username

где username — имя пользователя.
Скриншот установленного rtorrent:

11. Проверяем работоспособность

Пока комментариев нет.
Вы должны авторизоваться для отправки комментария.