Code Monkey home page Code Monkey logo

flood-ui / flood Goto Github PK

View Code? Open in Web Editor NEW
1.8K 66.0 173.0 30.27 MB

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.

Home Page: https://flood.js.org

License: GNU General Public License v3.0

JavaScript 85.88% HTML 0.06% Dockerfile 0.12% TypeScript 1.04% SCSS 12.89% Pug 0.02%
react nodejs rtorrent qbittorrent transmission webui

flood's Introduction

Flood ⚠️ DEPRECATED ⚠️ Go here

Development has ceased in this repository, visit https://github.com/jesec/flood instead

Flood logo

Travis CI build status badge Discord server badge

Flood is a monitoring service for rTorrent. It's a Node.js service that communicates with rTorrent instances and serves a decent web UI for administration. It's a work-in-progress.

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.

Getting started

Pre-Requisites

  1. rTorrent needs to be installed and running with XMLRPC configuration.
  2. Install NodeJS version 8 or higher (you might want to manage different Node versions with nodenv or nvm or n).
  3. Install node-gyp pre-requisites, see https://www.npmjs.com/package/node-gyp#installation, ex: python2, make, gcc.

Configuration

Copy config.template.js to config.js and review its comments. This is required.

When loading the web interface, you will be prompted to configure the connection to rtorrent. Other configuration options are handled config.js.

What to configure

  1. Be sure to create a long and unique secret (used to sign JWT auth tokens).
  2. If you are proxying requests to Flood from your own web server, configure Flood's path from the host at the 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 on the Wiki, this is a common pain-point for users.

Note: Some of these values are baked into the static assets (like baseURI), so changes to this file require recompling static assets.

Compiling assets and starting the server

From the root of the Flood directory...

  1. Run npm install if you haven't already or if you've pulled changes.
  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 in config.js.

Updating

I've been bad about cutting actual releases, so check this repo for recent commits.

  1. To update, run git pull in this repository's directory.
  2. Check config.template.js for configuration changes that you may wish to incoporate in your config.js.
  3. Kill the currently running Flood server.
  4. Run npm install to update dependencies.
  5. Run npm run build to transpile and bundle static assets.
  6. Start the Flood server with npm start.

Troubleshooting

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 nodemon to watch for changes to the server-side JavaScript.
    • npm run start:development:client watches for changes in the client-side source.
  3. Access the UI in your browser. Defaults to localhost:4200.

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.

Running with Docker

  1. docker build -t rtorrent-flood .
  2. docker run --name rtorrent-flood -e RTORRENT_SCGI_HOST=w.x.y.z -p 3000:3000 rtorrent-flood
  3. Other supported environment variables:
    • FLOOD_BASE_URI
    • FLOOD_SECRET
    • FLOOD_ENABLE_SSL

The docker container includes a volume at /data, which is where the database will be located. Additionally, you can place your SSL files there, /data/flood_ssl.key and /data/flood_ssl.cert. Set FLOOD_ENABLE_SSL to true to enable their use if present. Additionally, a local rtorrent socket file located at /data/rtorrent.sock can be used if RTORRENT_SOCK is set to true. The location of the socket file can be overrided by setting RTORRENT_SOCK_PATH to the path of the socket.

Check out the Wiki for more information.

flood's People

Contributors

0xcaff avatar avamander avatar bbashy avatar bengadbois avatar centzilius avatar d3x avatar damolp avatar dcousens avatar embraser01 avatar inve1 avatar jellyfrog avatar jfurrow avatar jmarinaro avatar joris33 avatar jwbuiter avatar limerainne avatar llllvvuu avatar mahoek avatar noraj avatar nvitius avatar samueltilly avatar sanguinaris avatar sanpilot avatar shawnhwei avatar slicepaperwords avatar stephdewit avatar tillkrischer avatar wopian avatar zawapete avatar zp 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  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

flood's Issues

i18n support

I thought it would be a nice feature for Flood to support i18n.

I've been frustrated by the old rutorrent interface since I began using it years ago. I've had the idea of creating something like u did here for a very long time. So when I found out about Flood last weekend I was really excited and quickly started testing it. It looks really nice.

I am just getting started with React and started playing around with Flood this weekend. I've looked at the code for hours and I am beginning to understand how it was build more and more. I've learned a lot this weekend. Thanks for that!

What I did is trying to get some kind of i18n working in Flood. You can see what I did here:

