Beta Testing: WebGUI for rclone

Stuff like the Alt-key to copy is very useful to know about - but the documentation here on rclone.org org for the webGUI is very sparse.

Is there some other source for feature-documentation right now, or do we just stay tuned here until there is time to do a writeup for it?

I am guessing the reason as follows.

In https://github.com/rclone/rclone/blob/159f2e29a89e36942e7946333e9ffa066376aa7b/fs/rc/rcserver/rcserver.go#L71, it is setting the served file folder to web-gui, which could be not existing if it is not downloaded before. The download happens when you run rclone rcd --rc-web-gui for the first time.

To fix this, we might move the checkRelease process to rcserver instead of rcd command.

Seems like a reasonable suggestion.
It would certainly be preferable if it worked the same with both commands if possible.

So are you suggesting that the crashes I noted earlier might have gone away after running the rcd command? I will test and see if anything changed. I did not notice until much later that webGUI files had been saved to my cache folder.

I guess it should be. Can you try a few things?

  1. Point cache-dir to a new empty folder, and try to rclone mount with the rc-web-gui;
  2. If the previous step goes wrong, still pointing cache-dir to the same folder, now try rclone rcd;
  3. If Step 2 is going well, try Step 1 again.

The expected result should be, if I am right, Step 1 raises an exception and Step 2 as well as 3 go well.

You seem to be absolutely correct!

1 - Using my normal mount script but added "2" to the end of the name ==> CRASH

2 - rclone rcd --rc-web-gui --cache-dir "E:---RCLONE_VFSCACHE2" ==> WORKS

3 - Repeating step 1 again ==> WORKS

Very nice catch :smiley:

(the forum format is removing the backslash behind E: in (2) for some reason)

Before we implement the JWT change, it might be worth thinking if it works.

There are a few problems to settle if we are going to change the implementation.

First, static files:

That's because when rclone opens the login URL, it will include the basic auth only if BasicUser is set, which is not the case if htpasswd file is used. That's the reason why users are required to login twice - first to acquire static file, second to save the password in local storage.

To solve this, one solution might be not requiring authentication to static files. Here static files means web-gui components (the downloaded zip) or anything that is fixed and not from the rclone itself.


Second, the opened URL is not working and raising an exception saying history something, a temporaty fix has be PRed https://github.com/rclone/rclone-webui-react/pull/33.


I would like to discuss something related to security. The current implementation is only serializing the username and password as a Base64 token. No encryption, no hash, only encoding. This might be a great security fault if the web-gui is hosted in a remote server with HTTP only. But it still makes no sense if the JWT token is generated in browser - the second part of the token is just the password.

So if we want to increase the security level, the following might be done:

  • Implement a login endpoint in rclone backend. This accepts a pair of username and password, and returns a token. The token should only include the username, and signed by a secret that only the server knows.
  • Stop requiring authentication to local static files. This may take some time since it may need to know what path it is requesting and whether it is a static file.

Because the backslash means escape in many cases :slight_smile: And it often causes errors on Windows since the path separator in Windows is also backslash....

2 - rclone rcd --rc-web-gui --cache-dir "E:\RCLONE_VFSCACHE2" ==> WORKS

I knew there was a way to do that, I just couldn't remember it! Can we do a bit of context sensitive help while dragging or something like that to tell the user about it?

Fantastic work guys, loving where the project is currently at. I'm currently using RClone browser, but I can see this replacing that soon :smiley:

I was wondering if the ability to cancel transfers and a way to check the size of files/directories is on the road map?

We have the API to support that now: https://rclone.org/rc/#job/stop to it is possible to cancel transfers.

As for directory size - how do you mean - like the output of rclone size?

Great so some kind of button to stop transfers shouldn't be a major issue.

Regarding directory size, yes that's the kind of thing. RClone browser has it set as a handy button which I often use to compare and check large transfers have successfully completed. I presume much like the ability to stop transfers this shouldn't be a huge ask to implement this?

My final question (and maybe this is something that can be done at command line level) is can the WebGUI be activated without actually launching a browser window? I have it set to run at Windows start up, but I only want to launch it form a browser shortcut.

Do you want to make issues about the stopping transfers and total size at https://github.com/rclone/rclone-webui-react

I guess you are asking for rclone not to open the browser window but start quietly? I guess we could have a flag for that.

Thanks Nick, I've added them as issues on Github

1 Like

Is there a concept of queue? Right now every download starts right away, so one can end up with 100+ concurrent downloads, which results in really low download speed for each. Would be nice to be able to set a limit to the number of downloads, so the rest would wait in queue.

I tried providing transfers option directly (rclone rcd --rc-web-gui --transfers 1), but apparently it was a silly idea, as it didn't work. Perhaps, it should be provided via options/set?

Hey @negative0 great for this rclone browser.

I am unable to keep it alive, I am using ubuntu18 headless server. It works well from terminal (ssh) when I point it out to my vps address and port but as soon as I closed my terminal (ssh) it no longer works. I have set up vps to drive mount and I need browser to just login and transfer data when I want. I don't want any automate script to upload contents to my drive. I will be doing everything manually.

So I need two things. I need to keep my rclone browser alive forever so I can drop credentials and use when and where required. And also I dont find any file upload option from rclone browser. Though there are lot of options at backend I did not change any. Can you guide me,this is my first visit rclone browser

For the first question, you can use screen or tmux to make it running under their control, or you may write a systemd (or any other init you are using) service to run in the background. If you are only running it once, try nohup .

The second one, it seems to be still a feature request here https://github.com/rclone/rclone-webui-react/issues/32.

Very thankful to your reply. I don't want to be burden on you. But I am literally new to this linux world. I am using ubuntu18 under USER I have installed rclone. How am I suppose to prepare script which will run under systemd? Is it easy to write a script? What do I put commands in it?

Well that is an off-topic question...

I would suggest you to learn something about Linux first before any action. Then, search online for systemd service to get some idea. https://medium.com/@benmorel/creating-a-linux-service-with-systemd-611b5c8b91d6 it looks like a good tutorial.

1 Like

Yes thanks again, I was doing same in mean time. Thanks for your help. I will try on my own with your said article.