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.
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.
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.
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 (or baseURI) property. All requests will be prefixed with this value.
For example, if serving Flood from 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.
Read more about proxying requests to Flood in the Wiki.
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 and arm64) from jesec/rtorrent. Alternatively, use package managers such as apt, 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.
Filesystem parts in Troubleshooting are especially important for containers.
Building Flood
Clone from repository
git clone https://github.com/jesec/flood.git
Compiling assets and starting the server
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 to http://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 any npm run (e.g. start:development:client).
Updating
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.
Local Development
Run npm install.
Run 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.
Environment Variables
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.
请发表评论