https://github.com/mahoek/flood/tree/feature/i18n

Surely I did not build it like you would build this, but at least I wanted to mention it here. I am going to work it out further just to learn. If you have any tips or suggestions then I'd really like to hear them.

It would be really cool if you'd (or someone else) make an IRC or Slack channel for Flood where we can talk about the future of Flood. What do you think?

Thanks and keep up the good work!

Errors 500 when I try to go to the interface

Hi,

Flood is running good until I try to go to http://myIP:3000
On the screen, I have this kind of errors :

GET /api/stats 500 25.839 ms - 59
Trace: { [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }
    at ClientRequest.onCompleteFn (/srv/seedbox/flood/server/util/ajaxUtil.js:7:17)
    at ClientRequest.handleError (/srv/seedbox/flood/server/models/ClientRequest.js:69:12)
    at _rejected (/srv/seedbox/flood/node_modules/q/q.js:844:24)
    at /srv/seedbox/flood/node_modules/q/q.js:870:30
    at Promise.when (/srv/seedbox/flood/node_modules/q/q.js:1122:31)
    at Promise.promise.promiseDispatch (/srv/seedbox/flood/node_modules/q/q.js:788:41)
    at /srv/seedbox/flood/node_modules/q/q.js:604:44
    at runSingle (/srv/seedbox/flood/node_modules/q/q.js:137:13)
    at flush (/srv/seedbox/flood/node_modules/q/q.js:125:13)
    at nextTickCallbackWith0Args (node.js:420:9)
GET /api/client/torrents 500 20.340 ms - 59
GET /api/history?snapshot=fiveMin 304 27.249 ms - -
Trace: { [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }
    at ClientRequest.onCompleteFn (/srv/seedbox/flood/server/util/ajaxUtil.js:7:17)
    at ClientRequest.handleError (/srv/seedbox/flood/server/models/ClientRequest.js:69:12)
    at _rejected (/srv/seedbox/flood/node_modules/q/q.js:844:24)
    at /srv/seedbox/flood/node_modules/q/q.js:870:30
    at Promise.when (/srv/seedbox/flood/node_modules/q/q.js:1122:31)
    at Promise.promise.promiseDispatch (/srv/seedbox/flood/node_modules/q/q.js:788:41)
    at /srv/seedbox/flood/node_modules/q/q.js:604:44
    at runSingle (/srv/seedbox/flood/node_modules/q/q.js:137:13)
    at flush (/srv/seedbox/flood/node_modules/q/q.js:125:13)
    at nextTickCallbackWith0Args (node.js:420:9)
GET /api/stats 500 26.362 ms - 59
Trace: { [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }
    at ClientRequest.onCompleteFn (/srv/seedbox/flood/server/util/ajaxUtil.js:7:17)
    at ClientRequest.handleError (/srv/seedbox/flood/server/models/ClientRequest.js:69:12)
    at _rejected (/srv/seedbox/flood/node_modules/q/q.js:844:24)
    at /srv/seedbox/flood/node_modules/q/q.js:870:30
    at Promise.when (/srv/seedbox/flood/node_modules/q/q.js:1122:31)
    at Promise.promise.promiseDispatch (/srv/seedbox/flood/node_modules/q/q.js:788:41)
    at /srv/seedbox/flood/node_modules/q/q.js:604:44
    at runSingle (/srv/seedbox/flood/node_modules/q/q.js:137:13)
    at flush (/srv/seedbox/flood/node_modules/q/q.js:125:13)
    at nextTickCallbackWith0Args (node.js:420:9)

What's going wrong ?

[FreeBSD] flood exits with Exit code 1

I'm kind of new to both node.js and flood, but on my test machine, it seems to not being able to run since it gives me this rather cryptic error message:

9 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_proce
ss.js:211:5)                                                                    
10 verbose pkgid [email protected]                                                    
11 verbose cwd /usr/home/nodejs/flood-master                                    
12 error FreeBSD 9.3-RELEASE-p31                                                
13 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"                
14 error node v4.4.1                                                            
15 error npm  v2.14.7                                                           
16 error code ELIFECYCLE                                                        
17 error [email protected] start: `npm prune && npm install && ./node_modules/.bin/gul
p dist && nodemon ./server/bin/www`                                             
17 error Exit status 1                                                          
18 error Failed at the [email protected] start script 'npm prune && npm install && ./n
ode_modules/.bin/gulp dist && nodemon ./server/bin/www'.                        
18 error This is most likely a problem with the flood package,                  
18 error not with npm itself.                                                   
18 error Tell the author that this fails on your system:                        
18 error     npm prune && npm install && ./node_modules/.bin/gulp dist && nodemo
n ./server/bin/www                                                              
18 error You can get their info via:                                            
18 error     npm owner ls flood                                                 
18 error There is likely additional logging output above.                       
19 verbose exit [ 1, true ]                                                     


Also when I did npm start > file I got this output from gmake:

` /usr/home/nodejs/flood-master/node_modules/gulp-sass/node_modules/node-sass/ve
ndor/freebsd-x64-47/binding.node ` exists.                                      
 testing binary.                                                                
Problem with the binary.                                                        
Manual build incoming.                                                          
Building: /usr/local/bin/node /usr/home/nodejs/flood-master/node_modules/gulp-sa
ss/node_modules/node-sass/node_modules/node-gyp/bin/node-gyp.js rebuild --verbos
e --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=        
gmake: Entering directory '/usr/home/nodejs/flood-master/node_modules/gulp-sass/
node_modules/node-sass/build'                                                   
  c++ '-DNODE_GYP_MODULE_NAME=libsass' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BIT
S=64' '-DLIBSASS_VERSION="3.3.2"' -I/root/.node-gyp/5.9.1/include/node -I/root/.
node-gyp/5.9.1/src -I/root/.node-gyp/5.9.1/deps/uv/include -I/root/.node-gyp/5.9
.1/deps/v8/include -I../src/libsass/include  -fPIC -pthread -Wall -Wextra -Wno-u
nused-parameter -m64 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-poi
nter -std=gnu++0x -std=c++0x -fexceptions -frtti -MMD -MF ./Release/.deps/Releas
e/obj.target/libsass/src/libsass/src/ast.o.d.raw   -c -o Release/obj.target/libs
ass/src/libsass/src/ast.o ../src/libsass/src/ast.cpp                            
src/libsass.target.mk:136: recipe for target 'Release/obj.target/libsass/src/lib
sass/src/ast.o' failed                                                          
gmake: Leaving directory '/usr/home/nodejs/flood-master/node_modules/gulp-sass/n
ode_modules/node-sass/build'                                                    

Update problem

When I do a git pull :

root@hydra /s/s/flood# git pull
Updating 40771c1..c943001
error: Your local changes to the following files would be overwritten by merge:
        .gitignore
        client/sass/components/_sidebar.scss
        client/sass/components/_tooltip.scss
        client/sass/style.scss
        client/scripts/actions/FloodActions.js
        client/scripts/components/General/CustomScrollbars.js
        client/scripts/components/Modals/TorrentDetailsModal/TorrentHeading.js
        client/scripts/components/Panels/Sidebar.js
        client/scripts/components/Sidebar/FeedsButton.js
        client/scripts/components/Sidebar/SettingsButton.js
        client/scripts/components/Sidebar/SpeedLimitDropdown.js
        client/scripts/components/Sidebar/StatusFilters.js
        client/scripts/components/Sidebar/TagFilters.js
        client/scripts/components/Sidebar/TrackerFilters.js
        client/scripts/constants/ActionTypes.js
        client/scripts/constants/EventTypes.js
        client/scripts/i18n/en.js
        client/scripts/util/filterTorrents.js
        client/scripts/util/torrentStatusClasses.js
        client/scripts/util/torrentStatusIcons.js
        server/app.js
        server/models/ClientRequest.js
        server/models/FeedCollection.js
        server/models/Torrent.js
        server/models/TorrentCollection.js
        server/models/client.js
        server/routes/api.js
        server/routes/client.js
        server/util/clientResponseUtil.js
        server/util/clientUtil.js
        shared/constants/propsMap.js
        shared/util/formatUtil.js
Please, commit your changes or stash them before you can merge.
Aborting
root@hydra /s/s/flood#

Is it okay ?

Add option to reset downloaded/uploaded data history

Hi,

Can you add new option to allow user to reset the history of downloaded and uploaded data in graphics ? Thank you !

PS : I created an fr.js file for french translation like nl.js. How can I submit my work ?

Favicon / Logo

To improve the overall UI and add a recognition sign for the users, it would be great if someone could do a simple logo, so we can have a favicon.

Clean Ubuntu 16 install fails.

npm ERR! Linux 4.4.0-24-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v4.2.6
npm ERR! npm  v3.5.2
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn

npm ERR! [email protected] install: `node scripts/install.js`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the [email protected] install script 'node scripts/install.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the node-sass package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node scripts/install.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-sass
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls node-sass
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/asdf/flood/npm-debug.log

npm ERR! Linux 4.4.0-24-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
npm ERR! node v4.2.6
npm ERR! npm  v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start: `npm prune && npm install && ./node_modules/.bin/gulp dist && nodemon ./server/bin/www`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] start script 'npm prune && npm install && ./node_modules/.bin/gulp dist && nodemon ./server/bin/www'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the flood package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm prune && npm install && ./node_modules/.bin/gulp dist && nodemon ./server/bin/www
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs flood
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls flood
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/asdf/flood/npm-debug.log

asdf@asdf:~/flood$ cat /home/asdf/flood/npm-debug.log
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/nodejs', '/usr/bin/npm', 'start' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle [email protected]~prestart: [email protected]
6 silly lifecycle [email protected]~prestart: no script for prestart, continuing
7 info lifecycle [email protected]~start: [email protected]
8 verbose lifecycle [email protected]~start: unsafe-perm in lifecycle true
9 verbose lifecycle [email protected]~start: PATH: /usr/share/npm/bin/node-gyp-bin:/home/asdf/flood/node_modules/.bin:/home/asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/sbin
10 verbose lifecycle [email protected]~start: CWD: /home/asdf/flood
11 silly lifecycle [email protected]~start: Args: [ '-c',
11 silly lifecycle   'npm prune && npm install && ./node_modules/.bin/gulp dist && nodemon ./server/bin/www' ]
12 silly lifecycle [email protected]~start: Returned: code: 1  signal: null
13 info lifecycle [email protected]~start: Failed to exec start script
14 verbose stack Error: [email protected] start: `npm prune && npm install && ./node_modules/.bin/gulp dist && nodemon ./server/bin/www`
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter.<anonymous> (/usr/share/npm/lib/utils/lifecycle.js:232:16)
14 verbose stack     at emitTwo (events.js:87:13)
14 verbose stack     at EventEmitter.emit (events.js:172:7)
14 verbose stack     at ChildProcess.<anonymous> (/usr/share/npm/lib/utils/spawn.js:24:14)
14 verbose stack     at emitTwo (events.js:87:13)
14 verbose stack     at ChildProcess.emit (events.js:172:7)
14 verbose stack     at maybeClose (internal/child_process.js:821:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
15 verbose pkgid [email protected]
16 verbose cwd /home/asdf/flood
17 error Linux 4.4.0-24-generic
18 error argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
19 error node v4.2.6
20 error npm  v3.5.2
21 error code ELIFECYCLE
22 error [email protected] start: `npm prune && npm install && ./node_modules/.bin/gulp dist && nodemon ./server/bin/www`
22 error Exit status 1
23 error Failed at the [email protected] start script 'npm prune && npm install && ./node_modules/.bin/gulp dist && nodemon ./server/bin/www'.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the flood package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error     npm prune && npm install && ./node_modules/.bin/gulp dist && nodemon ./server/bin/www
23 error You can get information on how to open an issue for this project with:
23 error     npm bugs flood
23 error Or if that isn't available, you can get their info via:
23 error     npm owner ls flood
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]

Unable to use flood

I followed the guide but there is a problem. As I see, it's because when we install, there isn't the folder 'server/assets' which is created by gulp.

Also we can't launch gulp because the 'browser-sync' package is missing (devDependencies) :

Error: Cannot find module 'browser-sync'
    at Function.Module._resolveFilename (module.js:440:15)
    at Function.Module._load (module.js:388:25)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/var/www/flood/gulpfile.js:4:19)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)

