Some months ago I installed Sparkleshare on an always-running machine, driven by the Linux-based operating system Ubuntu. Sparkleshare is an open-source cloud storage software, that has been written in C# using Mono.
While available client-side software like Dropbox or Microsoft Skydrive only require to install the client software (and perhaps register an account), Sparkleshare also requires you to install the server software.
The whole installation can be done using the following commands:
su curl https://raw.github.com/hbons/Dazzle/master/dazzle.sh \ --output /usr/bin/dazzle && chmod +x /usr/bin/dazzle dazzle setup dazzle link dazzle create MyProject
This will download a shell script called Dazzle, which will setup everything and create the appropriate links. Finally we use it to create our first project called MyProject.
Such projects can be used to set up various points of synchronization.
Under the hood Sparkleshare uses git (for source control). The great benefit is, that you could also us other (perhaps pre-installed) serviced as your server. A popular choice is of course GitHub, however, without private repositories it won't make much sense for must people.
The next thing we have to do is creating a SSH private key and storing the public version on the server.
ssh-keygen -t rsa ssh-copy-id USERNAME@SERVER
On Ubuntu if we need to install the public key automatically, we need to place it in the directory /etc/ssh/storage/ directory (the file is still named authorized_keys).