Giter Club home page Giter Club logo

flood's Introduction

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)
Deluge v2+ ⚗️ Experimental

Integrating with Flood

APIs are officially documented inline by the comments and types.

You can also check out:

Flood conforms to Semantic Versioning conventions.

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.

Alternatively, 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.
  • 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.

Alternatively, you can pass in environment variables instead (e.g. -e FLOOD_OPTION_port=3000).

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

flood's People

Contributors

bbashy avatar bengadbois avatar brezinajn avatar carryozor avatar chint95 avatar d3x avatar damolp avatar dcousens avatar dependabot[bot] avatar dopyconqueror avatar embraser01 avatar github-actions[bot] avatar hmerritt avatar jesec avatar jfurrow avatar m3r3nix avatar mahoek avatar noraj avatar nvitius avatar onedr0p avatar sabersalv avatar sanpilot avatar stephdewit avatar t-z3p avatar tillkrischer avatar trim21 avatar vain4us avatar vongola12324 avatar wopian avatar zawapete avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flood's Issues

Internal server error when adding torrents

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.

Your Environment

  • Version used: 4.3.1
  • Environment name and version: flood-linux pre packaged executable
  • Operating system and version: Ubuntu 20.04.1
  • Torrent client and version: qbittorrent-nox 4.3.1

Summary

When adding torrent (via magnet link) call to api/torrents/add-urls ends up with status code 500 and empty object body. Works fine in 4.3.0

Expected Behavior

Current Behavior

Possible Solution

Steps to Reproduce

See Summary

Context

flood-distroless can't spawn mediainfo

When access mediainfo for rtorrent, it can't spawn mediainfo and show error like this:

image

In flood:latest everything works fine. Today I tried distroless for lightweight version and find this happen. I setup distroless the same way with flood latest on docker.

Allow setting TZ environment variable in docker container

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used:
    • Version (stable release) git --no-pager tag
    • Commit ID (development release) git --no-pager log -1
  • Environment name and version:
    • Node.js version node --version
    • npm version npm --version
    • Web browser name and version
  • Operating System and version:

Summary

Expected Behavior

Current Behavior

Possible Solution

Steps to Reproduce

Context

remove old flood version for clean install

Type: Question

Question

How would I completely remove a manual install of flood, made from the jfurrow git to do a clean install from here?

EDIT: I assume the only thing I need to do is delete the flood directory, but I don't like to assume.

no db Folder

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.

Your Environment

  • Version used:
  • Environment name and version:
    • Node.js version 15.5.1
    • npm version 7.3.0
  • Operating system and version: Arch Linux

Summary

Cant reset password as states in FAQ cause i dont have db folder under server.
Also deleting whole flood folder and do new git clone does not revert it. still asking for password.

Expected Behavior

  1. option to disable auth
  2. PAM logins
  3. user mangement in webinterface
  4. up to date faq

Current Behavior

outdated faq
no sign of my user entry (grep -r username returns nothing)
and yeah shit

Possible Solution

one of (better all)

  1. option to disable auth
  2. PAM logins
  3. user mangement in webinterface
  4. up to date faq

Steps to Reproduce

use chrome password suggestion on http :-) (it does not save its suggestion)

Disk usage broken in docker?

I'm using the latest docker image jesec/flood:master, but can't seem to get the disk usage to work.
Is there some setup required for docker users?
image

It works with the jfurrow build, just not this one.

Not all files being deleted

Your Environment

  • Version used: b310ae
  • Environment name and version:
    • Node.js version v14.9.0
    • npm version 6.14.8

Given a torrent with a file structure as so:

Big Buck Bunny
               ├─Big Buck Bunny.en.srt
               ├─Big Buck Bunny.mp4
               └─poster.jpg

