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
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_8.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 copy template config file:
cd floodcp config.template.js config.js
Then install Flood :
npm install --production
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 and you’re ready to go.
Congratulation ! Flood with rTorrent is installed 🙂