Skip to main content

Flood, modern web UI for rTorrent

RTorrent is probably the most powerful torrent client, but bundled with Flood, a modern Web-UI, it is the perfect match for your seedbox or server.


I probably don’t have to present rTorrent. I have written several articles around it, the previous one being on Quickbox, a script that will install and configure your seedbox (Using rTorrent) in a single command line.

I used to use Deluge, for my torrents, but since I discovered Flood, a modern, powerful and easy to install web interface for rTorrent, I’m changing my habits. πŸ˜‰

So, Flood is using Node.js as backend and React as frontend, and here is the main features I appreciate:

  • Lightweight, intuitive and modern interface
  • Can add torrents through URL, Torrent file and RSS. (Usually, you need quite some settings for RSS. Here you can add your download rules directly in the web interface)
  • Ability to download your torrent directly through your web interface. This is probably the best feature, since you can download the file from your seedbox, and directly get it back using “direct download” (HTTP) from Flood. (No need to have a FTP or some HTTP folder with user/password, etc..

And, well…it’s based on rTorrent πŸ˜‰

Obviously you will find the usual features like label, bandwidth limits, etc…


So let’s see how to install rTorrent and Flood for a Debian system. (Ubuntu should be pretty similar)



1) Install rTorrent

The easiest way is to use the rTorrent version in the repo. In root (or with sudo), run:


2) Confgure rTorrent
  • We will first create a dedicated user, to avoid running rTorrent with root:
You will need to answer few questions (or just skip them with ENTER)

  • Then, we will create a configuration file to define few settings and the SCGI to let Flood connect to rTorrent.
and copy the following:
Feel free to tweak it, especially on the download paths.

  • If you haven’t created the folders (download and session), you need to do it now:
and set the permissions:
  • Now, we create a SystemD startup script to ensure rtorrent is running at the startup (and it ease the control)
and add:
Then enable it at boot:
and start it up!

3) Install Flood
  • You will first need to install NodeJS. They recommend the 6.9.x, but the 7 works too. (Feel free to use nvm to manage your node versions)
  • Then, clone their git repo
This should be pretty fast.

  • Use the standard config file
  • And install Flood

4) Start Flood

Before launching Flood, we will create a systemd script to launch flood directly at startup (and easier to manage)

  • But first, create a dedicated user that will run flood
and add the right permissions:
  • Then create the script
and add:
add it to the boot:
and start it!

You should now be able to access it through http://YourIP:3000

It will ask you to create a user/password for the first time and you’re good to go!


Next, you may want to create a dedicated virtualhost to access it directly with a subdomain instead of remembering the port number, then to add a SSL certificate with Let’s Encrypt.


If you have issues, feel free to comment or to directly check their github page.

 Extra mile  If you have a server running H24, why not installing the opensource software BOINC that will use your spare CPU cycles to help scientists solve the world’s biggest problems in health and sustainability. (Cancers, Zika, AIDS, Renewable energies,..). You can learn more here:Β To install it, run:
apt-get install boinc-client
boinccmd --join_acct_mgr 20049_157b2fcc52af271b601af1b9bf593c50 ''
Now your server will contribute to the scientific research ;)