The files get downloaded successfully, yet when I delete the torrent and select Delete Data, everything is deleted except for the folder. (which is included in the torrent

Steps to Reproduce

Torrent file: https://files.catbox.moe/onw3g1.torrent

  1. Add the torrent
  2. Wait for torrent to download
  3. Delete with delete data checked
  4. Observe every file gets deleted except for the folder included in the torrent (Big Buck Bunny)

Please add examples for the CLI tool

Type: Documentation Issue

Summary

It would be nice to see what the CLI tool can offer without having to install flood first. I'm wondering whether to migrate to this fork but I'd like to automate user creation and password changing through scripts for example, so this would be nice to see.

Can not connect to Transmission RPC

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used:
    • Version (stable release) 4.0.2
    • Commit ID (development release) 20172fe2a407240d0d0c122544673152e18cbede
  • Environment name and version:
    • Node.js version: v12.19.0
    • npm version: 6.14.8
    • Web browser: Brave version 1.16.76 (Chromium: 86.0.4240.198)
  • Operating System and version: Debian 10
  • Transmission version: Transmission 2.94 (d8e60ee44f)

Summary

I have installed transmission instead of rtorrent as the backend to download torrent.
But I found that I can not connect to the transmission RPC backend. (
I have checked the setting of transmission, and I can connect to the web UI provided by transmission-daemon package.
When I look at the list of requests in Transmission's Web UI, I see that the first RPC request for Transmission will be 409 Conflict because the request does not have an X-Transmission-Session-Id header. The second RPC request will automatically send the X-Transmission-Session-Id header from the previous response, and we can get the response from RPC correctly.
2020-11-22 00 46 08
2020-11-22 00 47 06

Expected Behavior

It should not display any error.

Current Behavior

We will get an error in browser console:
2020-11-22 00 33 56

Also the dev console will show an error like this:

Trace: Error:
    at /home/rtorrent/flood/server/services/Transmission/clientRequestManager.ts:107:17
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at /home/rtorrent/flood/server/util/ajaxUtil.ts:7:17
    at /home/rtorrent/flood/server/routes/api/client.ts:47:19
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
GET /api/client/settings 500 3.422 ms - 2

Possible Solution

In Transmission/clientRequestManager.ts#L106, it seems that flood is trying to get session data, but fails because it encounters the 409 error mentioned above.
According to the request list of Transmission Web UI, the first RPC request may fail because of no X-Transmission-Session-Id header in request, and it will resend the request with the X-Transmission-Session-Id header received from previous response.
First RPC request:
2020-11-22 00 53 43
Second RPC request:
2020-11-22 00 54 16

Perhaps we should check if the response is 409 Conflict, and if so, take the X-Transmission-Session-Id header from the response, attach it to the header and resend the request again.

Steps to Reproduce

As mentioned above, there are no additional setup steps (either for Flood or Transmission).

Context

N/A

Unable to connect to qBittorrent using Kubernetes service name

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used: v4.1.1
  • Operating System and version: Docker image

Summary

Hi, I am unable to connect flood to qBittorrent using Kubernetes service names. I've tried to connect to these URLs in flood via the following URLs however it won't connect. These domains are internally route-able in my Kubernetes cluster and I can ping / curl the endpoint from other docker containers.

FLOOD_OPTION_QBURL: "http://qbittorrent:8080/api/v2"

or

FLOOD_OPTION_QBURL: "http://qbittorrent.media.svc.cluster.local:8080/api/v2"

This likely affects other clients as well.

Expected Behavior

Flood should be able to connect to qbittorrent via a kubernetes service names.

Current Behavior

Flood is unable to connect to qbittorrent using kubernetes service names.

Possible Solution

Tracing this issue upstream to the zod library.
https://github.com/colinhacks/zod/blob/master/src/types/string.ts#L64
https://github.com/colinhacks/zod/blob/master/src/__tests__/string.test.ts#L38

https://developer.mozilla.org/en-US/docs/Web/API/URL/URL

Any string should be considered a valid url if it similar to /[A-Za-z0-9-.]+/

Steps to Reproduce

  1. Deploy qbittorrent and flood in containers in a kubernetes cluster
  2. Try to use kubernetes service name to connect flood to qbittorrent
  3. ??
  4. Fail

Logs

GET /static/media/Roboto-italic.766b7c5c.woff2 304 0.586 ms - -
GET /static/media/Roboto-500.c7e17507.woff2 304 0.412 ms - -
GET /static/media/Roboto-700.2b8c7cb1.woff2 304 0.401 ms - -
GET /favicon.ico 200 7.981 ms - -
GET /overview 200 3.400 ms - 604
GET /api/activity-stream?historySnapshot=FIVE_MINUTE 200 2.129 ms - -
GET /static/css/main.2fbe858695bd101d3959.css 304 1.988 ms - -
GET /static/js/main.fbad339e.js 304 0.859 ms - -
GET /static/css/802.508b6bc040707a7791ff.css 304 2.530 ms - -
GET /api/auth/verify?1605846483093 200 1.016 ms - 105
GET /static/js/802.bc733132.chunk.js 304 3.292 ms - -
GET /static/js/93.0d577883.chunk.js 304 2.844 ms - -
GET /api/client/settings 500 0.911 ms - 40
GET /api/settings 200 1.308 ms - 2
GET /static/js/842.0d6478a7.chunk.js 304 5.730 ms - -
GET /static/js/786.2a373c1f.chunk.js 304 4.868 ms - -
GET /static/js/flag2.0b49da8f.chunk.js 304 4.557 ms - -
undefined

Debugging from another container

✖ kubectl exec -it pod/jackett-test-747484c4bd-htkvv -n media -- bash
kah@jackett-test-747484c4bd-htkvv:/app$ curl qbittorrent:8080
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <title>qBittorrent Web UI</title>

Thanks for providing this app, it looks like a great UI for a bunch of torrent clients.

qBittorrent - how to setup?

This seems like a silly question, but I can't get it to work.

I've just setup qbittorrent via docker linuxserver/qbittorrent, and I can login to the WEB UI fine though the offical one, but when I put in the same user/pass and WEB UI url, I keep getting "Connection could not be verified."

How is it doing it's checking?
Maybe I can do a seperate test via curl or something to check qbittorrent is working correctly.
I assume there are no settings that need to be changed in qbittorent (I've had a look around and don't see any).

I've tested the url http://qbittorrent:8080/ on another container in the same network and it loads, so I don't think it's a network issue.

Versions:
qBittorrent v4.3.0.1 Web UI (64-bit)
Flood is on the latest build (docker jesec/flood:master)

Any ideas?

image

Also, maybe unrelated, but I also get these 500 errors, which is strange because if i load http://serverip:3000/api/client/connection-test in the browser I get {"isConnected":false}
Screen Shot 2020-11-03 at 8 26 24 PM

SyntaxError: Unexpected token '.'

Hi, I'm having a new error when launching Flood in a docker container. I tried the latest commit: bdb8144f4b1d4921d9d60f28424aab5c31f455f6. Here is the error:

SyntaxError: Unexpected token '.'
    at Module._compile (internal/modules/cjs/loader.js:891:18)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at internal/main/run_main_module.js:17:11
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `node --use_strict dist/index.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Here is my Dockerfile:

FROM alpine:3.11

ARG RTORRENT_VER=0.9.8
ARG LIBTORRENT_VER=0.13.8
ARG MEDIAINFO_VER=19.09
ARG BUILD_CORES

ENV UID=1024 GID=100 \
    FLOOD_SECRET=supersecret \
    WEBROOT=/ \
    RTORRENT_SCGI=0 \
    PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

RUN NB_CORES=${BUILD_CORES-`getconf _NPROCESSORS_CONF`} \
 && apk -U upgrade \
 && apk add -t build-dependencies \
    build-base \
    git \
    libtool \
    automake \
    autoconf \
    wget \
    tar \
    xz \
    zlib-dev \
    cppunit-dev \
    openssl-dev \
    ncurses-dev \
    curl-dev \
    binutils \
    linux-headers \
 && apk add \
    ca-certificates \
    curl \
    ncurses \
    openssl \
    gzip \
    zip \
    zlib \
    s6 \
    su-exec \
    python \
    nodejs \
    nodejs-npm \
    unrar \
    findutils \
 && cd /tmp && mkdir libtorrent rtorrent \
 && cd libtorrent && wget -qO- https://github.com/rakshasa/libtorrent/archive/v${LIBTORRENT_VER}.tar.gz | tar xz --strip 1 \
 && cd ../rtorrent && wget -qO- https://github.com/rakshasa/rtorrent/releases/download/v${RTORRENT_VER}/rtorrent-${RTORRENT_VER}.tar.gz | tar xz --strip 1 \
 && cd /tmp \
 && git clone https://github.com/mirror/xmlrpc-c.git \
 && cd /tmp/xmlrpc-c/advanced && ./configure && make -j ${NB_CORES} && make install \
 && cd /tmp/libtorrent && ./autogen.sh && ./configure && make -j ${NB_CORES} && make install \
 && cd /tmp/rtorrent && ./autogen.sh && ./configure --with-xmlrpc-c && make -j ${NB_CORES} && make install \
 && cd /tmp \
 && wget -q http://mediaarea.net/download/binary/mediainfo/${MEDIAINFO_VER}/MediaInfo_CLI_${MEDIAINFO_VER}_GNU_FromSource.tar.gz \
 && wget -q http://mediaarea.net/download/binary/libmediainfo0/${MEDIAINFO_VER}/MediaInfo_DLL_${MEDIAINFO_VER}_GNU_FromSource.tar.gz \
 && tar xzf MediaInfo_DLL_${MEDIAINFO_VER}_GNU_FromSource.tar.gz \
 && tar xzf MediaInfo_CLI_${MEDIAINFO_VER}_GNU_FromSource.tar.gz \
 && cd /tmp/MediaInfo_DLL_GNU_FromSource && ./SO_Compile.sh \
 && cd /tmp/MediaInfo_DLL_GNU_FromSource/ZenLib/Project/GNU/Library && make install \
 && cd /tmp/MediaInfo_DLL_GNU_FromSource/MediaInfoLib/Project/GNU/Library && make install \
 && cd /tmp/MediaInfo_CLI_GNU_FromSource && ./CLI_Compile.sh \
 && cd /tmp/MediaInfo_CLI_GNU_FromSource/MediaInfo/Project/GNU/CLI && make install \
 && strip -s /usr/local/bin/rtorrent \
 && strip -s /usr/local/bin/mediainfo \
 && ln -sf /usr/local/bin/mediainfo /usr/bin/mediainfo \

 && cd /usr  \
 && git clone https://github.com/jesec/flood  \
 && cd /usr/flood  \
 && npm install && npm cache clean --force \
 && apk del build-dependencies \
 && rm -rf /var/cache/apk/* /tmp/*

COPY rootfs /

RUN chmod +x /usr/local/bin/* /etc/s6.d/*/* /etc/s6.d/.s6-svscan/* \
 && cd /usr/flood/ && npm run build

VOLUME /data /flood-db

EXPOSE 3000 49184 49184/udp

LABEL description="BitTorrent client with WebUI front-end" \
      rtorrent="rTorrent BiTorrent client v$RTORRENT_VER" \
      libtorrent="libtorrent v$LIBTORRENT_VER" \
      maintainer="flosoft <[email protected]>"

CMD ["run.sh"]

Any help?

"WebAssembly is not supported in this environment!"

I am getting this error when trying to start Flood by executing flood, installed from the NPM package registry.

Trace: Error: WebAssembly is not supported in this environment!
    at /Users/marwan/.config/yarn/global/node_modules/flood/dist/index.js:2:1261543
    at new Promise (native)
    at Object.d (/Users/marwan/.config/yarn/global/node_modules/flood/dist/index.js:2:1261411)
    at Object.84752 (/Users/marwan/.config/yarn/global/node_modules/flood/dist/index.js:2:1263440)
    at __webpack_require__ (/Users/marwan/.config/yarn/global/node_modules/flood/dist/index.js:2:1869905)
    at /Users/marwan/.config/yarn/global/node_modules/flood/dist/index.js:2:1870806
    at Object.<anonymous> (/Users/marwan/.config/yarn/global/node_modules/flood/dist/index.js:2:16)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
    at Object.<anonymous> (internal/modules/cjs/loader.js:1158:10)
    at Module.load (internal/modules/cjs/loader.js:986:32)
    at /Users/marwan/.config/yarn/global/node_modules/flood/dist/index.js:2:1263585

Delete torrent won't delete the folder/content

I'm using latest commit 1f6197c80d62adc75b5ce696e32190114448ec74 compiled to run in a dockercontainer. All is running fine except that after adding a torrent file and trying to delete it (including checking the box to delete data), nothing happen and my downloaded folder/content are still on my disk.

The torrent file is removed from the flood list with success. The only log I can see is:

POST /api/client/torrents/delete 200 12.400 ms - -
PATCH /api/settings 200 3.062 ms - 3 
GET /api/activity-stream?historySnapshot=fiveMin 200 2.492 ms - -

Maybe something related to: Flood-UI/flood#871 where I posted a workaround, but doesn't seems to be the same as in my case even Files aren't deleted.

Flood inaccessible on kiwi browser with Uncaught SyntaxError: Unexpected token ?

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.

Your Environment

  • Version used:
    • Version (stable release) : 4.3.1
  • Environment name and version:
    • Node.js version node --version 15.3.0
    • npm version npm --version 7.0.14
    • Web browser name and version Kiwi Browser
  • Operating system and version: this runs in docker jesec/rtorrernt so I guess it's alpine
  • Torrent client and version: rtorrent 0.9.8

Summary

I was testing several browsers I use on android after I migrated my old flood install and found this fork (awesome one by the way, migration was flawless !) and found one instance where the UI cant be access because of this js error: Uncaught SyntaxError: Unexpected token ?

it dosent happen on other browsers like Brave, Chrome but Kiwi being a fork of chromium as well I figured I'd report it.

The console dev tools shows where the js error is, see screen below

Current Behavior

this error:

20210110_0835_1920x1080_1610264112

Possible Solution

Steps to Reproduce

Context

Colour ratio

Loving flood so far, one of the things that could make it better is having your ratio being coloured, depending on values you set. For example:
0 - 1 , color is dark red
1 - 1.5, color is green
etc

The ruTorrent ratiocolor plugin uses a small script that uses colour fading for the ratio colouring: https://github.com/Gyran/rutorrent-ratiocolor

Would be a cool feature!

Error while adding one specific torrent

Your Environment

  • Version used: f731469
  • Environment name and version:
    • Node.js version v14.9.0
    • npm version 6.14.8

Adding a specific torrent file (which I cannot reproduce, but it is a valid file that has worked with rtorrent (rutorrent as ui) in the past.) causes a failure. This only happens with this specific file, adding different torrents with Flood works fine.

Steps to Reproduce

  1. Add the torrent
  2. Observe this error in API response:
{"errno":-104,"code":"ECONNRESET","syscall":"write"}

Adding the torrent manually (in rTorrent) works fine.

Cannot build using docker

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used:
    • Version (stable release) git --no-pager tag
    • Commit ID (development release) git --no-pager log -1
  • Environment name and version:
    • Node.js version node --version
    • npm version npm --version
    • Web browser name and version
  • Operating System and version:

Summary

When doing docker build I get following error. Not sure how to proceed with it, doesn't seem to respect docker build args

Step 13/21 : RUN npm run build &&     npm prune --production
 ---> Running in 63b34291b8ef

> [email protected] build /usr/src/app
> node client/scripts/build.js

/usr/src/app/config.js:10
  secret: process.env.FLOOD_SECRET || CHANGE_ME,
                                      ^

ReferenceError: CHANGE_ME is not defined
    at Object.<anonymous> (/usr/src/app/config.js:10:39)
    at Module._compile (internal/modules/cjs/loader.js:759:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
    at Module.load (internal/modules/cjs/loader.js:628:32)
    at Function.Module._load (internal/modules/cjs/loader.js:555:12)
    at Module.require (internal/modules/cjs/loader.js:666:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (/usr/src/app/client/config/env.js:3:20)
    at Module._compile (internal/modules/cjs/loader.js:759:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)

Expected Behavior

Respect build-args or skip requirement to set flood_secret during docker build ( only need to set it when running built docker )

Current Behavior

Possible Solution

Steps to Reproduce

Context

Peers list columns display issue with IPv6 and excessively precise progress %

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used: 4.2.0
  • Environment name and version:
    • Node.js version: 14.15.1
    • npm version 6.14.8
    • Web browser Chrome 87.0.4280.67 on macOS
  • Operating System and version: Debian 10 (server)

Issue

The peers list look great when there are only IPv4:

screenshot_2020-11-28_01-15-56@2x

But not with IPv6 and a progress percentage that is a bit too precise I think 🙂

screenshot_2020-11-28_01-14-31@2x

Not working in read_only docker container

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

Summary

Container not starting with read_only: true with error Failed to access runtime directory (debug log is here)
I'm using NODE_DEBUG=timer,http,net,fs,cluster,tls,stream,child_process,module to get this log.

Expected Behavior

To work fine with or without read_only: true.
Without this, it's okay (debug log is here)

Possible Solution

Not a single clue, but it was working with read_only with forked version from Flood-UI/flood

Steps to Reproduce

  1. use docker
  2. use docker-compose (see here)
  3. failing to start with read_only: true

Context

Thank you, any help would be greatly appriciated.

Invalid peer client name and/or version

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.

Your Environment

  • Version used: 23b689b
  • Environment name and version:
    • Node.js version v14.15.4
    • npm version 6.14.10
    • Web browser Chrome 87
  • Operating system and version: macOS 11.1
  • Torrent client and version: rtorrent 0.9.8

Summary

Some peers' torrent clients are marked as unknown

Expected Behavior

  • Should show the client name, like rutorrent (here, Flud)
  • Show valid version (here, 2.94)

screenshot_2021-01-23_11-13-31

Current Behavior

screenshot_2021-01-23_11-13-40

Flood fails to start after todays rebuild

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used:
    • Version (stable release) git --no-pager tag v3.1.0
    • Commit ID (development release) git --no-pager log -1 commit f1f0b3c (HEAD -> master, origin/master, origin/HEAD)
  • Environment name and version:
    • Node.js version node --version v14.14.0
    • npm version npm --version 6.14.8
    • Web browser name and version Chromium Version 86.0.4240.111 (Official Build) Arch Linux (64-bit)
  • Operating System and version: Debian Buster x64

Summary

After last time i rebuild flood it failed to start. Error messages can be seen below:

flood_start.txt
2020-10-21T16_39_22_182Z-debug.log

Expected Behavior

Flood should start normally.

Current Behavior

Flood fails to start.

Possible Solution

None.

Steps to Reproduce

  1. git checkout .
  2. git pull
  3. npm install
  4. npm run build
  5. npm prune --production
  6. npm start
  7. ...

Context

None.

radarr path

hello, with sonarr flood qbit is working fine. On the other hand with radarr it does not go in the "radarr" folder it stays in / data. Why ?

Add docker runtime configuration for flood process UID and GID

Type: Feature Request

Summary

Flood heavily rely on filesystem permissions for accessing files which are shared between other processes (e.g. rtorrent). Currently flood process UID and GID are assigned during image building and are 1001. So in order to allow flood to access files we need to change permissions to less secure model (add access for all users) which is not perfect.

Idea of implementation

Allow to set UID and GID at container runtime via e.g. environment variables.

RSS issues

Type: Question

Hi,
First of all - many thanks for picking up this project and continuous hard work on its support!
I've noticed that RSS feeds stop being downloaded / parsed randomly - they're just fine for few minutes right after adding but then produce following:

TypeError: l.default.addUrls is not a function
    at /usr/local/lib/node_modules/flood/dist/index.js:2:1262405
    at Array.forEach (<anonymous>)
    at /usr/local/lib/node_modules/flood/dist/index.js:2:1262379

Wondering if it's just me :)

Flood versions - few latest masters

The added date is mm/dd/yyyy, should be localised and/or configurable


name: '🐛 Bug Report'
about: 'Report a general bug'

Type: Bug Report

  • [ ✅ ] Try to follow the update procedure described in the README and try again before opening this issue.
  • Also checked Config.ts in case there was some hidden setting I was missing (though localisation should be per user).

Your Environment

  • Version used:
    • Version (stable release)
      4.3.1
    • Commit ID (development release) git --no-pager log -1
  • Environment name and version:
    • Node.js version node --version
      v12.19.0
    • npm version npm --version
      7.1.0
    • Web browser name and version
      Firefox version 83.0
  • Operating system and version:
    Windows 10 v20H2
  • Torrent client and version:

Summary: dates are wrong

For me mm/dd/yyyy is specifically wrong, confusing, & neigh unreadable. yyyy-mm-dd would be my preference (and an international standard, readable by everyone 😊) but even dd/mm/yyyy would be better.

Edit: I'm updating this to a bug report, because frankly the date format is completely incorrect if being tied to the language English. The date format used is American.

Expected Behavior: being able to read the date.

Current Behavior: date format unreadable.

Possible Solution

My solution would be a place for a setting in settings > user interface, directly under the language setting.
Could be a drop down menu with predetermined formats, a field for entering a custom format - or both, with custom being an option in the drop down menu.

Steps to Reproduce N/A

Context

Make context menus work on iOS devices

Type: Feature Request

Summary

Context menus don't work on iOS devices. Long click is no-op.

Idea of implementation

Use APIs available in iOS/Safari to trigger context menus on long press.

Move torrent function broken in master

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used:
    • Commit ID (development release) ab42dae2786c6c40835cf95cb64dbec7176a4dc8
  • Environment name and version:
    • Node.js version v14.12.0
    • npm version 6.14.8
    • Web browser Chrome 84
  • Operating System and version: ubuntu 18.04
  • rTorrent version: rTorrent-PS-CH 1.8.3 0.9.8/0.13.8

Summary

Set Torrent Location dialog moves torrents to an unexpected dir

Expected Behavior

Torrents should be moved to the dir specified in the dialog

Current Behavior

When moving torrents using the Set Torrent Location dialog, torrents were moved to ~/flood/undefined/ where ~/flood is the src install dir

Possible Solution

Steps to Reproduce

  1. Install flood from src to ~/flood, connect to existing rtorrent
  2. Right click context menu > Set Torrent Location
  3. Change path from /foo/download to /foo/download2, tick Move Data, click Set Location
  4. Files being moved to ~/flood/undefined instead of /foo/download2

Context

Flood adds / at the beginning of the destination path without showing it in the destination path

Type: Bug Report

Your Environment

  • Version used:
    • Version (stable release) : 4.4.1 (with NPM)
    • Commit ID (development release) git --no-pager log -1 :
  • Environment name and version:
    • Node.js version `node --version : v15.8.0
    • npm version `npm --version : v7.5.3
    • Operating system and version: Fedora 33 (Server Edition) Kernel 5.10.13-200.fc33.x86_64
  • Torrent client and version: qBittorrent v4.3.3
    • Operating system and version: Windows 10 Version 20H2 Build 19042.804
  • Web browser `name and version : Microsoft Edge Version 88.0.705.63

Possible Solution

Remove the path correction code, Improve the path correction to recognize a windows path "A:/", Make path correction code Toggleable by the user.

Steps to Reproduce

  1. Install flood on Linux
  2. Install Torrent Client on Windows
  3. qBittorrent Errors out due to the path looking like /A:/Torrent/Downloads/ when it expects A:/Torrent/Downloads/

Events tooltip not showing

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used:
    • Version (stable release) git --no-pager tag v3.1.0
    • Commit ID (development release) git --no-pager log -1 commit ca32dcb (HEAD -> master, origin/master, origin/HEAD)
  • Environment name and version:
    • Node.js version node --version v14.15.0
    • npm version npm --version 6.14.8
    • Web browser name and version Chromium Version 86.0.4240.111 (Official Build) Arch Linux (64-bit)
  • Operating System and version: Debian GNU/Linux 10 (buster) x64

Summary

Currently the events tooltip somehow gets hidden behind other elements of the flood interface.

image

Other tooltips show fine:

image

Expected Behavior

Events tooltip should show as other tooltips.

Current Behavior

Events tooltip is broken.

Possible Solution

Steps to Reproduce

  1. Start to hover at all elements of flood.
  2. Hover the "bell" button with mouse.
  3. The tooltip hides behind the other elements of the page.

Context

npm registry not found

Type: Bug Report

Your Environment

  • Version used: latest
  • Environment name and version:
    npm: 6.13.4
  • Operating System and version:
    Ubuntu 20.04

Summary

npx @jesec/flood --help ends with

npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@jesec%2fflood - Not found
npm ERR! 404  '@jesec/flood@latest' is not in the npm registry.

Create a torrent in flood using mktorrent

Type: Feature Request

Summary

Flood currently lacks a way to create a torrent. I think it was requested before but it was never implemented.

Idea of implementation

Torrent can be created relatively easy using the console utility mktorrent. If flood implements the frontend and then call mktorrent to do the actual work it can happen. After that the resulting torrent needs to be handled to rtorrent for the initial seeding.

Example of creating a torrent with mktorrent can be seen below:

mktorrent -a http://nyaa.tracker.wf:7777/announce -a udp://open.stealth.si:80/announce -a udp://tracker.opentrackr.org:1337/announce -a udp://tracker.coppersurfer.tk:6969/announce -a udp://exodus.desync.com:6969/announce -l 22 -o Sora_yori_mo_Tooi_Basho.torrent -n Sora\ yori\ mo\ Tooi\ Basho /media/lv2/download/rtorrent/Sora\ yori\ mo\ Tooi\ Basho/ -s https://horriblesubs.info

The only thing that is little trickly is the piece size - torrent should have between 1500 and 2500 pieces.

2^18 = 262 144 = 256 KiB for filesizes between 256 MB - 512 MB
2^19 = 524 288 = 512 KiB for filesizes between 512 MB - 1 GB
2^20 = 1 048 576 = 1024 KiB for filesizes between 1 GB - 2 GB
2^21 = 2 097 152 = 2048 KiB for filesizes between 2 GB - 4 GB
2^22 = 4 194 304 = 4096 KiB for filesizes between 4 GB - 8 GB
2^23 = 8 388 608 = 8192 KiB for filesizes between 8 GB - 16 GB
2^24 = 16 777 216 = 16384 KiB for filesizes between 16 GB - 512 GB

If there is an algoritm to automatically calculate the best piece size it will be great.

No units displayed when the interface is in French

Your Environment

  • Ubuntu 20.10
  • rTorrent 0.9.8
  • Flood 4.4.1

Summary

Flood's interface doesn't show any units for upload and download speeds when I switch the interface to French. For example, it displays "55,5/s", the "kB" is missing. It seems to affect only upload and download speeds. I don't have the issue when I change the language to English or German.

Expected Behavior

Upload and download speeds unit are diplayed : 55,5 kB/s

Current Behavior

Upload and download speeds unit are not diplayed : 55,5 /s

Screenshots

2021-02-13_18h01_45
2021-02-13_18h02_06

Torrent added by file is disappearing from the list couple minutes after downloaded

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used:
    • Version from docker (stable release) v4.1.2
  • Environment name and version:
    • Web browser chrome 87.0.4280.67

Summary

Torrent added by file is disappearing from the list couple minutes after downloaded. The same torrent downloaded by URL (magnet link) works fine, stays on the list.

Expected Behavior

Torrent added by file is present on the list until manually deleted.

Steps to Reproduce

  1. Add torrent by file
  2. Wait for torrent downloaded
  3. After couple of minutes torrent disappears from the list

I'm not sure how to debug it better so I could provide better information. In flood logs there is nothing except:

GET /api/activity-stream?historySnapshot=FIVE_MINUTE 200 2.760 ms - -

Empty folder left after removing torrent (delete data)

Type: Bug Report

Your Environment

  • Version used:
    • Commit ID (development release) ee0257a557a7bedf4110dcbb50bda2207494b81d

Summary

When removing (and deleting data) a torrent that has 1+ file(s) inside a folder, the folder is left empty. It should be deleted.

Possible Solution

When deleting data, Flood should check if the torrent contains files inside a folder, and if so, check if that folder is empty, after deleting all files, and if so, it should deleted the folder too.

Steps to Reproduce

  1. Download a torrent that includes 1+ files inside a folder
  2. Remove that torrent
  3. Check the checkbox to Delete data
  4. Check that the file(s) were deleted, but an empty folder is left

Wrong mediainfo properties for a brand-new, stopped torrent

Type: Bug Report

  • [✅] Try to follow the update procedure described in the README and try again before opening this issue.

Your Environment

  • Version used:

    • Version (stable release) 4.3.1 (running in a docker container, image was pulled with docker pull jesec/flood)
    • Commit ID (development release) not applicable
  • Environment name and version:

    • Node.js version 15.3.0
    • npm version 7.0.14
    • Web browser Firefox 84.0
  • Operating system and version: Windows 10 2004

  • Torrent client and version: rTorrent 0.9.6

  • Docker run command: docker run -d --name flood -p 127.0.0.1:31000:3000 -v /home/download/rtorrent:/home/download/rtorrent -v /home/download/.local/share/flood:/home/download/.local/share/flood jesec/flood --allowedpath /home/download/rtorrent

Summary

Accessing the "Mediainfo" tab on the "Torrent Details" page/modal for a brand-new, stopped torrent with a destination path equal to the default download directory results in an unexpected listing of mediainfo-gathered properties for all completed files in the default destination directory and below. To be honest, I reckon this is probably not that big of a deal as people are not really expected to access the "Mediainfo" tab for a stopped torrent they've just added. Nevertheless, I'm raising this issue because I like Flood and wish to make it just a little bit better 🙏

Expected Behavior

The "Mediainfo Output" should be empty for a torrent that has just been added and is in the stopped state.

Current Behavior

You get a listing of properties for all completed files residing in the default download directory and below, as per this screenshot:
flood-mediainfo
NOTE: I used Firefox's Web Developer tools to resize the modal so that you can see all the information.

Possible Solution

I think it has to do with how the following gets evaluated:

const contentPath = fs.existsSync(path.join(directory, name)) ? path.join(directory, name) : directory;

If I'm reading this right, a new torrent that has not yet started will result in contentPath being equal to the base directory of the torrent. Which, for torrents saved in the default download directory, will result in the unexpected behaviour outlined above. AFAICT this happens because the mediainfo command will recursively try to gather info for all files under the directory passed as an argument.

Steps to Reproduce

  1. (pre-requisite) Ensure that you have at least one completed torrent in the default download directory
  2. Add a new torrent: "Destination" must be equal to Flood's Default Download Directory and "Start Torrent" must be unchecked
  3. Double-click on the torrent to bring up the torrent details modal (or right-click ➡️ "Torrent Details")
  4. Click on the Mediainfo tab on the left hand side
  5. Observe that the "Mediainfo Output" section on the right displays information for all completed files residing in the default download directory and below

Context

I was viewing the "Torrent Details" page for a torrent I've just added (and had not yet started), and was curious to see what would get reported under the "Mediainfo" tab.

Hover on icons doesn't work sometimes

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used: c23fa71
  • Environment name and version:
    • Node.js version: 14
    • npm version: 6.14.7
    • Web browser: Edge/Chromium 84.0.522.59
  • Operating System and version: Client: Windows 10 19041.450, Server: Ubuntu 20.04

Summary

Hover on icons doesn't work sometimes.

Uncaught TypeError: Cannot read property 'getBoundingClientRect' of undefined

in console.

Users might not be able to dismiss notifications if hover doesn't work.

Expected behavior

It should display texts like "Speed Limits" and "Notifications".

Possible Solution

Refresh the page and the issue is gone.

Steps to Reproduce

  1. Open Flood
  2. Move mouse to the icons on the top left.

Add "Seeding" in Status Filter

Type: Feature Request

Summary

Flood can now filter the torrent which is still downloading, active, or inactive.
Can we add a "Seeding" status in the status filter?
This might be helpful for those people who want to know the torrent has been downloaded but is still seeding (or uploading).

Idea of implementation

It seems we have "seeding" class in client/src/javascript/util/torrentStatusClasses.js.
Does that mean we can know the torrent has downloaded but still seeding?
If that is the case, maybe we can add "Seeding" into the status filter in the sidebar.

Add torrent not working with no errors

Type: Bug Report

Your Environment

  • Version used:
    • Version (stable release) 4.3.1 (with NPM & Build)
    • Commit ID (development release) git --no-pager log -1: 57ded20
  • Environment name and version:
    • Node.js version node --version : 14.15.4
    • npm version npm --version : 6.14.11
    • Web browser name and version Google Chrome Version 88.0.4324.96 (Official Build) (x86_64)
  • Operating system and version: Mac OS Big Sur
  • Torrent client and version: Rtorrent 0.9.7

Hi, I've installed latest version of flood and, I can't add torrents.
I've no error, /api/client/add-files return HTTP code 200 but and I've success tooltip in bottom right with message "x torrent added" and I don't understand why my torrent not start

Can u help me please ?

Thanks

flood on qbittorrent can't change location when adding new torrent

  • Version used:
    • Version (stable release): v4.4.0
  • Environment name and version:
    • Node.js version node --version: 15.7.0
    • npm version npm --version: 7.4.3
    • Web browser name and version: Chrome stable
  • Operating system and version: Synology DSM 6.2.3 - run flood in docker
  • Torrent client and version: qbittorrent 4.3.3

Summary

I read in the change log of flood 4.4.0 is that it support isCompleted (skip_checking) so I tried to add a torrent that is already has its data downloaded. But when I change the location to something else, it would fall back to the default locattion.

Actually, I've never used add new torrent from flood, because I have qbittorrent watch a folder to download to correct location already. But since I love to use flood so I check this features cause of skip_checking. And this bug happen even adding new torrent, it all falls back to default location.

Expected Behavior

I download a torrent and want to save to /downloads/software rather then its default location.

Current Behavior

It downloads that torrent and save to /download/movies which is the default location.

Steps to Reproduce

  1. Add new torrent by file
  2. Change default save location
  3. Add Torrent

API is not functionnal with auth=none

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

(The issue template still links to Flood-UI's wiki -- you probably want to change that)

Your Environment

  • Version used: 4.1.2

Summary

I disabled auth, but can't use the API. I expected the API to by accessible just like the rest.

Possible Solution

Skip passport binding for /api if auth=none: server/routes/api/index.ts

Steps to Reproduce

$ # Launch flood somehow
$ flood --auth=none &

$ # Try to access the API
$ curl localhost:3000/api/torrents
Unauthorized

Remove Torrents -> Delete data: torrent directory not removed

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used:
    • Version from docker (stable release) v4.1.2
  • Environment name and version:
    • Web browser chrome 87.0.4280.67

Summary

Using Remove Torrents function with Delete data option marked deletes only torrent directory content, not directory itself.

Expected Behavior

Using Remove Torrents function with Delete data option marked deletes torrent directory with its content.

Steps to Reproduce

  1. Add torrent Fedora-Workstation-Live-x86_64-33
# tree Fedora-Workstation-Live-x86_64-33/
Fedora-Workstation-Live-x86_64-33/
├── Fedora-Workstation-33-1.2-x86_64-CHECKSUM
└── Fedora-Workstation-Live-x86_64-33-1.2.iso
# ls -lan Fedora-Workstation-Live-x86_64-33/
total 2001484
drwxrws---+  2 3000 3000       4096 Nov 22 11:29 .
drwxrws---+ 86 3000 3000      12288 Nov 22 11:29 ..
-rw-rw----+  1 3000 3000       1062 Nov 22 11:30 Fedora-Workstation-33-1.2-x86_64-CHECKSUM
-rw-rw----+  1 3000 3000 2049490944 Nov 22 11:32 Fedora-Workstation-Live-x86_64-33-1.2.iso
  1. Remove Torrents -> Delete data
# tree Fedora-Workstation-Live-x86_64-33/
Fedora-Workstation-Live-x86_64-33/
# ls -lan Fedora-Workstation-Live-x86_64-33/
total 20
drwxrws---+  2 3000 3000  4096 Nov 22 13:14 .
drwxrws---+ 86 3000 3000 12288 Nov 22 13:14 ..

Note: torrent directory content is removed while directory remains present

floood logs:

POST /api/torrents/delete 200 374.208 ms - -
PATCH /api/settings 200 3.538 ms - 26

Parent directory permissions allows flood to r/w access (flood is running with UID/GID 3000):

# ls -land downloads/
drwxrws---+ 86 3000 3000 12288 Nov 22 13:14 downloads/

Error in events.js?

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.
  • Please check the F.A.Q..
  • Please check the Troubleshooting wiki section.

Your Environment

  • Version used:
    • Version (stable release) v4.1.2
    • Commit ID (development release) 9cb821bb3072f7cda48f8d3910c4344b1aee8469
  • Environment name and version:
    • Node.js version v12.19.1
    • npm version 6.14.8
    • Web browser Firefox 83.0 (not related as it happened in the background)
  • Operating System and version: macOS Big Sur (not related as it happened in the background)

Summary

Over night it crashed (second time).

Nov 23 21:10:58 Host npm[27783]: POST /api/torrents/delete 200 79.444 ms - -
Nov 23 21:10:59 Host npm[27783]: PATCH /api/settings 200 1.700 ms - 26
Nov 23 21:12:45 Host npm[27783]: GET /api/activity-stream?historySnapshot=FIVE_MINUTE 200 1.024 ms - -
Nov 24 02:47:58 Host npm[27783]: events.js:291
Nov 24 02:47:58 Host npm[27783]:       throw er; // Unhandled 'error' event
Nov 24 02:47:58 Host npm[27783]:       ^
Nov 24 02:47:58 Host npm[27783]: Error: unexpected end of file
Nov 24 02:47:58 Host npm[27783]:     at Zlib.zlibOnError [as onerror] (zlib.js:180:17)
Nov 24 02:47:58 Host npm[27783]: Emitted 'error' event on Gunzip instance at:
Nov 24 02:47:58 Host npm[27783]:     at errorOrDestroy (internal/streams/destroy.js:108:12)
Nov 24 02:47:58 Host npm[27783]:     at Gunzip.onerror (_stream_readable.js:755:7)
Nov 24 02:47:58 Host npm[27783]:     at Gunzip.emit (events.js:314:20)
Nov 24 02:47:58 Host npm[27783]:     at Zlib.zlibOnError [as onerror] (zlib.js:183:8) {
Nov 24 02:47:58 Host npm[27783]:   errno: -5,
Nov 24 02:47:58 Host npm[27783]:   code: 'Z_BUF_ERROR'
Nov 24 02:47:58 Host npm[27783]: }
Nov 24 02:47:58 Host npm[27783]: npm ERR! code ELIFECYCLE
Nov 24 02:47:58 Host npm[27783]: npm ERR! errno 1
Nov 24 02:47:58 Host npm[27783]: npm ERR! [email protected] start: `node --use_strict dist/index.js "--port" "3005"`
Nov 24 02:47:58 Host npm[27783]: npm ERR! Exit status 1
Nov 24 02:47:58 Host npm[27783]: npm ERR!
Nov 24 02:47:58 Host npm[27783]: npm ERR! Failed at the [email protected] start script.
Nov 24 02:47:58 Host npm[27783]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Nov 24 02:47:58 Host npm[27783]: npm ERR! A complete log of this run can be found in:
Nov 24 02:47:58 Host npm[27783]: npm ERR!     /home/user/.npm/_logs/2020-11-24T02_47_58_770Z-debug.log

Steps to Reproduce

Not sure how to reproduce, looks just like a code bug instead of something that can happen by doing something.

Add hover hint to menu button

Type: Feature Request

Summary

All other buttons as "add torrent", "stop torrent" and so on have description/hint when you go over them with mouse. The menu button can have short description like "Collapse menu" or something like that.

Idea of implementation

None.

Feature Request: qBittorrent categories support?

Type: Feature Request

Summary

You've done amazing work on this since forking it (Thank you!!), so hate to ask for anything, but any plans on adding the categories for qBittorrent?

Idea of implementation

Not sure why qbt even has both tags and cats, I'd be happy with just an option to link cats to tags in flood, and ignore tags from qbt, but that's kinda a hack way about it.
I only ask about cats support because sonarr/radarr etc uses cats, and sometimes I manually add torrents and need to assign the sonarr category.

Not sure how easy it is to add a new filtering option.

Flood container crashes after 5 seconds

Type: Bug Report

  • Try to follow the update procedure described in the README and try again before opening this issue.

Your Environment

  • Version used: jesec/flood
  • Environment name and version:
    • Docker version 19.03.13-ce, build 4484c46d9d
    • docker-compose version 1.27.4, build unknown
    • Firefox 84.0.2 (64b)
    • Chromium 87.0.4280.141
  • Operating system and version:
    • Archlinux, current
  • Torrent client and version: jesec/rtorrent

I run flood and rtorrent via this docker-compose file:

version: '3'

services:
  rtorrent-flood:
    image: jesec/flood
    restart: unless-stopped
    depends_on:
      - rtorrent-XXXX
    volumes:
      - "./data/flood:/home/download/.local/share/flood"
      - "./data/rtorrent/XXXX/home/download:/home/download/XXXX:ro"
      - "./data/rtorrent/XXXX/home/rtorrent.sock:/tmp/socket-XXXX.sock"
    networks:
      - proxy-tier
    environment:
      VIRTUAL_HOST: "YYYYYYYYYY"
      VIRTUAL_PORT: "3000"
      LETSENCRYPT_HOST: "YYYYYYYYYY"

  rtorrent-XXXX:
    image: jesec/rtorrent
    restart: unless-stopped
    tty: true
    volumes:
      - "./data/rtorrent/XXXX/home:/home/download/.local/share/rtorrent:rw"
      - "./data/rtorrent/XXXX/rtorrent.rc:/etc/rtorrent/rtorrent.rc:ro"

networks:
  proxy-tier:
    external:
      name: proxy_proxy-tier

which runs behind a proxy (jwilder/nginx-proxy:alpine and jrcs/letsencrypt-nginx-proxy-companion)

Slightly modified rtorrent.rc https://pastebin.com/Z2TQCPqp

Summary

When I load the page on firefox, I get this in the console about 5 seconds in:

firefox-flood-error

On chromium I get:

chromium-console-flood-error

My proxy then notifies me that the flood container dies, which it does, while logging this absolute unit of a string:

https://pastebin.com/2AaLZejC

Expected Behavior

Flood container not dying

Current Behavior

Flood container dies

Possible Solution

I have little clue as to what to do next since I do not see an appropriate error message. I would guess that flood crashes when the URL https://YYYY/api/activity-stream?historySnapshot=FIVE_MINUTE is accessed ?

Steps to Reproduce

  1. docker-compose up -d
  2. Log in
  3. Wait 5 seconds
  4. Profit

Context

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.