All Projects → kapitainsky → RcloneBrowser

kapitainsky / RcloneBrowser

Licence: MIT license
Simple cross platform GUI for rclone. Supports macOS, GNU/Linux, BSD family and Windows.

Programming Languages

C++
36643 projects - #6 most used programming language
shell
77523 projects
CMake
9771 projects
Batchfile
5799 projects
Inno Setup
370 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to RcloneBrowser

borg-rclone-autobackup
Easily automate backups using Borg + RClone
Stars: ✭ 25 (-98.1%)
Mutual labels:  rclone
ob bulkstash
Bulk Stash is a docker rclone service to sync, or copy, files between different storage services. For example, you can copy files either to or from a remote storage services like Amazon S3 to Google Cloud Storage, or locally from your laptop to a remote storage.
Stars: ✭ 113 (-91.4%)
Mutual labels:  rclone
ccViewer
CryptCloudViewer source codes
Stars: ✭ 66 (-94.98%)
Mutual labels:  rclone
Rclonewrapper
Simple wrapper to use rclone in your PHP projects.
Stars: ✭ 17 (-98.71%)
Mutual labels:  rclone
docker-volume-rclone
Use Rclone as a backend for docker volume (also as a plugin). This permit to easely mount a lot of cloud provider (https://rclone.org/overview).
Stars: ✭ 97 (-92.62%)
Mutual labels:  rclone
MiXLab
MiXLab is a mix of multiple amazing Colab Notebooks found on the internet such as rcloneLab, RLabClone, Torrent to Google Drive Downloader and some more.
Stars: ✭ 143 (-89.12%)
Mutual labels:  rclone
Gooby
Gooby: The ultimate infinite Plex media server using a VPS and Cloud service
Stars: ✭ 230 (-82.5%)
Mutual labels:  rclone
minio-rclone-webdav-server
A @rclone served WebDAV server with @minio as the s3 storage backend docker example
Stars: ✭ 17 (-98.71%)
Mutual labels:  rclone
saisoku
Saisoku is a Python module that helps you build complex pipelines of batch file/directory transfer/sync jobs.
Stars: ✭ 40 (-96.96%)
Mutual labels:  rclone
home-assistant-addons
Alex's Home Assistant Add-ons
Stars: ✭ 28 (-97.87%)
Mutual labels:  rclone
backmeup
BackMeUp: An automated MySQL / MariaDB databases and files backup solution on *nix Machines using Amazon S3, WebDAV (ownCloud / NextCloud etc.), Google Drive and Dropbox.
Stars: ✭ 80 (-93.91%)
Mutual labels:  rclone
TorrentLeechBot
A powerful telegram mirror bot..
Stars: ✭ 94 (-92.85%)
Mutual labels:  rclone
gclone
fork from https://github.com/donwa/gclone
Stars: ✭ 83 (-93.68%)
Mutual labels:  rclone
scripts
Scripts for managing my Ubuntu / Rclone / Plex Server
Stars: ✭ 20 (-98.48%)
Mutual labels:  rclone
Handy
Convert videos with HandBrake online in Google Colab. Mount Cloud drives with rclone in colab. Burn/Hardcode subtitles. Extract/mute audio from video. Get email notification when tasks finish running.
Stars: ✭ 35 (-97.34%)
Mutual labels:  rclone
Rcloneosx
A macOS GUI for rclone
Stars: ✭ 249 (-81.05%)
Mutual labels:  rclone
UEHToR
UEHToR, #1 Torrent And File Leecher For Heroku, Based on Node.js. Simple to Install with full SEO Support
Stars: ✭ 28 (-97.87%)
Mutual labels:  rclone
rclone-drive
☁️Simple web cloud storage based on rclone, transform cloud storage (s3, google drive, one drive, dropbox) into own custom web-based storage
Stars: ✭ 30 (-97.72%)
Mutual labels:  rclone
quest-sidenoder
Cross platform Sideloader for Quest standalone headset
Stars: ✭ 78 (-94.06%)
Mutual labels:  rclone
Bash-Backup-Script
A small script to upload backup tar to an external storage service
Stars: ✭ 21 (-98.4%)
Mutual labels:  rclone

Travis CI Build Status AppVeyor Build Status Downloads Release Codacy Badge License Donate

Rclone browser

Simple cross platform GUI for rclone command line tool.

Supports macOS, GNU/Linux, BSD family and Windows.

Table of contents

Features

  • Allows to browse and modify any rclone remote, including encrypted ones
  • Uses same configuration file as rclone, no extra configuration required
  • Supports custom location and encryption for rclone.conf configuration file
  • Simultaneously navigate multiple repositories in separate tabs
  • Lists files hierarchically with file name, size and modify date
  • All rclone commands are executed asynchronously, no freezing GUI
  • File hierarchy is lazily cached in memory, for faster traversal of folders
  • Allows to upload, download, create new folders, rename or delete files and folders
  • Allows to calculate size of folder, export list of files and copy rclone command to clipboard
  • Can process multiple upload or download jobs in background
  • Drag & drop support for dragging files from local file explorer for uploading
  • Streaming media files for playback in player like vlc or similar
  • Mount and unmount folders on macOS, GNU/Linux and Windows (for Windows requires winfsp and for mac fuse for macOS)
  • Optionally minimizes to tray, with notifications when upload/download finishes
  • Supports portable mode (create .ini file next to executable with same name), rclone and rclone.conf path now can be relative to executable
  • Supports drive-shared-with-me (Google Drive specific)
  • For remotes supporting public link sharing has an option (right-click menu) to fetch it
  • Supports tasks. Created jobs can be saved and run or edited later.
  • Configurable dark mode for all systems

Sample screenshots

macOS

Linux

 

  Windows

 

 

How to get it

Get binaries for Windows, macOS and Linux on releases' page.

Windows installers (64-bit and 32-bit) are compatible with all x86 based Windows OS starting with Windows 7. If for whatever reason somebody would prefer not to run installer all files can be extracted using innoextract.

Mac version is compiled to run on all versions of macOS starting with 10.9.

Situation with Linux is a bit fuzzier... Linux binary (AppImage) for armhf architecture runs on any Raspberry Pi hardware using Raspbian based on Stretch or Buster.

Linux binaries (AppImage) for x86_64 and i386 architectures should run on systems using distributions released in the last few years. x86_64 one is built on CentOS 7 (released in 2014) and i386 on Ubuntu 16.04 LTS (released in 2016).

The whole idea with AppImage is to build it on the oldest still supported LTS distro – and it should work on all newer OS releases. AppImage contains an aplication and all the files the app needs to run. In other words, each AppImage has no dependencies other than what is included in the base operating system.

In practical terms it means that for example for Ubuntu Rclone Browser AppImage works on all versions starting with 16.04 LTS and for Debian starting with Stretch. With other distributions YMMV but I test major ones like Suse or Fedora. This is Linux. 10000 different distributions… with changes and customizations often only their authors are aware of. I would be happy to hear what distribution it does not work for.

To make life easier when using AppImages on Linux, you can use AppImageLauncher which monitors your system for downloaded AppImages and provides several useful benefits including:

  • AppImage desktop integration - AppImageLauncher allows you to integrate AppImages you download into your application menu or launcher to make it easier for you to launch them. It also takes care of moving them into a central location, where you can find them later if you need access to them again.

  • Update management - AppImageLauncher provides a simple to use update mechanism. After desktop integration, the context menu of the AppImage's entry in the application launcher will have an entry for updating that launches a little helper tool that uses AppImageUpdate internally. Just click the entry and have the tool search and apply updates.

  • Easy removal of AppImages from system - Removing integrated AppImages is pretty simple, too. Similar to updating AppImages, you will find an entry in the context menu in the application launcher that triggers a removal tool. You will be asked to confirm the removal. If you choose to do so, the desktop integration is undone, and the file is removed from your system.

For all released binaries file with hashes signed with my PGP key is provided. It allows to verify that provided binaries were created by myself (authenticity) and are unchanged (integrity). If you would like to have properly signed releases with code signing certificates please see note at the end of this section.

More and more operating systems include Rclone Browser in their offical distribution channels. You can check availibility here.

ArchLinux users can install latest release from AUR repository: rclone-browser.

Fedora package is now available from Fedora packages - simply run sudo dnf install rclone-browser

FreeBSD has its version available from freshports website.

And if you would like to run it directly on your NAS (e.g. Synology or QNAP) there is docker version provided by @romancin - https://github.com/romancin/rclonebrowser-docker

Note: For Windows and macOS it would be much nicer (to avoid pop ups about unknown software origin) to properly sign released packages with code signing certificates however it does not come free even for open source software. I looked at it and it seems that to get keys for both systems for the next three years would cost about $500 (3x$99 for Apple developer account and $200 for cheapest Comodo code signing certificate. I am not prepared to budget it as I do this only as a hobby and I am entirely happy with this software as it is. If Rclone Browser users think that properly signed software would be beneficial for them they can chip in some cash for it. If I raise required amount I will get keys. If not I will give money to some charity.

Why AppImage only for Linux

Starting with version 1.7.0 Linux binaries are only available in AppImage format. Some explanation on this...

Binaries for Linux desktop applications is a major f*ing pain in the ass... as Linus Torvalds said - DebConf 14_ QA at 05:40:

I'm talking about actual application writers that want to make a package of their application for Linux. And I've seen this firsthand with the other project I've been involved with, which is my divelog application. We make binaries for Windows and OS X.

He is talking about Subsurface. His small side project.

We basically don't make binaries for Linux. Why? Because binaries for Linux desktop applications is a major f*ing pain in the ass. Right. You don't make binaries for Linux. You make binaries for Fedora 19, Fedora 20, maybe there's even like RHEL 5 from ten years ago, you make binaries for debian stable. Or actually you don't make binaries for debian stable because debian stable has libraries that are so old that anything that was built in the last century doesn't work. But you might make binaries for debian... whatever the codename is for unstable. And even that is a major pain because (...) debian has those rules that you are supposed to use shared libraries. Right.

And if you don't use shared libraries, getting your package in, like, is just painful. But using shared libraries is not an option when the libraries are experimental and the libraries are used by two people and one of them is crazy, so every other day some ABI breaks. So you actually want to just compile one binary and have it work. Preferably forever. And preferably across all Linux distributions. And I actually think distributions have done a horribly, horribly bad job.

One of the things that I do on the kernel - and I have to fight this every single release and I think it's sad - we have one rule in the kernel, one rule: we don't break userspace. (...) People break userspace, I get really, really angry. (...) And then all the distributions come in and they screw it all up. Because they break binary compatibility left and right. They update glibc and everything breaks. (...) So that's my rant. And that's what I really fundamentally think needs to change for Linux to work on the desktop because you can't have applications writers to do fifteen billion different versions.

And I totally agree with above. I want to provide binary which works across as many Linux distributions as possible and I dont have time to fight with all mess with different dependencies etc. There are other similar ditribution formats e.g. flatpak but I had to choose one and I decided that AppImage is my best choice. I am not saying that AppImage is the best one but it nicely fits my objectives. You can see comparison of different solutions here.

If for whatever reason you are not happy or your system is not covered with provided binaries you can easily build Rclone Browser for yourself. Especially on Unix-like systems it is very easy. Please see below step by step instructions for major operating systems. I have tested all of them and you can have your own Linux distribution Rclone Browser running in no time - it takes 8 min on Raspberry Pi 3B+, on modern desktop it can be less than a minute.

Build instructions

Linux

  1. Install dependencies for your particular distribution:
    • Debian/Ubuntu and derivatives: sudo apt update && sudo apt -y install git g++ cmake make qtdeclarative5-dev
    • Suse/OpenSuse: sudo zypper ref && sudo zypper --non-interactive install git cmake make gcc-c++ libQt5Core-devel libQt5Widgets-devel libQt5Network-devel
    • RHEL/CentOS: sudo yum -y install git gcc-c++ cmake make qt5-qtdeclarative
    • Fedora: sudo dnf -y install git g++ cmake make qt5-qtdeclarative-devel
    • Arch/Manjaro: sudo pacman -Sy --noconfirm --needed git gcc cmake make qt5-declarative
  2. Clone source code from this repo git clone https://github.com/kapitainsky/RcloneBrowser.git
  3. Go to source folder cd RcloneBrowser
  4. Create new build folder - mkdir build && cd build
  5. Run cmake .. from build folder to create makefile
  6. Run make from build folder to create binary
  7. Install sudo make install

FreeBSD

  1. Install dependencies sudo pkg install git cmake qt5-buildtools qt5-declarative qt5-qmake
  2. Clone source code from this repo git clone https://github.com/kapitainsky/RcloneBrowser.git
  3. Go to source folder cd RcloneBrowser
  4. Create new build folder - mkdir build && cd build
  5. Run cmake .. from build folder to create makefile
  6. Run make from build folder to create binary
  7. Install sudo make install

Note: For rclone remotes mount to work please see this forum thread. For me it was enough to run sudo sysctl vfs.usermount=1

OpenBSD

  1. Install dependencies sudo pkg_add git cmake qt5
  2. Clone source code from this repo git clone https://github.com/kapitainsky/RcloneBrowser.git
  3. Go to source folder cd RcloneBrowser
  4. Create new build folder - mkdir build && cd build
  5. Run cmake .. -DCMAKE_PREFIX_PATH:PATH=/usr/local/lib/qt5/cmake from build folder to create makefile
  6. Run make from build folder to create binary
  7. Install sudo make install

Note: rclone for openBSD does not support mount hence this feature is disabled in Rclone Browser. cgofuse guys did not manage to implement it: #18

NetBSD

  1. Install dependencies sudo pkgin install git cmake qt5-qtdeclarative
  2. Clone source code from this repo git clone https://github.com/kapitainsky/RcloneBrowser.git
  3. Go to source folder cd RcloneBrowser
  4. Create new build folder - mkdir build && cd build
  5. Run cmake .. -DCMAKE_PREFIX_PATH:PATH=/usr/pkg/qt5 from build folder to create makefile
  6. Run make from build folder to create binary
  7. Install sudo make install

Note: rclone for NetBSD does not support mount hence this feature is disabled in Rclone Browser. cgofuse guys did not manage to implement it: #18

macOS

  1. If you don't have Homebrew yet install it /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. You might be asked to install xcode command line tools - do it. This is actuall macOS SDK, headers, and build tools. You don't need full xcode IDE.
  3. Install dependencies brew install git cmake rclone qt5
  4. Clone source code from this repo git clone https://github.com/kapitainsky/RcloneBrowser.git
  5. Go to source folder cd RcloneBrowser
  6. Create new build folder - mkdir build && cd build
  7. Run cmake .. -DCMAKE_PREFIX_PATH:PATH=/usr/local/opt/qt from build folder to create makefile
  8. Run make from build folder to create binary
  9. Go to yet another newly created build folder cd build. Your binary should be here
  10. Package your binary with Qt libraries to create self contained application /usr/local/opt/qt/bin/macdeployqt rclone-browser.app -executable="rclone-browser.app/Contents/MacOS/rclone-browser" -qmldir=../src/. Without this step binary won't work without Qt installed

Windows

  1. Get Visual Studio 2019 - you need "Desktop development with C++" module only
  2. Install CMake
  3. Install latest Qt v5 (64-bit) from Qt website. You only need "Qt 5.13.2 Prebuilt Components for MSVC 2017 64-bit" (MSVC 2017 64-bit). Later steps assume you install it in c:\Qt
  4. Get rclone-browser source code. You either need to install git and clone it or download zip file from releases
  5. Go to source folder cd RcloneBrowser
  6. From cmd create new build folder - mkdir build and then cd build
  7. run cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_CONFIGURATION_TYPES="Release" -DCMAKE_PREFIX_PATH=c:\Qt\5.13.2\msvc2017_64 .. && cmake --build . --config Release
  8. run c:\Qt\5.13.2\msvc2017_64\bin\windeployqt.exe --no-translations --no-angle --no-compiler-runtime --no-svg ".\build\Release\RcloneBrowser.exe"
  9. build\Release folder contains now RcloneBrowser.exe binary and all other files required to run it
  10. If your system does not have required MSVC runtime you can install one from Microsoft website.

Portable vs standard mode

In standard operations mode all configurations files are stored in the following locations:

  • macOS:

    • preferences: ~/Library/Preferences/com.rclone-browser.rclone-browser.plist
    • tasks file: ~/Library/Application Support/rclone-browser/rclone-browser/tasks.bin
    • lock file: in $TMPDIR assigned by OS
  • Linux/BSD:

    • preferences: ~/.config/rclone-browser/rclone-browser.conf
    • tasks file: ~/.local/share/rclone-browser/rclone-browser/tasks.bin
    • lock file: in $TMPDIR or /tmp if $TMPDIR is not defined
  • Windows:

    • preferences: in registry Computer\HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser
    • tasks file: %HOMEPATH%\AppData\Local\rclone-browser\rclone-browser\tasks.bin
    • lock file: %HOMEPATH%\AppData\Local\Temp\

Starting with version 1.7.0 of Rclone Browser portable mode is supported on all operating systems. To enable it you have to create .ini file (for Windows and macOS) next to executable with same name - e.g. if application name is RcloneBrowser.exe or RcloneBrowser.app create RcloneBrowser.ini. For Linux create a directory (not a file) with the same name as the AppImage plus the ".config" extension in the same directory as the AppImage file - e.g. if application name is rclone-browser.AppImage create folder rclone-browser.AppImage.config next to it. This is solution supported by AppImage specification.

In portable mode all configuration files will be stored in the same folder as application (in .config folder on Linux) and rclone and rclone.conf path can be relative to executable - so if in preferences in rclone location you put rclone.exe browser with look for it in folder where application resides. It means that you can put all required stuff including rclone binary itself and its config on e.g. memory stick and everything will be stored there.

History

I have been using rclone-browser for long time and being annoyed by small not working bits and pieces I decided for DYI approach and this is how this repo was created. Original mmozeiko’s repository was abandoned and in the meantime rclone changed few things breaking rclone-browser functionality.

I looked around but could not find anything fully working. Some github users made progress in fixing and adding stuff so I built upon it.

I used DinCahill's fork as a base for my version.

I fixed whatever I found not working and added various tweaks enhancing functionality. I recompiled and repackaged everything using latest Qt (5.13.1) and latest platforms' compilers. This on its own fixed some issues and added new features like support for dark mode in macOS. Then followed with more fixes and more features. Rclone Browser was great again:) and is getting better.

Code signing certificates donations

If you would like to donate towards code signing keys please feel free to do it. If I don't raise required $500 I will give all money to some charity. Please see my note regarding it at the end of How to get it section. I will keep all updated with amount raised.

Raised so far: 6.4 USD (1.3% of the required target)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].