Sharing more stuff with SparkleShare

I think Dropbox is a neat idea. It makes file sharing between my several computers and optionally my friends’ computers — of course only that content which I am legally entitled to distribute — really, really easy. It mostly just works, on Linux, Mac, and Windows. Not to mention my iPod touch and Sarah’s iPhone. It’s great for keeping your stuff available in multiple places and sharing certain files with certain users, but not everyone (like from inside the dressing room when you weren’t sure which dirndl was the winner).

Dropbox needs to get paid for any significant storage capacity, however, and I’ve got a very nice virtual computer in a high-powered data center somewhere mostly sitting around idle, waiting to do some boring stuff like make this content hit your eyeballs. And even Dropbox is not immune to security flaws and breaches.

Why not leverage that extra storage and bandwidth capacity by storing stuff for safe-keeping or sharing more than what you get for free from Dropbox on your own server via SparkleShare? It’s free (beer, gratis) and free (freedom, libre) and doesn’t limit you to a certain number of users/clients/files/bytes of storage. I’ve been playing around with it for about a week, and I like what I see so far.

It’s available for several platforms:

  • Mac OS X
  • Linux
  • Android

… and iOS and Windows clients are in the works. Setting up a server on Linux was pretty easy if you are comfortable with package managers and user administration (and if you have a Linux machine running server software of any kind at your disposal, you better be). SparkleShare runs on top of Git and OpenSSH, so you need to have those packages installed and running. I’m not much of a coder, especially not in a group setting, so I had no need for Git prior to setting up SparkleShare.

The Mac client Just Works™. The Linux client was more of a challenge for me. The Ubuntu package was pretty far out of date, so I gave it a shot building from source. That was kind of an adventure, but in the end I got it running by combining some files from the 0.8 version and some from the 0.8.1 version. When it comes to compiling software, I’m mostly just fumbling around in the dark, so I’m sure it took me much longer than someone who actually has a clue.

So, what’s keeping SparkleShare from taking over the world of redundant backups and file sharing? A few things:

  1. quick setup à la Dropbox
  2. a web interface for administration (also supposedly in the works)
  3. the aforementioned Windows & iOS clients
  4. being based on Git, you need about double the storage space that your files themselves take up

That last one there confused me, since I’m not a Git user. According to Wikipedia, Git stores all the history of changes to the files being shared in every local copy. This is great if you want to look back in time at previous versions of the files, but not so great if you’re low on storage space already. SparkleShare’s programmers are looking into opening their software up to other methods of replication as well. With those, you might lose the versioning history but save on disk space.

I think it’ll really take off when it’s as easy to install on the client side as Dropbox. The only downside at the moment is that I don’t have enough friends on Mac/Linux computers with whom I regularly share files to really give it a proper field test, but it’s working great on our LAN here at the apartment. I’m using it to keep a couple hundred MB of my favorite desktop wallpaper photos in sync between a couple of Macs, and that’s working out great.