SparkleShare: Dropbox-Like Sync Client Powered By Git

SparkleShare indicator

SparkleShare is an open source cloud storage, file synchronization and collaboration client application that uses Git as the storage backend. Think of it as Dropbox, but using your own Git server, or a hosted solution like GitLab, GitHub or BitBucket.

The application runs on Windows, Linux and macOS (there are no mobile apps), and its main use cases include synchronizing frequently changing project files, or tracking and syncing files edited by multiple people, all with an easy way of reverting the files to any point in their history, and optional client side encryption.

Since Git is not ideal for large files, SparkleShare also makes use of Git LFS, an open source Git extension for versioning large files. Even so, the SparkleShare website mentions this application is not a good solution for full computer backups or for large binary files that change often.

The application works pretty much like Dropbox, minus the Dropbox server. You get an icon in your notification area (AppIndicator on Linux) that shows the synchronization status and gives access to some options, and a SparkleShare folder (created in your home directory on Linux) that holds your files in sync with the remote Git server.

SparkleShare recent changes

While you don't get file manager integration for reverting file changes (you only get a 'global' recent changes dialog that displays changes in a chronological order, without the ability to view each file's history), you can always use Git commands or many of the available Git clients out there for this.

Setting up SparkleShare with GitLab or GitHub

Below you'll find a quick start guide for setting up Sparkleshare with GitLab and GitHub (which now has free private repositories). For using SparkleShare with your own host, you can use a script.

Start by clicking on the SparkleShare icon in your tray / AppIndicator area, then Computer ID > Copy to clipboard.

You need add a new SSH key in your GitLab or GitHub account, and paste this Computer ID as the key. On GitLab go to Settings -> SSH Keys - direct link to this page, while for GitHub, you'll need to go to Settings -> SSH and GPG keys -> New SSH key - direct link to this page. Paste the Computer ID that was automatically copied to your clipboard Into the key fields on GitLab/GitHub, and add the key.

Next, create a GitLab or GitHub repository, be it public or private, depending on what you need. You can also use an already existing repository.

SparkleShare add GitHub or GitLab

Now back to SparkleShare, click on its tray icon and choose Sync Remote Project.... Select GitLab or GitHub from the list, and enter your repository remote path, without the / part. Now all you have to do is click Add and wait for SparkleShare to sync the remote repository.

For more options and advanced use, including using client side encryption, see the SparkleShare Wiki.

Download SparkleShare

On Linux, SparkleShare may be available in your Linux distribution's the repositories. On Debian, Ubuntu or Linux Mint you can install it using:

sudo apt install sparkleshare

On Fedora, install SparkleShare using:

sudo dnf install sparkleshare

You can also install SparkleShare from FlatHub, which is the latest version of the software. Setup Flatpak on your Linux distribution if you haven't already, and then install SparkleShare using:

flatpak install flathub org.sparkleshare.SparkleShare