rTorrent
Что вам нужно?
- Apache 2.4+
- XML-RPC 1.00+
- rTorrent 0.9.7+ собранный с флагом
--with-xmlrpc-c
- веб-интерфейс ruTorrent (необязательно)
Порядок настройки
На примере дистрибутива Ubuntu 20.04 LTS (Focal Fossa)
Получаем права root:
sudo -i
Устанавливаем пакеты:
apt install rtorrent apache2 curl libapache2-mod-php
libapache2-mod-php нужен для работы ruTorrent
Создаём файл виртуального хоста:
cat > /etc/apache2/sites-available/rtorrent.loc.conf << EOF
<VirtualHost *:80>
ServerName rtorrent.loc
DocumentRoot /var/www/rtorrent
DirectoryIndex index.html index.php
CustomLog /var/log/apache2/rtorrent-access.log common
ErrorLog /var/log/apache2/rtorrent-error.log
ProxyPass /RPC2 scgi://127.0.0.1:5000
TimeOut 600
<Directory /var/log/apache2/torrents-access.log>
AllowOverride all
Require all granted
Options +Indexes +FollowSymlinks
</Directory>
</VirtualHost>
EOF
Устанавливаем веб-интерфейс ruTorrent:
wget https://github.com/Novik/ruTorrent/archive/v3.10-beta.zip
unzip -d /var/www/ v3.10-beta.zip
mv /var/www/ruTorrent-3.10-beta /var/www/rtorrent
chown www-data: -R /var/www/rtorrent/share/{torrents,settings}
rm -f v3.10-beta.zip
Отключаем все плагины ruTorrent (не разбирался почему они корректно не работают)
sed -i '/^\w/s|[^= ]*$|no|g' /var/www/rtorrent/conf/plugins.ini
Включаем виртуальный хост и нужные модули:
a2dissite 000-default
a2ensite rtorrent.loc
a2enmod proxy_scgi
Перезапускаем apache2:
systemctl restart apache2
Создадим файл службы rTorrent:
cat > /etc/systemd/system/rtorrent.service << EOF
[Unit]
Description=rTorrent Daemon Service
Documentation=man:rtorrent(1)
Wants=network-online.target
After=network-online.target nss-lookup.target
[Service]
# if you have systemd >= 240, you probably want to use Type=exec instead
Type=simple
User=rtorrent
ExecStart=/usr/bin/rtorrent
TimeoutStopSec=infinity
[Install]
WantedBy=multi-user.target
EOF
Заставим systemd прочитать нашу новую службу:
systemctl daemon-reload
Добавим отдельного пользователя для работы rTorrent:
adduser rtorrent
Войдём в его окружение:
su - rtorrent
Заберём шаблон для конфигурационного файла rTorrent:
curl -Ls "https://raw.githubusercontent.com/wiki/rakshasa/rtorrent/CONFIG-Template.md" \
| sed -ne "/^######/,/^### END/p" \
| sed -re "s:/home/USERNAME:$HOME:" >~/.rtorrent.rc
mkdir -p ~/rtorrent
Задействуем в настройках rTorrent режим демона:
cat >> ~/.rtorrent.rc << EOF
system.daemon.set = true
network.scgi.open_port = 127.0.0.1:5000
EOF
Вернёмся в окружение root:
exit
Отключим пользователю rtorrent доступ к /bin/bash:
usermod -s /usr/sbin/nologin rtorrent
Добавим службу rtorrent в автозапуск и одновременно запустим:
systemctl enable --now rtorrent.service
На этом первоначальная настройка окончена. Дополнительную информацию по тонкой настройке rTorrent можно найти на сайте разработчика https://github.com/rakshasa/rtorrent/wiki#users-manual