Skip to content

Instantly share code, notes, and snippets.

@negative0
Last active August 29, 2020 18:30

Development of plugins framework for rclone WebUI

About

This proposal is an extension of the previous development of the web interface for the rclone cloud sync tool. The main focus of this project is to develop an extensible plugins framework for the WebUI. Which could then be used by developers to develop and publish their own plugins to the existing rclone WebUI interface.

Experience

TL;DR Lots of coding and fun

Long story... The development of rclone webui started last year with basic features like a file explorer and config creator. This year, we decided to extend the capabilities of webui by introducing plugins, which could be loaded on the go, and equip the developers with tools to make custom plugins on top of webui based on different usecases.

During the course of this project, we developed following types of plugin:

  1. Dashboard plugin: A plugin which could load like a widget on the rclone webui dashboard.
  2. File Handler: A plugin which can handle opening of either a folder or a file in the explorer.
  3. Terminal: A plugin that can interact with rclone as a shell.

Proposal

https://docs.google.com/document/d/1BolfeYOfoD2AvD3V19muB_ag5IAawYbJt3IXCE1wKeA/edit?usp=sharing

Work Done

Plugins Framework:

  1. Template for creating a new rclone plugin https://github.com/rclone/rclone-plugin-template
  2. Repository responsible for storing plugins suppported by rclone https://github.com/rclone/rclone-plugins-repo
  3. Javascript bindings for rclone https://github.com/rclone/rclone-js-api
  4. Adding support for plugins in rclone rclone/rclone#4309
  5. Adding support for command execution rclone/rclone#4437
  6. Support for plugins in webui: rclone/rclone-webui-react#107.

Plugins developed:

  1. Terminal plugin https://github.com/negative0/rclone-terminal
  2. VS Code port for the rclone rc https://github.com/negative0/rclone-vscode
  3. Edit and download photos using rclone: https://github.com/negative0/rclone-photo-editor
  4. Edit and view files like csv in webui: https://github.com/negative0/rclone-file-viewer
  5. Watch videos in rclone: https://github.com/negative0/rclone-video-plugin

Others:

  1. Adding support for mount using rc rclone/rclone#4141, rclone/rclone#4272
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment