GithubHelp home page GithubHelp logo

openube / flood Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flood-ui/flood

0.0 2.0 0.0 14.25 MB

A modern web UI for rTorrent with a Node.js backend and React frontend.

License: GNU General Public License v3.0

CSS 15.67% JavaScript 84.29% HTML 0.04%

flood's Introduction

Flood

Talk about Flood on Slack

Flood is another web interface for rtorrent. It implements a Node.js server for communicating with the rTorrent API, storing historical data, and serving the web UI.

It's a work-in-progress, and it might not have all of the features you want (yet). However, new features are added frequently. Feel free to file an issue and I'll try to prioritize your feature requests.

Feedback

If you have a specific issue or bug, please file a Github issue. If you want to participate in discussions about Flood's future, please join the Flood Slack team (get an instant invite first).

Usage

Pre-Requisites

  1. rTorrent needs to be installed with XMLRPC configuration. If you are currently using a web UI for rTorrent, you've already done this.
  1. Install NodeJS version 4.x:
  • I recommend managing different Node versions with nvm or n.

Configuring

  1. Copy config.template.js to config.js. This is required.
  2. Set your rTorrent SCGI hostname and port in config.js. Defaults are localhost and 5000.
  • If you want to use a socket, change socket to true and set socketPath to the absolute file path of your rTorrent socket. Make sure Flood has read/write access. Specify the socket path in .rtorrent.rc. Example: scgi_local = /Users/flood/rtorrent.sock
  • If you wish to access an rTorrent instance running on a separate host from Flood (or in a Docker container), allow for incoming connections from external IPs by setting the host in scgi_port to 0.0.0.0 in .rtorrent.rc. Example: scgi_port = 0.0.0.0:5000
  1. Create a long, unique secret (used to sign JWT auth tokens) in config.js.

Starting the Server

  1. Run npm install --production.
  2. Run npm run start:production.
  3. Access the UI in your browser. Defaults to localhost:3000.
  • You may change the default port in config.js.
  1. Upon loading the UI the first time, you will be prompted to create a user account.

Updating

  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 running Node server.
  4. Run npm install --production to update dependencies.
  5. Restart it with npm run start:production.
  • Static client-side assets are transpiled and compressed before starting the server.

Tips

  • I run the web server with screen to keep the web server running independently of the terminal session.
  • Ubuntu users will need to install nodejs-legacy (sudo apt-get install nodejs-legacy) for dependencies to install successfully. You can read more on this Stack Overflow post.

Local Development

  1. Run npm install.
  2. Run npm start and npm run start:watch in separate terminal instances.
  • npm start uses nodemon to watch for changes to the server-side JavaScript.
  • npm run start:watch watches for changes in the client-side source.
  1. Access the UI through the browser-sync proxy at localhost:4200.

Screenshots

flood's People

Contributors

jfurrow avatar stephdewit avatar mahoek avatar embraser01 avatar zp avatar joris33 avatar

Watchers

elseane avatar James Cloos avatar

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.