UNIXAWESOME

Установка и настройка rtorrent + ruTorrent

#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 скачивание начнётся автоматически

Вот и вся настройка.

Reply to this post by email ↪