So, I have had this idea for a Pi-based project involving cooperative backup.
Off-site backup is really the only thing that will save you if your house burns down, if your house is robbed, etc. However it's normally a huge pain. You have to have a separate site, you have to transport tapes or other media. Home users never do it because it's too much trouble. But the advent of decent home broadband would make it possible to do automatically, if only you had an offsite location.
My idea is for a pair of Pies, one at your house, and one at a friend's house, each with a disk attached. You backup your files to the one in your house (using Time Machine or something similar), and then they are regularly synced to the remote Pi. In exchange for having a Raspberry Pi and hard disk in their house, they get to do exactly the same thing: their files are all safely backed up to your house.
How much interest there would be in developing this into something installable and even user-friendly, perhaps even an 'appliance'? Does anyone have suggestions or ideas for this? Is anyone else doing something like this?
I'm developing a specification for how a finished product might work (since I'm a software engineer). Here's what I have so far:
When you first install it, you would be able to 'pair' it with another Pi. SSH keys would be generated and copied, etc. Perhaps you could have the option to set it so that your files are encrypted while on the remote machine? Not sure how encryption would work since most rsync-like processes require the destination to be unencrypted. Anyways, it would walk you through setting up some dynamic DNS service so that the machines would be able to talk to eachother. Maybe it has a web interface? Perhaps it could use uPnP to poke holes in the firewall?
After initial configuration the Pi would appear as a simple (and kind of slow) NAS, which you can copy files to. The user would set up a backup program to copy their the contents of their computer(s) to it. It would optionally use some kind of versioning scheme (I'm thinking rsnapshot or Git) to allow you to recover previous versions of files. Not sure how the previous snapshots would be visible to the user... perhaps part of the web interface? This would depend a lot on the versioning scheme.