- Notifications
You must be signed in to change notification settings - Fork147
A modern web UI for various torrent clients with a Node.js backend and React frontend.
License
jesec/flood
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 | ✅ (tested) |
qBittorrent v4.1+ | ✅ (tested) |
Transmission | ✅ (tested) |
Deluge v2+ | ⚗️ Experimental |
For now, rakshasa/rtorrent and jesec/rtorrent are both supported.
If you are using rakshasa/rtorrent>0.15.1 (upstream rtorrent with json-rpc support),you will need to add these options to your config:
method.redirect=load.throw,load.normalmethod.redirect=load.start_throw,load.startmethod.insert=d.down.sequential,value|const,0method.insert=d.down.sequential.set,value|const,0
APIs are officially documented inline by thecomments andtypes.
You can also check out:
- community documentation site
- list of unofficial client API libraries
- list of unofficial API integrations
Flood conforms toSemantic Versioning conventions.
If you have a specific issue or bug, please file aGitHub issue. Please join theFlood Discord server to discuss feature requests and implementation details.
Check out theWiki for more information.
InstallNode.js runtime. Flood tracksCurrent
and provides support toActive LTS
as well.
- Debian, Ubuntu (
apt
/.deb
) and Enterprise Linux (yum
/dnf
/.rpm
) -based distributions users can installnodejs
fromNodeSource software repository. - Windows users can usewinget,Chocolatey or installer.
- macOS users can usebrew or installer.
- CheckNode.js website for more.
Alternatively, download a single-executable build fromReleases (or rolling build fromActions). It bundlesNode.js
and supportsLinux
,macOS
andWindows
.
(sudo)npm install --global flood
ornpx flood
Or use@jesec/flood
for cutting-edge builds.
flood
ornpx flood
if you installed Flood vianpm
.
npm run start
if you compiled Flood from source.
CheckWiki for how to install Flood as a service.
Flood uses a command line configuration interface.
Runflood --help
,npx flood --help
ornpm run start -- --help
to get help about command line arguments.
If you want to know more about configurations, checkshared/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
- If you are proxying requests to Flood from your own web server, configure Flood's path from the host at the
--baseuri
(orbaseURI
) property. All requests will be prefixed with this value.- For example, if serving Flood from
https://foo.bar/apps/flood
, you would setbaseURI
to/apps/flood
. If serving flood fromhttps://foo.bar
, you do not need to configurebaseURI
. - Read more about proxying requests to Flood in theWiki.
- For example, if serving Flood from
- CheckWiki, especially
Security
sections.
Run the installation command again.
- Flood and filesystem:
- Flood server performs file operations itself. As such, Flood needs to have permissions/access to the files.
- Flood only uses the path provided by the torrent client so it needs to have the same filesystem context as the torrent client. If a file is "/path/to/a/file" to the torrent client, it has to be "/path/to/a/file" to Flood in order to get file operations working. It can't be "/mnt/some/different/path/file".
- rTorrent:
- Linux users can download the latest static executable (available for
amd64
andarm64
) fromjesec/rtorrent. Alternatively, use package managers such asapt
,yum
,pacman
of the platform to install rTorrent. - macOS users can use
brew
to install rTorrent. - Compile: XMLRPC support flag (
--with-xmlrpc-c
) is required during compilation. - Certain features (sequential download, initial seeding, etc.) are not available in vanilla rTorrent.
- Linux users can download the latest static executable (available for
- Ask for help in theFlood Discord server.
docker run -it jesec/flood --help
Orjesec/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 toflood
's arguments like--port
and--allowedpath
.
Alternatively, you can pass in environment variables instead (e.g.-e FLOOD_OPTION_port=3000
).
CheckoutRun Flood (and torrent clients) in containers discussion.
Filesystem parts inTroubleshooting are especially important for containers.
git clone https://github.com/jesec/flood.git
From the root of the Flood directory...
- Run
npm install
. - Run
npm run build
. - Run
npm start
.
Access the UI in your browser. With default settings, go tohttp://localhost:3000
. You can configure the port via--port
argument.
Notes
- When you use
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 anynpm run
(e.g.start:development:client
).
- To update, run
git pull
in this repository's directory. - Kill the currently running Flood server.
- Run
npm install
to update dependencies. - Run
npm run build
to transpile and bundle static assets. - Start the Flood server with
npm start
.
- Run
npm install
. - Run
npm run start:development:server
andnpm run start:development:client
in separate terminal instances.npm run start:development:server
usests-node-dev to watch for changes to the server-side source. Or open the folder with VS code and thenRun -> Start Debugging
. You may use aJavascript 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 tolocalhost:4200
. You may use browser'sDevTools 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 to4200
.DEV_SERVER_HOST
: webpackDevServer's host, used when developing Flood. Defaults to0.0.0.0
.DEV_SERVER_HTTPS
: webpackDevServer's protocol, used when developing Flood. Defaults tohttp
.
docker build --pull --rm -f Dockerfile -t flood:latest .
docker run -it flood --help
About
A modern web UI for various torrent clients with a Node.js backend and React frontend.