[Owncloud] Dropbox-like FLOSS alternative ideas

Roberto Suarez Soto talkingxouba at gmail.com
Wed Mar 24 09:48:00 UTC 2010


	I've read on a news site that there was the intention of creating a
FLOSS alternative to Dropbox. I use Dropbox, and also SpiderOak and Ubuntu
One, and have tried JungleDisk. So, with this background, I'd like to share
my ideas on the subject.

	Some time ago I wondered how I could do something akin to Dropbox,
but in my own server and under my own conditions. I tried several things:

	- inosync (http://bb.xnull.de/projects/inosync/)
	- A home-brewn solution based on inosync, but using fsvs
(http://fsvs.tigris.org/) and subversion instead of rsync
	- Conduit (http://live.gnome.org/Conduit)

	inosync uses inotify and rsync to mirror almost instantly any changes
to one or several directories to a remote site. Problem and difference with
Dropbox: it's one way only, from your computer to the remote site. If you
want to synchronize those directories to another computer you have to
manually rsync from the remote site, and maintaining coherence afterwards is
a nightmare. Besides, you can be behind a firewall that doesn't allow
connections to the rsync port, so access to the remote site can be tricky.

	My second attempt was to hack inosync to use fsvs as backend.

	- You can use it through http/https (obligatory for any service like
this, IMHO)
	- You can have versions of your files, nice if you have to undelete
something or recover what you had in a directory five days ago
	- You get conflict resolution (more or less) for free
	- You can use fsvs manually for the first checkout, and then use
inosync+fsvs to keep the files in sync


	- Very hackish and prone to failure
	- Absolutely not easy to use
	- Depends on a already setup subversion server, which has its own set
of advantages and disadvantages

	And so I got to Conduit. Conduit is really great. You can define
relationships among sources and targets easily. You can sync a local folder
with a remote ssh server, both ways. Install Conduit in another computer,
configure the same remote ssh server, and you have a very similar setup to
Dropbox. But it's ssh, so if you change two bytes in your many-megabyte file,
you have to transfer all the megabytes again. It really needs a rsync backend
option. Besides, I found it a bit unstable when trying to sync really big
folders (several gigabytes). Now I use it to maintain backups of several
files and folders in my computer.

	This is my experience. Now, my opinion of how a service of this kind
should be:

	- It should use http or https to transfer data
	- It should use some rsync-like transfer mode, only sending
differences of files
	- It absolutely must use local disk for cache, so you could still
work without network and benefit from the speed of local disks (like Dropbox
	- It should be transparent to the user: you just work in a folder,
and changes get synchronized, without you having to do anything
	- It should be able to use a server as backend (so I could
install it in my tiny VPS or in my big enterprise fileserver), or proprietary
services with open APIs, like Amazon S3 or Google Docs
	- It should have rich ACL features: "admin" and "normal" users,
groups, etc., so it could be used in multiuser environments
	- It should allow for public and private folders, to share
data among people
	- It should be fully encrypted

	I think that's all. Thanks for reading :-)

    Roberto Suarez Soto                   Lift up the receiver,
                                       I'll make you a believer

More information about the Owncloud mailing list