Ask HN: Any DIY/installable alternatives to Dropbox?
I really like Dropbox (http://www.getdropbox.com) and use it on a daily basis. However, I already have readily accessible capacity on my web server and would rather have the option to run the system on my own. In addition I have occasional clients who require verified encryption of their data. Are there any projects out there that create a similar solution or is this uncharted territory?
26 comments
[ 5.1 ms ] story [ 54.4 ms ] threadI wonder if the Dropbox cats have thought about doing something like this? They could continue acting as a "controller" and route data elsewhere.
openvms to the rescue!
I use unison to sync a bunch of folders between my laptop and desktop, but only on an ad hoc basis. For stuff that I want synced in the background I use Dropbox. And, frankly, I'm not sure why I'm not using Dropbox for everything. For example, I'm running Jungledisk to make backups of my current project folders to S3 in the event of a big fire in my building... but if I just put my Jungledisk stuff in a Dropbox I believe I'd be syncing it and backing it up with versioning, all automatically. I need to look into that.
As for the clients that require verified encryption... is it possible to make an encrypted volume, created with something like Truecrype, and stick that in Dropbox? I've done that. Not sure how the task of automating the mounting and dismounting would go, nor of how secure this really is.
Why even bother with rsync you may ask? Because for huge binary files (like RAW/JPEG images) I don't need a history of changes and they don't compress well, i.e. git would lead to an increased disk usage.
BTW using "any VCS" advice won't work here. Git can automatically pick up rename/delete/create actions on whole directory trees without explicit commands, which is what you want if you're going for 100% automatic operation: if I delete a file on laptop "A" it will automatically disappear on laptop "B" too. Perhaps git isn't unique in this, but its better among other VCS systems I'm familiar with. It also is very compact, especially if you don't want to have a full-blown uncompressed working tree on a server.
I love Dropbox, but I don't see how I could use it with my 55K/second upload speed, which is, unfortunately, quite typical for US users. (my server is in the closet). If I were them I would seriously consider selling a NAS+software kit. It's hard to imagine a middle class multi-laptop family that doesn't need one of those.
Or I'll take it as a challenge, and as soon as I've got some time I'll try to do something kind-of like your setup ;)
* Configure all client laptops with passwordless ssh logins to the server (i.e. using certificates) and install git on them.
* Create a bare git repo on the server. I have a repo for each user.
* Have a ~/backup.sh script (better call it backup.command on macs) each of your client laptops that looks something like this (this one is for OSX):
http://pastie.org/358427
Then create a cron job that runs this file as often as you want. It's actually pretty efficient, in my case runs in about 3 seconds if there are no significant changes.
My laptops run it every 20 minutes and my home directory (and music, photos and other stuff) is 100% identical on all computers I work on.
The server, in turn, can be configured to encrypt and push your stuff at night over to your slicehost account or something, when you're not using your connection and this the speed isn't much of an issue.
Short version of this step:
on each client, run ssh-copy-id user@server
[Edit: no, not the Dropbox technolgy; the Dropbox experience.]
I was intrigued by the idea of making a universal backup/synch client based on rsynch.
If you want this but on your own servers, maybe check out ringlight: http://ringlight.us/
It is a command-line solution, and simple to throw in cron. In addition, you can use it to back things up to S3 directly. It's great.
Unison File Synchronizer: http://www.cis.upenn.edu/~bcpierce/unison
DirSync Pro: http://directorysync.sourceforge.net/
http://www.novell.com/products/ifolder/overview.html
https://help.ubuntu.com/community/iFolderClient