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