Also the gulp task need 'envify' which is also a devDependencies.

Version: webpack 1.13.2
Time: 3639ms
                      Asset     Size  Chunks             Chunk Names
    ./server/assets//app.js  1.74 kB       0  [emitted]  main
./server/assets//app.js.map  1.44 kB       0  [emitted]  main

ERROR in ./~/babel-polyfill/lib/index.js
Module build failed: Error: Cannot resolve module 'envify' in /var/www/flood/node_modules/babel-polyfill/lib

Doing a 'npm install envify browser-sync' then a 'npm run preinstall' fix the problem ;)

npm run start:production bug on Debian 8

npm install --production works fine

root@seedbox:/srv/flood# npm run start:production

> [email protected] start:production /srv/flood
> npm run prestart; node ./server/bin/www


> [email protected] prestart /srv/flood
> gulp dist

[09:11:40] Using gulpfile /srv/flood/gulpfile.js
[09:11:40] Starting 'webpack'...
[09:11:40] Starting 'sass'...
[09:11:40] Starting 'minify-js'...
[09:12:11] Finished 'sass' after 31 s
[09:12:11] Starting 'minify-css'...
[09:12:11] Finished 'minify-js' after 31 s
[09:12:13] Finished 'minify-css' after 2.57 s
[09:12:36] [webpack] Hash: 658b3b8671a6803a3f65
Version: webpack 1.13.2
Time: 56072ms
                      Asset     Size  Chunks             Chunk Names
    ./server/assets//app.js  3.81 MB       0  [emitted]  main
