There are multiple web interface for rTorrent like the most known ruTorrent. But all these alternatives haven’t a good UI. Here comes Flood, A modern web UI for rTorrent with a Node.js backend and React frontend.
The project is still work-in-progress but it’s already usable and features are added frequently.
You can find their Github here and more screenshots : https://github.com/jfurrow/flood
Installation have been tested on 17.04 and 20.04.
1. Install rTorrent
The easiest way is to install it from the repo, run:
apt-get install rtorrent -y
2. Configure rTorrent
We need to create a dedicated user to avoid running rTorrent with root:
adduser --disabled-password rtorrent
Now we will create a configuration file :
nano /home/rtorrent/.rtorrent.rc
and copy the following:
# Where rTorrent saves the downloaded files
directory = /srv/torrent/downloads# Where rTorrent saves the session
session = /srv/torrent/.session# Which ports rTorrent can use (Make sure to open them in your router)
port_range = 50000-50000
port_random = no# Check the hash after the end of the download
check_hash = yes# Enable DHT (for torrents without trackers)
dht = auto
dht_port = 6881
peer_exchange = yes# Authorize UDP trackers
use_udp_trackers = yes# Enable encryption when possible
encryption = allow_incoming,try_outgoing,enable_retry# SCGI port, used to communicate with Flood
scgi_port = 127.0.0.1:5000
You can customize the downloads path
If you haven’t created the folders (download and session), you need to do it :
mkdir /srv/torrentmkdir /srv/torrent/downloadsmkdir /srv/torrent/.session
And set the permissions
chmod 775 -R /srv/torrentchown rtorrent:rtorrent -R /srv/torrentchown rtorrent:rtorrent /home/rtorrent/.rtorrent.rc
Then we need to create a systemd startup service to launch rTorrent at boot
nano /etc/systemd/system/rtorrent.service
And add to the file :
[Unit]
Description=rTorrent
After=network.target[Service]User=rtorrent
Type=forking
KillMode=none
ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent
WorkingDirectory=%h[Install]WantedBy=default.target
Then enable it at boot and start it :
systemctl enable rtorrent.servicesystemctl start rtorrent
3. Install Flood
You need first to install Node.js :
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -sudo apt-get install -y nodejs
if you don’t have Curl installed :
apt-get install curl
Then clone their repo:
cd /srv/torrentgit clone https://github.com/jfurrow/flood.git
if you don’t have Git installed :
apt-get install git
We need to copy the template config file:
cd floodcp config.template.js config.js
Then install Flood :
npm install
npm run build
4. Start Flood
Before lauching flood we will create a systemD to lauch Flood at startup ( easier to start , stop )
Create a dedicated user to run Flood:
adduser --disabled-password flood
Add permissions
chown -R flood:flood /srv/torrent/flood/
Then create the script :
nano /etc/systemd/system/flood.service
and copy this:
[Service]WorkingDirectory=/srv/torrent/flood
ExecStart=/usr/bin/npm start
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=notell
User=flood
Group=flood
Environment=NODE_ENV=production[Install]WantedBy=multi-user.target
Enable it at boot and start it:
systemctl enable flood
5. Testing
systemctl start flood
You should now can access it with http://YourIP:3000
Finally it will ask you to create a user/password.
Fill the rTorrent address and port with the one you put in .rtorrent.rc at scgi_port 127.0.0.1 and 5000 for me.
Congratulation ! Flood with rTorrent is installed :)
If you have issues, feel free to comment