rTorrent — это консольный BitTorrent клиент для Linux/Unix систем, написанный на C++. Быстр и очень нетребователен к ресурсам.
ruTorrent - это интерфейс (web-морда) для rTorrent, популярен из-за удобного интерфейса и множества полезных плагинов.
Установку будем производить на CentOS 8, хотя и для других дистрибутивов название пакетов, общий порядок их установки и настройки конфигурационных файлов будет таким же.
Устанавливаем rtorrent, также нам понадобится tmux
dnf install rtorrent tmux
Для дальнейшей работы rtorrent в качестве постоянно работающего сервиса создаём отдельного пользователя, чисто для торрентов. Если вам не пофиг на безопасность сервера то не рекоммендуется пропускасть этот шаг, так как сервис будет стартовать по умолчанию от root пользователя, а это не желательно.
Создаём группу пользователей shares которым будет доступна сетевая шара.
groupadd shares
Создаём пользователя rtorrent и сразу добавляем его в нашу группу.
useradd -G shares -m -s /bin/bash rtorrent
Создаём файл настроек в папке пользователя /home/rtorrent/
.rtorrent.rc
min_peers = 1
max_peers = 512
min_peers_seed = -1
max_peers_seed = -1
download_rate = 10240
network.max_open_files.set = 512
network.http.max_open.set = 256
pieces.memory.max.set = 1000M
network.xmlrpc.size_limit.set = 4M
network.max_open_sockets.set = 1024
# Ограничение скорости download/upload значение в килобайтах
throttle.global_up.max_rate.set_kb = 6144
throttle.global_down.max_rate.set_kb = 6144
#system.file_allocate.set = yes
pieces.preload.type.set = 1
pieces.preload.min_size.set = 262144
pieces.preload.min_rate.set = 5120
network.send_buffer.size.set = 16M
network.receive_buffer.size.set = 4M
system.umask.set=0007
# Директория для скачивания торрентов
directory = /media/files/downloads/
session = /media/files/downloads/watch/.rtsession
# check every 15 sec folder
schedule = watch_directory,15,15,load.start=/media/files/downloads/watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=
port_range = 6890-6891
check_hash = no
encryption = allow_incoming,try_outgoing,enable_retry,prefer_plaintext
dht = auto
dht_port = 6881
scgi_port = 192.168.87.6:5000
encoding_list=UTF-8
max_memory_usage = 1024M
У меня в системе отдельный смонтированный диск для торрентов и прочих загрузок. Смонтированный в /media/files
. Создаём необходимые директории для rtorrent
mkdir -p /media/files/downloads/watch/.rtsession
Выставляем права, владельца и группу на папку.
chown -R root:share /media/files/downloads
chmod -R 770 /media/files/downloads
Создаём сервис для запуска rtorrent в /etc/systemd/system
rtorrent.service
[Unit]
Description=rTorrent Daemon
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
User=rtorrent
Group=shares
ExecStart=/usr/bin/tmux -2 new-session -d -s rtorrent rtorrent
ExecStop=/usr/bin/tmux kill-session -t rtorrent
[Install]
WantedBy=default.target
systemctl daemon-reload
systemctl start rtorrent.service
systemctl status rtorrent.service
Если всё прошло нормально, добавляем в автозагрузку
systemctl enable rtorrent.service
Установка ruTorrent
Устанавливаем для начала веб сервер Nginx и php-fpm
dnf install nginx php wget
Создаём директорию для веб морды и переходим в неё
mkdir /var/www/rutorrent
cd /var/www/rutorrent
Смотрим последнюю версию ruTorrent и скачиваем
https://github.com/Novik/ruTorrent/releases
У меня это 3.10
wget https://github.com/Novik/ruTorrent/archive/v3.10.tar.gz
распаковываем в нашу созданную папку, чтобы получилась такая структура:
/var/www/rutorrent/
├── conf
├── css
├── images
├── js
├── lang
├── php
├── plugins
├── share
├── .gitmodules
├── htaccess-example
├── index.html
├── LICENSE.md
└── README.md
Меняем права на папку.
chown -R root:nginx share/
Создаём конфиг для веб сервера
/etc/nginx/conf.d/rutorrent.conf
server {
listen 192.168.87.6:80;
root /var/www/rutorrent;
error_log /var/log/nginx/rutorrent_error.log;
location / {
index index.html;
include default.d/php.conf;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location /RPC2 {
include scgi_params;
scgi_pass 192.168.87.6:5000;
}
}
Настаиваем php
Редактируем /etc/php-fpm.d/www.conf
меняем некоторые строки:
...
user = nginx
group = nginx
...
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
...
Для проверки конфигов nginx вводим команду
nginx -t
Если всё ок, запускаем веб сервер и php
systemctl start nginx.service
systemctl start php-fpm.service
Добавляем в автозагрузку
systemctl enable nginx.service
systemctl enable php-fpm.service
Конфигурируем ruTorrent
/var/www/rutorrent/conf/config.php
...
$topDirectory = '/media/files/downloads';
...
$scgi_port = 5000;
$scgi_host = "192.168.87.6";
...
$pathToExternals = array(
"php" => '/usr/bin/php',
"curl" => '/usr/bin/curl',
"gzip" => '/usr/bin/gzip',
"id" => '/usr/bin/id',
"stat" => '/usr/bin/stat',
"pgrep" => '/usr/bin/pgrep',
"python" => '/usr/bin/python3'
);
...
$localhosts = array( // list of local interfaces
"127.0.0.1",
"localhost",
"192.168.87.6",
);
Также добавляем пользователя rtorrent в группу nginx
Доставляем необходимые пакеты:
dnf install php-json python3 libmediainfo sox unrar unzip ffmpeg
Открываем браузер и переходим по нашему ip адресу
Если в веб интерфейсе показывает ошибки плагинов, то их можно поотключать во вкладке плагины, или же доставить нужные для них пакеты.
При добавлении торрент файла в нашу папку watch
скачивание начнётся автоматически
Вот и вся настройка.