/rclone-webui-react

A full fledged UI for the rclone cloud sync tool

Primary LanguageJavaScriptMIT LicenseMIT

Rclone Web UI Google Summer of Code 19 CCExtractor RClone

Latest hosted release: https://rclone.github.io/rclone-webui-react

Build Status

Node CI Code scanning Coverage Status

About

This project under development as a part of Google Summer of Code 2019 and 2020 under ccextractor.org and rclone.org by negative0.

This is a reactJS based web UI for the rclone cli project @ Rclone Website

Work Products (GSoC 2019):

Intro

This project is being actively developed. Feel free to create any issues, feature requests or enhancements as you encounter them.

Getting Started

The project currently requires you to install and configure react and npm to run correctly.

Running the project through rclone:

If you have rclone installed, you can easily run this UI through rclone without any additional configuration.

Note: The instructions for installing rclone can be found here.

To run the web-gui, simply run the following command:

rclone rcd --rc-web-gui --rc-user=<user> --rc-pass=<pass> 

The web-gui should now be available at the url http://localhost:5572

You may have to clear the browser local storage if needed, after switching to the older version.

Alternatively, you can use the hosted version:

With every release, we publish it to github-pages. You can directly use it without installing rclone locally.

Head over to https://rclone.github.io/rclone-webui-react/. To login, enter the IP address, username and password of rclone rc server.

While running the rclone rc server, use the following command,

rclone rcd --rc-user=abc --rc-pass=abcd --rc-allow-origin="https://rclone.github.io" 

replace the username and password with your liking. If you are not comfortable with specifying it here, use the .htpasswd option.

rclone rcd --rc-allow-origin="https://rclone.github.io" --rc-htpasswd /path/to/.htpasswd

Parameters:

--rc-web-gui - run the web-gui

--rc-user - username to be used for login (Optional) default is gui.

--rc-pass - password to be used for login (Optional) if not provided, rclone will generate one for you.

--rc-addr - useful if you are running rclone on a headless machine, specify the private/public IP of your VM for rclone to bind to. (Optional)

--rc-web-gui-update - Force update web-gui to the latest version.

Screenshots

Dashboard

Dashboard

Login

Login

Remote Explorer

Explorer

Creating config

New Config

Mounts

Mounts

Get the automated script and get running

Bash users:

Download the sh file given here: webui.sh

Copy the file to root folder of rclone.

cp webui.sh <root-of-rclone>/

First of all open the webui.sh

You need to edit this code to the username and password you would like to use.

username='<your-username>'
password='<your-password>'

Save this file.

Now you can run the following commands:

  • Download the project:
./webui.sh get
  • Build the webui app:
./webui.sh build
  • Run the app with rclone backend:
./webui.sh run
  • At any point, you can update the webui with new changes from the repo (optional):
./webui.sh update

Get the Project

    git clone https://github.com/rclone/rclone-webui-react

OR download a zip from the option above.

Install dependencies

If you are using NPM:

Make sure that you are using the latest LTS version of NPM

    cd <cloned directory>
    npm install 

Using yarn:

    cd <cloned directory>
    yarn install

Run the project

    npm start

OR

    npm run start

Run tests

npm testOR yarn test if you want to run all jest tests. Test specific environment can be set using setupTests.js

With Coverage: npm run test:cov

Run Rclone

You have to run rclone with the following flags:

    rclone rcd --rc-user=<username> --rc-pass=<password> --rc-serve

Replace username and password with your custom username password. This will be required to login to rclone. rc-no-auth is not available due to security concerns.

--rc-serve: It serves the remote objects at localhost:5572/[remoteName:remotePath]/path/to/file. It enables us to download files via the RemoteExplorer through the browser.

Progress

For the progress and future implementation details please refer Progress.md