Flood-UI and Rtorrent on Ubuntu 18.04/16.04

I was bored yesterday and googled “best bittorrent web client” and eventually stumbled onto Flood-UI – it’s a nice modern webui for rtorrent. You can find multiple screenshots of it here. I followed this guide but I had to make some changes for it work on my seedbox; most of the instructions below are taken from the guide I used.

Install rtorrent, setup a user to run rtorrent and make an rtorrent config file:

Paste the following into .rtorrent.rc; you can customize the ports you want to use for rtorrent here:

Create the directories as specified in the above config file for rtorrent; I couldn’t think of a better place to put everything so I just used the paths in the guide.

Create a systemd script for rtorrent:

Give it the following contents:

Enable and start the rtorrent service:

This is where I had to deviate from the guide I was using and install Node.JS/Flood differently; when I followed the guide as is I couldn’t get Flood to build/install correctly. After fixing that issue, I noticed files wouldn’t get deleted when removing torrents (even with the option checked to delete files); the solution to this was to just run both rtorrent and Flood as the same user.

My seedbox didn’t have git or curl installed so I installed those first:

Next I installed the latest version of Node.JS following this guide:

I also needed to install gcc g++ and make:

Next clone the repo from Git and make a config file for Flood. Per the official documentation you should edit config.js and change the secret value to something long and unique (the default value is flood). If you run into permission errors while running git or npm, try changing ownership of /srv/torrent to your user before you run those commands. I had to do this when I tried to repeat this guide on a new box where I wasn’t logged in as root; just remember to give ownership back to rtorrent when finished.

Next install Flood:

Give our previously created user permissions to run flood:

Create a systemd script for Flood:

Give it the following contents:

Enable and start the Flood service:

Flood and rtorrent should be running at this point; the default port for Flood is 3000. Since I already had nginx configured as a reverse proxy for the Deluge WebUI, I just edited my nginx config to point to Flood instead. The official documentation has additional details on using Flood behind a reverse proxy here. If you are going to access Flood directly by IP, you may need to edit config.js and update the floodServerHost and floodServerProxy to the IP address of your server.

When logging into Flood for the first time, you will need to register; pick your username/password and provide the IP and Port for rtorrent: