Ubuntu / Linux news and application reviews.

Sparkleshare is a tool to synchronize your files in the cloud - like Dropbox or SpiderOak - but unlike these, Sparkleshare is open source and allows you to use your own server. Sparkleshare uses GIT so if you delete/modify some files by accident, you can easily revert the changes. You can use it with your own server, GitHub or Gitorious. In this post I'll only cover setting up Sparkleshare with GitHub.

Sparkleshare is still in development and until now you had to compile it yourself but I've recently came across a PPA that provides Sparkleshare (Client) GIT snapshots so you can easily install it in Ubuntu 11.04 Natty Narwhal (and a different PPA for Ubuntu 10.04).

Install Sparkleshare (Client) in Ubuntu via PPA

Update Jun 14th, 2011: there is now a stable SparkleShare PPA for Ubuntu 11.10, 11.04 and 10.10. Add the PPA and install SparkleShare using the commands below:
mkdir -p ~/.ssh
sudo add-apt-repository ppa:warp10/sparkleshare
sudo apt-get update
sudo apt-get install sparkleshare libwebkit1.1-cil git-core

The "mkdir -p ~/.ssh" command is required because if the ~/.ssh folder doesn't exist, SparkleShare crashes.

For Nautilus integration, also install "python-nautilus":
sudo apt-get install python-nautilus

There are also two daily / unstable builds PPAs: ppa:terminus/ppa for Natty and ppa:pdffs/sparkleshare for Lucid.

Setting up Sparkleshare with GitHub

Setting up Sparkleshare with your own server is a bit complicated so in this post I'll only cover synchronizing your files with GitHub. For using Sparkleshare with your own server, see: Set Up Sparkleshare With Your Own Server.

GitHub is a web-based hosting service for projects that use the Git revision control system but with Sparkleshare, we'll use it as our own cloud server to which the files will be synchronized. You can use Sparkleshare (w/ GitHub) to back up files in the cloud, easily share files with others, synchronize your local code with GitHub and so on. All this also applies to Gitorious too, but in this post I'll only cover setting up Sparkleshare with GitHub.

1. Get a GitHub account (it's free!).

2. Create a repository @ GitHub: click "Dashboard", then click "New Repository". Your repository name will later be referred to as your folder in Sparkleshare.

3. Start Sparkleshare, enter your name and email and click next. Then stop (do not go to the next step)! Now open Nautilus and go to /home/YOUR_USERNAME/.config/sparkleshare

Here, you'll find a file called "sparkleshare.YOUR_EMAIL.key.pub". Open this file in a text editor and copy its contents.

4. On the GitHub site go to Account Settings > SSH Public keys, click on "Add another public key":

Github SSH key

Here, give your key a title (like SparkleShare-home or whatever you want) and in the "key" field, paste the .pub file contents (which you've copied under step 3).

5. Now return to the Sparkleshare window:

Sparkleshare setup

Select "GitHub" and under "Folder name" enter: "your_github_username/repository" (without the quotes), where "your_github_username" is your GitHub username and "repository" is the name of the GitHub repository you've created under step 2.


Sparkeshare Ubuntu screenshot

Now you should have a notification area icon for Sparkleshare and a folder called "Sparkleshare/your_repository_name" in your home directory. Copy files to this folder and they will get synchronized with GitHub.

Important: do not place any private files into the Sparkleshare folder as these files can be seen by anyone if you have a free account. For a paid account, you can get more space, private repositories, private collaborators, etc.

For help setting up Sparkleshare with Gitorious, see the Sparkleshare documentation.

Update: for using Sparkleshare with your own server, see: Set Up Sparkleshare With Your Own Server