All Projects → jesec → Flood

jesec / Flood

Licence: gpl-3.0
A modern web UI for various torrent clients with a Node.js backend and React frontend.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Flood

Flood
A web UI for rTorrent, qBittorrent and Transmission with a Node.js backend and React frontend. Migrate to v4: https://github.com/jesec/flood/wiki/Migrate-from-older-versions-of-Flood.
Stars: ✭ 1,795 (+536.52%)
Mutual labels:  transmission, qbittorrent, rtorrent, webui
Flood Mobile
GSoC 21' @CCExtractor. A modern mobile UI for various torrent clients with a Node.js backend and Flutter frontend.
Stars: ✭ 48 (-82.98%)
Mutual labels:  rtorrent, qbittorrent, transmission
Thoradia
Thoradia Add-ons Repository
Stars: ✭ 208 (-26.24%)
Mutual labels:  transmission, qbittorrent, rtorrent
Electorrent
A remote control client for µTorrent, qBittorrent, rTorrent, Transmission, Synology & Deluge
Stars: ✭ 582 (+106.38%)
Mutual labels:  transmission, qbittorrent, rtorrent
Dockerfiles
lots of dockerfiles, based on alpine
Stars: ✭ 69 (-75.53%)
Mutual labels:  transmission, rtorrent
Monitorrent
Automatic torrents downloader
Stars: ✭ 383 (+35.82%)
Mutual labels:  transmission, qbittorrent
Atomic Toolkit
AtoMiC Toolkit simplifies HTPC / Home Server setup and management on Ubuntu and Debian variants including Raspbian. It currently supports: Couchpotato, Deluged, Emby, FFmpeg, Headphones, Htpcmanager, Jackett, Kodi, Lazylibrarian, Madsonic, Mono, Mylar, Nzbget, Nzbhydra, NzbToMedia, Ombi, Plex, Plexpy, Pyload, qBittorrent, Radarr, Sabnzbd+, Sickgear, Sickrage, Sonarr, Subsonic, Transmission, Unrar, Watcher, and Webmin.
Stars: ✭ 747 (+164.89%)
Mutual labels:  transmission, qbittorrent
Unpackerr
Extracts downloads for Radarr, Sonarr, Lidarr - Deletes extracted files after import
Stars: ✭ 122 (-56.74%)
Mutual labels:  transmission, qbittorrent
exatorrent
Easy to Use Torrent Client. Can be hosted in Cloud. Files can be streamed in Browser/Media Player.
Stars: ✭ 1,557 (+452.13%)
Mutual labels:  qbittorrent, transmission
tdpt
Torrent downloading progress on Telegram
Stars: ✭ 32 (-88.65%)
Mutual labels:  rtorrent, transmission
docker-qbittorrent
qBittorrent Docker image based on Alpine Linux
Stars: ✭ 42 (-85.11%)
Mutual labels:  qbittorrent
happa
Web user interface for Giant Swarm – Beyond managed Kubernetes
Stars: ✭ 17 (-93.97%)
Mutual labels:  webui
Sim800L-Arduino-Library-revised
HIGH SCHOOL PROJECT - The purpose of this Arduino library is to allow the use of the SIM800L module in a simple and transparent way.
Stars: ✭ 81 (-71.28%)
Mutual labels:  transmission
xeHentai-webui
The web interface for xeHentai https://github.com/fffonion/xeHentai
Stars: ✭ 25 (-91.13%)
Mutual labels:  webui
docker-qbittorrentvpn
Docker container which runs a qBittorent-nox client with an optional WireGuard or OpenVPN connection
Stars: ✭ 76 (-73.05%)
Mutual labels:  qbittorrent
transmission-cli
Transmission PHP client for detect profit torrents and automate weburg.net downloads
Stars: ✭ 17 (-93.97%)
Mutual labels:  transmission
PowNet
PowNet: Network-constrained Unit Commitment / Economic Dispatch model in Python with data for Cambodian power system
Stars: ✭ 40 (-85.82%)
Mutual labels:  transmission
aw-webui
Webapp for visualizing and browsing ActivityWatch data, built with Vue.js.
Stars: ✭ 68 (-75.89%)
Mutual labels:  webui
mirror-leech-telegram-bot
Aria/qBittorrent Telegram mirror/leech bot
Stars: ✭ 1,289 (+357.09%)
Mutual labels:  qbittorrent
Homebox
A set of ansible scripts to build a personal mail server / private cloud / etc.
Stars: ✭ 260 (-7.8%)
Mutual labels:  transmission

Flood

Flood logo

Github Actions build status badge Crowdin Discord server badge

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.

Supported Clients

Client Support
rTorrent ✅ (tested)
qBittorrent v4.1+ ✅ (tested)
Transmission ✅ (tested)

Feedback

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.

More Information

Check out the Wiki for more information.

Getting started

Pre-Requisites

Install Node.js runtime. Flood tracks Current and provides support to Active LTS as well.

  • Debian, Ubuntu (apt/.deb) and Enterprise Linux (yum/dnf/.rpm) -based distributions users can install nodejs from NodeSource software repository.
  • Windows users can use winget, Chocolatey or installer.
  • macOS users can use brew or installer.
  • Check Node.js website for more.

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.

Installation

(sudo) npm install --global flood or npx flood

Or use @jesec/flood for cutting-edge builds.

Or build from source.

Run

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.

Configuration

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

  1. 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.
  2. Check Wiki, especially Security sections.

Upgrade

Run the installation command again.

Troubleshooting

  • 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 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.
    • rTorrent needs to have read access to files of temporary directory of Flood (<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.
  • Ask for help in the Flood Discord server.

Docker

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.

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...

  1. Run npm install.
  2. Run npm run build.
  3. 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

  1. To update, run git pull in this repository's directory.
  2. Kill the currently running Flood server.
  3. Run npm install to update dependencies.
  4. Run npm run build to transpile and bundle static assets.
  5. Start the Flood server with npm start.

Local Development

  1. Run npm install.
  2. 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

  1. DEV_SERVER_PORT: webpackDevServer's port, used when developing Flood. Defaults to 4200.
  2. DEV_SERVER_HOST: webpackDevServer's host, used when developing Flood. Defaults to 0.0.0.0.
  3. DEV_SERVER_HTTPS: webpackDevServer's protocol, used when developing Flood. Defaults to http.

Building Docker

  1. docker build --pull --rm -f Dockerfile -t flood:latest .
  2. docker run -it flood --help
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].