./server/assets//app.js.map  4.57 MB       0  [emitted]  main
[09:12:36] Finished 'webpack' after 56 s
[09:12:36] Starting 'default'...
[09:12:36] Finished 'default' after 17 μs
[09:12:36] Starting 'dist'...
[09:12:36] Finished 'dist' after 18 μs
Port 3000 is already in use

npm ERR! Linux 2.6.32-042stab116.2
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "start:production"
npm ERR! node v4.6.1
npm ERR! npm  v2.15.9
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start:production: `npm run prestart; node ./server/bin/www`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start:production script 'npm run prestart; node ./server/bin/www'.
npm ERR! This is most likely a problem with the flood package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm run prestart; node ./server/bin/www
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs flood
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR!     npm owner ls flood
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /srv/flood/npm-debug.log

Websockets

Any plans to add websockets support instead of polling?

Installation Fails on Raspberry Pi

Hey,

Starting flood seems to fail on the Pi with exit status 127. The program told me to notify you that: npm prune && npm install && ./node_modules/.bin/gulp dist && ./node_modules/.bin/nodemon ./server/bin/www

is failing. Ideas? I've tried to update most dependencies but still not sure.

More settings

Hi, thanks for this nice project! I was tired of all these ugly php WebUIs... I'm going to start some feature-request issues to give some ideas and provide feedback.

