A modern web UI for rTorrent, Transmission and qBittorrent.
5M+
Flood is a monitoring service for various torrent clients. It's a Node.js service that communicates with your favorite torrent client and serves a decent web UI for administration. Flood-UI organization hosts related projects.
| Client | Support |
|---|---|
| rTorrent | :white_check_mark: (tested) |
| qBittorrent v4.1+ | :white_check_mark: (tested) |
| Transmission | :white_check_mark: (tested) |
If you have a specific issue or bug, please file a GitHub issue. Please join the Flood Discord server to discuss feature requests and implementation details.
Check out the Wiki for more information.
Install Node.js runtime. Flood tracks Current and provides support to Active LTS as well.
apt/.deb) and Enterprise Linux (yum/dnf/.rpm) -based distributions users can install nodejs from NodeSource software repository.EXPERIMENTAL: You can download a single-executable build from Releases (or rolling build from Actions). It bundles Node.js and supports Linux, macOS and Windows.
(sudo) npm install --global flood or npx flood
Or use @jesec/flood for cutting-edge builds.
flood or npx flood if you installed Flood via npm.
npm run start if you compiled Flood from source.
Check Wiki for how to install Flood as a service.
Flood uses a command line configuration interface.
Run flood --help, npx flood --help or npm run start -- --help to get help about command line arguments.
If you want to know more about configurations, check shared/schema/Config.ts.
When Flood's builtin user management is enabled (default), you will be prompted to configure the connection to torrent client when loading the web interface.
What to configure
--baseuri (or baseURI) property. All requests will be prefixed with this value.
https://foo.bar/apps/flood, you would set baseURI to /apps/flood. If serving flood from https://foo.bar, you do not need to configure baseURI.Security sections.Run the installation command again.
amd64 and arm64) from jesec/rtorrent. Alternatively, use package managers such as apt, yum, pacman of the platform to install rTorrent.brew to install rTorrent.--with-xmlrpc-c) is required during compilation.<rundir>/temp) as Flood adds torrents to rTorrent by local file path (96c754dd). This is because rTorrent uses a rather antique XML-RPC interface, which usually has certain limitations (size of body) and is unreliable in handling large binary objects (Flood-UI/flood#164, Flood-UI/flood#741, Flood-UI/flood#773). See #86.docker run -it jesec/flood --help
Or jesec/flood:master for cutting-edge builds.
To upgrade, docker pull jesec/flood.
Note that you have to let Docker know which port should be exposed (e.g. -p 3000:3000) and folder mapping (e.g. -v /data:/data).
Don't forget to pay attention to flood's arguments like --port and --allowedpath.
Checkout Run Flood (and torrent clients) in containers discussion.
Filesystem parts in Troubleshooting are especially important for containers.
git clone https://github.com/jesec/flood.git
From the root of the Flood directory...
npm install.npm run build.npm start.Access the UI in your browser. With default settings, go to http://localhost:3000. You can configure the port via --port argument.
Notes
npm run start to execute Flood, you have to pass command line arguments after --. For example, npm run start -- --host 0.0.0.0 --port 8080. This applies to any npm run (e.g. start:development:client).git pull in this repository's directory.npm install to update dependencies.npm run build to transpile and bundle static assets.npm start.npm install.npm run start:development:server and npm run start:development:client in separate terminal instances.
npm run start:development:server uses ts-node-dev to watch for changes to the server-side source. Or open the folder with VS code and then Run -> Start Debugging. You may use a Javascript IDE to debug server codes.npm run start:development:client watches for changes in the client-side source. Access the UI in your browser. Defaults to localhost:4200. You may use browser's DevTools to debug client codes.--help --show-hidden shows advanced arguments.
--proxy proxies requests from a development client to a URL of your choice (usually URL to a Flood server). It is useful when you wish to do development on the frontend but not the backend. Or when the frontend and backend are being developed on different hosts.
DEV_SERVER_PORT: webpackDevServer's port, used when developing Flood. Defaults to 4200.DEV_SERVER_HOST: webpackDevServer's host, used when developing Flood. Defaults to 0.0.0.0.DEV_SERVER_HTTPS: webpackDevServer's protocol, used when developing Flood. Defaults to http.docker build --pull --rm -f Dockerfile -t flood:latest .docker run -it flood --helpContent type
Image
Digest
sha256:3bf48e72a…
Size
44 MB
Last updated
about 6 hours ago
docker pull jesec/flood:master-distroless