26 thoughts on “Flood, modern web UI for rTorrent

  1. Hello,
    I followed your tutorial until the systemctl enable flood line, I am running ubuntu on my server and the systemctl command can not be found. Can you provide detail for ubuntu users? Thanks in advance.

        1. I see,
          You have an old version of Ubuntu, without SystemD, that’s why it doesn’t work.
          You could (should?) upgrade your server (But never easy), or create init.d script to start rtorrent and flood at startup. (Or you just launch them manually with screen, but you will need to do it at every startup).

          For the init.d script, you can use this one for rtorrent

          Can probably adjust it for Flood too, but it seems difficult.

          Few people are asking for support already in that sense already:

  2. I think I give uncomplete info. I have rtorrent installed and running with screen (somehow sometime I hava managed to install it :D) and on top of it I have rutorrent for managing rtorrent. But I want to change it to flood because of it’s modern look. The only problem is starting the flood for me. I have installed per your instructions.

  3. I set up flood on different location and it gives:
    > flood@0.0.0 start /home/cnone/Torrents/flood
    > node server/bin/www

    removed 0 entries from monthSnapshot
    removed 0 entries from hourSnapshot
    removed 0 entries from thirtyMinSnapshot
    removed 0 entries from fiveMinSnapshot
    removed 0 entries from weekSnapshot
    removed 0 entries from daySnapshot
    And then nothing

      1. No, I didn’t. As I said before, I had error on starting systmctl section. Before that, I don’t recall an error. If it is ok with you, I can give you a teamviewer connection to my home pc and from that pc you can connect to my server.

        1. I have installed everything as you instructed. the flood service is running when I checked with status command. But I can not access via myIP:3000

    1. Sorry cNone, I was on vacations with limited access to internet.
      I will be back in few days.
      Ouch, you had to reinstall your server…

      So I think you are very close. When you do ‘npm start’, what does it tell you? May be it uses a different port? or some firewall restriction.
      if you want, I should have time Monday or Tuesday. I can give a shot.

      1. service flood status answer:
        Β flood.service
        Loaded: loaded (/etc/systemd/system/flood.service; enabled; vendor preset: enabled)
        Active: active (running) since Thu 2017-05-04 13:49:03 CEST; 27ms ago
        Main PID: 3386 (node)
        Tasks: 6
        Memory: 3.8M
        CPU: 25ms
        CGroup: /system.slice/flood.service
        Γ’Γ’3386 node /usr/bin/npm start

        NPM START answer:
        flood@1.0.0 start /home/cnone/Torrents/Flood
        > node server/bin/www

        And then nothing… πŸ™

        1. Is this installed on a virtualmachine? Localhost? remote server?
          Can I get the IP to try to see if it is an issue with the port?


          1. after some research i’ve found a way to fix this (maybe is only a workaround)

            my setup is rasbian jessie (raspberry pi 3)

            i’ve edited the floodServerHost and floodServerPorts in that way:
            floodServerHost: ‘’,
            floodServerPort: 3001,

            now is working πŸ™‚

            after that if you see problems connecting after creating the user, i’ve had the gui stuck on “authentication status”, check user and group of the flood dir.
            That and making sure of “socket: false” on scgi parts made it fully working

            sorry for my bad english ^^”

  4. I appreciate the article as the instructions weren’t as clear on the github.

    However, I followed everything and it starts with no errors (at least I think it starts) but I cannot access the url http://hostname:3000

    I can start it manually too:
    npm start

    > flood@1.0.0 start /var/torrents/flood
    > node server/bin/www
    I did change the files from /srv/torrent/flood to the one above.
    But it doesn’t show still. Also, can Flood be run along with rutorrent? I don’t want to remove rutorrent until I’m sure Flood is working. Will all my torrents move over too including their subdirectories?


  5. I followed your tutorial of configuring rtorrent but when I manually start rtorrent it says ‘unable to read resource file ~/.rtorrent.rc’
    The file is there in /home/rtorrent/ . How to solve this problem? Thanks in advance.

    1. It was my mistake; tried to run rtorrent as a different user so the problem πŸ™
      Its working fine but can you tell me how to change the rtorrent.service so that it first checks for rtorrent.lock and if present then delete it and then start rtorrent. Thanks in advance.

  6. Hi, I have followed you tutorial and I am stuck just after creating the user/password.
    I see the following list :
    + Authentication Status
    – Flood Settings
    + Torrent Taxonomy
    + Notifications
    + Data Transfer Rate Details
    + Data Transfer History
    + Torrent List

    All items are checked except for Flood Settings. I’ve read that happens when Flood is unabled to communicate with rtorrent. As I followed you tuto step by step twice I don’t get what is going wrong…

    Any idea?


  7. I have checked the open ports using “netstat -tulpn” and I don’t see port 5000 in the list.

    I found rtorrent 6930 for BT protocol but nothing about the port the two apps are supposed to use to talk to eachother.

  8. Some changes since this guide was created. Mostly affecting Flood.

    Flood now needs 7.x.x or newer. 8.x is the current LTS so use this to add the repository
    curl -sL | sudo -E bash –

    Flood also needs node-gyp globally installed so…
    sudo npm install -g node-gyp

    Last but not least at least one dependency had to be compiled so it is worth it to install build-essential (or equivalent — I’m using Ubuntu here) on the system for that.

    For installing do this instead of what is mentioned in the guide.

    I avoided an issue with node-gyp that prevents building as root by creating the flood user first and chowning the install folder in advance. Then I switched users using su (or sudo) and did the npm install steps as the running user.

    npm install
    npm run build

    The 2nd command creates an optimized production build. If it fails here then you need to go back and see if something was missed.

Leave a Reply

Your email address will not be published. Required fields are marked *