It would be nice if the settings popup contained all the rtorrent settings (peer count, dht, pex, directories, ports...).

Idea : Add the possibility to unselect a torrent

When you click on a torrent, it's highlighted in blue.

However it is not possible to unselect it. I would be great for an improved visibility. For now, you have to refresh the page to not have any torrent highlighted.

What do you think ?

Edit text in readme regarding config.secret (Bcrypt -> JWT)

Create a long, unique secret (used by bcrypt to hash passwords) in config.js.

As far as I can see this is not used for Bcrypt hashing (which is a good thing) - but for JWT token creation. It might seem trivial but I'd suggest changing the text. I almost skipped the repo because I'm scared of custom implementations of Bcrypt.

// flood/server/models/Users.js
    bcrypt.genSalt(10, (err, salt) => {
      if (err) {
        return callback(null, err);
      }

      let username = credentials.username;

      bcrypt.hash(credentials.password, salt, null, (err, hash) => {
        if (err) {
          return callback(null, err);
        }

        this.db.insert({username: username, password: hash}, (err, user) => { 
// flood/server/routes/auth.js
      let token = jwt.sign(credentials, config.secret, {
        expiresIn: expirationSeconds
      });

No extensive documentation?

It would be really nice if there was a "Get started contributing" where it showcase more of what each file/directory is for.

Ability to set file priority on folders and entire torrent

If you're downloading a torrent with a lot of files and/or directories, and you only want to download specific files, you currently have to set the priority for each individual file manually. (from what I can tell)

It would be nice to be able to mass set the file priorities for the entire torrent and/or the folders inside the torrent at once.

That way you can easily set all files in the torrent/folder to "don't download", then manually tick the files you want to enable, for example.

Add/Remove torrent - No Auto-Refresh WebUI

Hi,

When I add or remove torrents, the WebUI will not auto-refresh and the changes are not taken into account by the interface.
I don't know if the problem comes with my configure or not.

Thank you for your work, it's so beautiful. :)

Undefined directory when adding torrent by file

I have my rtorrent default base download path set to ~/downloads and whenever I add a torrent by file with flood, flood ignores it and instead creates/uses ~/undefined.

Adding the same torrent by URL/magnet causes it to correctly use the ~/downloads path.

Also, the Start Torrent tickbox seems to be ignored when adding torrents by file, doesn't get added in a paused/stopped state if the box isn't checked. (again, seems to work fine with urls)

edit: Running in an Alpine Linux 3.4 VM, nodejs 4.4.5, rtorrent 0.9.6, libtorrent 0.13.6 , flood master 5420932. Connecting to flood via Chrome on Win10.

Unable to add torrent files larger than 1.5 MB

Running Flood from commit 9461817

Whenever I attempt to add a large torrent file (1.5 MB or larger), the UI returns an error 500.

POST http://ip:port/api/client/add-files 500 (Internal Server Error)  xhr.js:161
    xhrAdapter @ xhr.js:161  (webpack:///./~/axios/lib/adapters/xhr.js)
    executor @ dispatchRequest.js:27  (webpack:///./~/axios/lib/core/dispatchRequest.js)
    dispatchRequest @ dispatchRequest.js:11  (webpack:///./~/axios/lib/core/dispatchRequest.js)

I'm able to add multiple < 1.5 MB torrent files at the same time (that go over 1.5 MB total size), so it seems like it's isolated to a single-file size limit instead of a total size limit, at least according to my brief testing.

Also seems to work fine when adding large torrent files from directly from a URL.

Torrents are download in "undefined" directory

Hello,

First, I would like to thank you for Flood. :)

I have an issue. When I add a torrent, it download it in ~/undefined/ directory. I can see the directory I configure in resources settings, it is the one I put in my .rtorrent.rc file.
I'm using Debian Jessie and rtorrent 0.9.2-1

How can I help or what informations do you need ?

Thanks.

Is there a docker image for flood?

Hello there !
I'm using docker on my VPS and I was wondering if you have planned to release an docker image or if it already exists.
By the way, I don't see on your readme if flood is multi-user or not. It's a lot better to store specific configuration files for each user by just using the authentification with nginx & htaccess - instead of creating 1 VM per user.

Init script for a service ?

Hello,

I see you are recommending to use screen to run flood. However, wouldn't it be more "clean" and practical to start/stop flood with a service ?

I tried to make one without success, and forever does not work either.

can't start flood on Windows

Hi, I'm complete noob with node.js. I ran npm install with no issues. However nmp run start:production returns error. Refer to the debug file below What's wrong here?

'0 info it worked if it ends with ok
1 verbose cli [ 'C:\Program Files\nodejs\node.exe',
1 verbose cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli 'run',
1 verbose cli 'start:production' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prestart:production',
4 verbose run-script 'start:production',
4 verbose run-script 'poststart:production' ]
5 info prestart:production [email protected]
6 info start:production [email protected]
7 verbose unsafe-perm in lifecycle true
8 info [email protected] Failed to exec start:production script
9 verbose stack Error: [email protected] start:production: npm run prestart; node ./server/bin/www
9 verbose stack Exit status 1
9 verbose stack at EventEmitter. (C:\Users\Andrey\AppData\Roaming\nvm\v4.6.2\node_modules\npm\lib\utils\lifecycle.js:217:16)
9 verbose stack at emitTwo (events.js:87:13)
9 verbose stack at EventEmitter.emit (events.js:172:7)
9 verbose stack at ChildProcess. (C:\Users\Andrey\AppData\Roaming\nvm\v4.6.2\node_modules\npm\lib\utils\spawn.js:24:14)
9 verbose stack at emitTwo (events.js:87:13)
9 verbose stack at ChildProcess.emit (events.js:172:7)
9 verbose stack at maybeClose (internal/child_process.js:854:16)
9 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:222:5)
10 verbose pkgid [email protected]
11 verbose cwd c:\flood-master
12 error Windows_NT 10.0.10240
13 error argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "run" "start:production"
14 error node v4.6.2
15 error npm v2.15.11
16 error code ELIFECYCLE
17 error [email protected] start:production: npm run prestart; node ./server/bin/www
17 error Exit status 1
18 error Failed at the [email protected] start:production script 'npm run prestart; node ./server/bin/www'.
18 error This is most likely a problem with the flood package,
18 error not with npm itself.
18 error Tell the author that this fails on your system:
18 error npm run prestart; node ./server/bin/www
18 error You can get information on how to open an issue for this project with:
18 error npm bugs flood
18 error Or if that isn't available, you can get their info via:
18 error
18 error npm owner ls flood
18 error There is likely additional logging output above.
19 verbose exit [ 1, true ]
`

Wrong download speed

Hello,

Flood tells it's downloading at a very low speed, however all my torrents are finished :
screenshot_24-10-2016_b 87hgkhz6

Why ? Is it related to the trackers ?

Notifications not initializing properly

I am having this issue where I get stuck during initialization due to notifications never initializing, even though they seem to be loaded properly:

image

The only way to get it to work is to delete notifications.db and restart flood.

[Windows] Torrents are not visible in the list

I've tried Flood on Windows and it works just fine until i add torrent. I get torrent running in rTorrent in background and it's downloading but Flood doesn't show anything, upon refreshing Flood i get stuck into infinite loading. After removal of torrent from rTorrent i get Flood showing it's initial screen again.
Error that i saw in console is this one. Hope it helps.

Trace: TypeError: Cannot read property 'length' of undefined
    at ClientRequest.request.postProcess [as postProcessFn] (E:\toolz\repository\flood\server\models\client.js:148:30)
    at ClientRequest.handleSuccess (E:\toolz\repository\flood\server\models\ClientRequest.js:79:23)
    at _fulfilled (E:\toolz\repository\flood\node_modules\q\q.js:834:54)
    at self.promiseDispatch.done (E:\toolz\repository\flood\node_modules\q\q.js:863:30)
    at Promise.promise.promiseDispatch (E:\toolz\repository\flood\node_modules\q\q.js:796:13)
    at E:\toolz\repository\flood\node_modules\q\q.js:604:44
    at runSingle (E:\toolz\repository\flood\node_modules\q\q.js:137:13)
    at flush (E:\toolz\repository\flood\node_modules\q\q.js:125:13)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
    at ClientRequest.onCompleteFn (E:\toolz\repository\flood\server\util\ajaxUtil.js:7:17)
    at ClientRequest.handleError (E:\toolz\repository\flood\server\models\ClientRequest.js:69:12)
    at _rejected (E:\toolz\repository\flood\node_modules\q\q.js:844:24)
    at E:\toolz\repository\flood\node_modules\q\q.js:870:30
    at Promise.when (E:\toolz\repository\flood\node_modules\q\q.js:1122:31)
    at Promise.promise.promiseDispatch (E:\toolz\repository\flood\node_modules\q\q.js:788:41)
    at E:\toolz\repository\flood\node_modules\q\q.js:604:44
    at runSingle (E:\toolz\repository\flood\node_modules\q\q.js:137:13)
    at flush (E:\toolz\repository\flood\node_modules\q\q.js:125:13)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

Torrent are not added

Sometimes, when adding torrent it just does not work :
screenshot_01-11-2016_b gy7z9qpo

If I add multiple torrents, I will stay on the "Add Torrents" window, but the other torrents will be added.

Here is what nodejs tells us :

Trace: { [Error: XML-RPC fault: Call XML not a proper XML-RPC call.  Call is not valid XML.  Invalid XML "content".  Problem with token at '<...': unclosed token]
  code: -503,
  faultCode: -503,
  faultString: 'Call XML not a proper XML-RPC call.  Call is not valid XML.  Invalid XML "content".  Problem with token at \'<...\': unclosed token' }
    at ClientRequest.onCompleteFn (/srv/seedbox/flood/server/util/ajaxUtil.js:7:17)
    at ClientRequest.handleError (/srv/seedbox/flood/server/models/ClientRequest.js:69:12)
    at _rejected (/srv/seedbox/flood/node_modules/q/q.js:844:24)
    at /srv/seedbox/flood/node_modules/q/q.js:870:30
    at Promise.when (/srv/seedbox/flood/node_modules/q/q.js:1122:31)
    at Promise.promise.promiseDispatch (/srv/seedbox/flood/node_modules/q/q.js:788:41)
    at /srv/seedbox/flood/node_modules/q/q.js:604:44
    at runSingle (/srv/seedbox/flood/node_modules/q/q.js:137:13)
    at flush (/srv/seedbox/flood/node_modules/q/q.js:125:13)
    at nextTickCallbackWith0Args (node.js:420:9)
POST /api/client/add-files 500 30.530 ms - 178

License

Have you considered adding a license to this product? I'm hesitant to attempt to contribute as I don't know what implications it will have.

Different rtorrent config for different users.

Hello. it would be nice to define different rtorrent config (host/port) associated to differents users.
We could use the same Flood server to connect differents instances of rtorrent.

Hash user passwords

It would be great if server/db/users.js would contain the hash of a user's password instead of the plaintext. Indeally, something that implements key stretching as well such as PBKDF2 or bcrypt.

Setting to change URL base

First of all great wrok, I like the app alot.

I would like to see a setting to change the url base.
for example to: /flood
similar too the way sonarr does it.

That way you can use a reverse proxy.

Firefox error

The stylesheet http://localhost:3000/style.css was not loaded because its MIME type, "text/html", is not "text/css".localhost:3000

SyntaxError: expected expression, got '<'

White page when viewing Flood on firefox.

Bower.json missing?

Hi,

I attempted to install your project, having never used bower before i gave it a go but it tells me that bower.json is missing and wont continue.
Will you add this at a later stage?

regards

TypeError if rtorrent has no torrent at all

GET /client/settings?property=sortTorrents 304 80.846 ms - -
TypeError: Cannot read property 'length' of undefined
    at Object.clientUtil.mapClientProps (/usr/home/tom/src/flood/server/util/clientUtil.js:227:16)
    at TorrentCollection.updateTorrents (/usr/home/tom/src/flood/server/models/TorrentCollection.js:75:34)
    at ClientRequest.request.postProcess [as postProcessFn] (/usr/home/tom/src/flood/server/models/client.js:95:26)
    at ClientRequest.handleSuccess (/usr/home/tom/src/flood/server/models/ClientRequest.js:78:23)
    at _fulfilled (/usr/home/tom/src/flood/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/usr/home/tom/src/flood/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/usr/home/tom/src/flood/node_modules/q/q.js:796:13)
    at /usr/home/tom/src/flood/node_modules/q/q.js:604:44
    at runSingle (/usr/home/tom/src/flood/node_modules/q/q.js:137:13)
    at flush (/usr/home/tom/src/flood/node_modules/q/q.js:125:13)

as soon as the amount of torrents is larger than zero it starts to load fine.

Uploads slots bug

Hello,

I set this in my conf :
screenshot_24-10-2016_b kcug-cri

But it's seeding to more than 20 peers per torrent :

screenshot_24-10-2016_b hzjntv6s

Do I do something wrong ? :/

BTW, what is "upload slot divider" ?

Improve torrent-detail/general tab

I was thinking about improving the torrent-detail/general tab.

General
Added:              July 10, 2016 11:07 AM
Location:           path/to/download
Scheduler:          Obeyed/ignored
Tags:               <tag1> <tag2> <tag3>

Transfer
Downloaded:         1% (630KB/63MB)
Peers:              0 of 2 connected
Seeds:              0 of 233 connected

Torrent
Size:               63MB
Hash:               883C6F02FC46188AC17EA49C13C3E9D97413A5A2
Creation date:      June 04, 2016 6:58 PM
Comment:            <torrent comment>
Type:               Public/private

Tracker
Tracker message:    <tracker message>

I think that free disk space should not be in the torrent detail modal. Maybe the sidebar is a better place?

And what about the tracker information? Should it be here or on the Tracker tabs?

Your thoughts and suggestions would be highly appreciated.

Why switch from Redux to Flux?

Hi. I'd actually bookmarked Flood several months back as an example of a "real" project that used Redux. However, I just came back across it, and I see that you switched from Redux to "vanilla" Flux. I'm curious - were there any particular reasons why you did that, especially given that you had what looked like existing code in place? I'd be interested in any thoughts or information you could offer on your experience with Redux and decisions.

[request] Please add a scheduler to Flood

So unless i'm missing something then it looks like Flood doesn't currently have any way of controlling UL/DL via a hourly schedule, so this is a feature request to have this added in.

This is something that people who are not on completely unlimited connections will find necessary to prevent high dl costs and/or blocking/choking of their connection. It is also handy to be able to restrict bandwidth at set times when you need to perform other bandwidth intensive tasks.

Just to be clear i know Flood is new code and so i completely understand that not everything is in place yet, but i would love to see this added in.

And lastly, thanks for creating Flood.

Connection using rpc socket

Hi, can you implement the ability to connect using a rpc socket rather than using SCGI ?
Nice project btw, thanks :)

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.