Dropbox has made its mark as an integral productivity tool. Simple file sharing and syncing makes it easy to keep all your important documents and files on hand, wherever you are.
If you're anything like me, you've hit the space limit of your free Dropbox account, and wondered if the Open Source world has any alternatives. Good news! Sparkleshare has you covered. Combined with a Bitbucket account and a little effort, you can have practically unlimited storage, for free!
What would you not use Sparkleshare for? Git is not designed for large files. Bitbucket will not allow you to upload a file bigger than a 100MB, and you may see a significant performance impact for files over 10MB. Sparkleshare may not be the best choice if you're sharing your MP3 collection, or other sizeable files.
This tutorial is beginner-friendly, in that there is very little involved in the way of configuration.
Install Sparkleshare
Sparkleshare is packaged for Fedora and Ubuntu. Install it using your distro's package manager:
Fedora: sudo yum install sparkleshare
Ubuntu: sudo apt-get install sparkleshare
When you've successfully installed Sparkleshare, you'll have a folder in your Home directory called “Sparkleshare” with a text file in it. That text file will be important in a couple of steps.
Sign up for a Bitbucket account
Bitbucket is a service provided by an awesome Australian company that offers free Git hosting for projects with less than 5 contributors. Sparkleshare uses Git as its backend, and you are the only contributor to your Dropbox replacement (for now). Sign up for a free account, and be sure to tell Bitbucket a bit about yourself.
Create a repository
After you have signed up and clicked through to your profile, the first thing you have to do is “Create your first repository”. All of the defaults on the “Create a new repository” screen are acceptable. Bitbucket walks you through your repository creation using a wizard. You are starting from scratch. Sparkleshare handles the repository cloning for you, so you can skip their command line instructions. Likewise for making a change and pushing, you'll do that by adding your files. Don't invite any friends for now, and you've completed the wizard.
Add your Sparkleshare key to Bitbucket
Sparkleshare uses a key to securely keep your files in sync with Bitbucket, without requiring a password. In the top right corner of the Bitbucket site is an avatar with the hint of a drop-down menu. The drop-down menu contains a “Manage account” option, which offers an opportunity to upload “SSH keys”. Click “Add key”.
This is where the text file we talked about in the first step becomes important. Open the text file in your Sparkleshare directory, and copy everything in it (I used “ctrl + a” to make sure I got absolutely everything). Paste your Sparkleshare key into the “Add SSH key” window, and label it so you'll be able to tell which computer it represents.
Add your Bitbucket repository to Sparkleshare
Launch Sparkleshare. If you use Gnome, you can use “gnome-session-properties” to add “sparkleshare start” to your list of startup commands.
When Sparkleshare is running, there is an icon for it in the Gnome messaging tray. Click the Sparkleshare icon in the message tray, and select “Add Hosted Project”
Select “Bitbucket” in the “Sparkleshare Setup” window. Add your Bitbucket repository to the “Remote Path” field, with the repository you just created as the project name. When you hit OK, the initial setup tasks may take a while, and Sparkleshare will suggest you caffeinate. Congratulations, you did it!
Upload files
Now you can copy any file or directory into the project folder in your Sparkleshare directory, and it will automatically synced, using Git, to Bitbucket.
Sync files to additional computers
You haven't replaced Dropbox until you have your files in sync across multiple computers. Thankfully, this is just as simple as repeating steps 4 and 5 on each computer that you'd like to sync your files to. Every time you install Sparkleshare on another computer, you get a new text file containing a Sparkleshare key. Add each key to the “SSH Keys” in Bitbucket to keep your files synced.
Download a mobile client
The bad news: The official Sparkleshare app is no longer maintained, and has been pulled from Google Play.
The good news: Remember when I said that Sparkleshare uses Git in the backend? We don't need a mobile Sparkleshare client, we need a mobile Git client!
The Git client I used is called Agit, and costs $2.50. You'll also need to install the ssh agent Connectbot, which is free. There is currently a limitation to Agit; it can't push your files back to your repository if you modify them on your phone.
Generate and upload an SSH key for your phone
Launch Connectbot, open the settings menu, and select “Manage Pubkeys”. From the “Manage Pubkeys” screen, open the settings menu, and select “Generate”. Label your new key, and select the “RSA” type at “1024” bits. Don't enter a password. Check the “Load key on start” checkbox, and hit Generate. Follow the instructions on screen to generate your key.
Long press your new key, and select “Copy Public Key” from the long press menu. You'll need to add the public key to the list of “SSH Keys” on your Bitbucket account. I opened up the Bitbucket website on my phone, and pasted the key in directly. You may want to email the public key to yourself, and then add it to Bitbucket on a full sized screen.
Clone your Bitbucket repository to your phone
Launch Agit, and press “Clone”. Enter your repository URL, which may not be exactly what you think it is. You'll use SSH to keep the files on your phone up to date, so the URL you enter looks like this:
ssh://Git@bitbucket.org/USERNAME/REPOSITORYNAME.Git
Hit “Clone!”, and you've done it!
What next? Since Bitbucket is free to projects with up to 5 users, why not invite some of your friends to contribute to your project? If you want complete control over your files, you can host your files in your own Git repository. If you are paranoid, you can even use end to end encryption.