|
|
Subscribe / Log in / New account

ownCloud 1.0: towards freedom in the cloud

June 30, 2010

This article was contributed by Koen Vervloesem

Frank Karlitschek announced the ownCloud project during his Camp KDE presentation [PDF] in January in San Diego. After only five months, he has released ownCloud 1.0. It is meant to be a completely open source replacement, using the AGPL license, for proprietary cloud storage solutions like Dropbox or Ubuntu One.

OwnCloud, a KDE project (actually, a Social Desktop project), has a strong use case: because KDE runs on all kinds of devices (work and home PCs, notebooks and netbooks, mobile phones), it becomes more and more problematic for users to keep their data synchronized between these devices, or to create backups of their documents. A lot of users (not only in the KDE world) have therefore migrated to web-based applications like Google Docs, GMail and Flickr, or synchronization services like Dropbox and Ubuntu One.

Dropbox is a web-based file hosting service that enables users to store their files on the servers of the company Dropbox, synchronize them with their Windows, Mac or Linux computer or their mobile device, and share them with others. Canonical's Ubuntu One offers roughly the same functionality, but only has a Linux client for now. The unfortunate unifying theme in this trend is that all these web-based applications and services, including Canonical's, are proprietary. A few months ago, Frank described why it's important to create non-proprietary alternatives:

This trend is problematic and we have to make sure that free desktop applications don't get replaced by web based apps and become irrelevant in the next 10 years. It is also important that we still own our data and don't [lose] control over our personal files.

I think we have to make sure that our great KDE desktop applications support features like sharing data, accessing data from any device, automatic versioning, backuping and encryption.

A server in each house

The ownCloud project solves this by adding a relatively easy-to-install server package as a companion to the user's desktop, notebook, netbook, and mobile phone. Users can install ownCloud on their home PC that is publicly accessible via a static IP address or dynamic DNS, or on a VPS (virtual private server) or dedicated server that they rent. Files and other data can then be stored on their personal cloud storage and made accessible to all of their devices.

OwnCloud is a web application written in PHP. Users can choose between MySQL and SQLite for the database. The latter is especially nice, because it makes the setup easy for new users. Moreover, ownCloud uses a database abstraction layer, so support for additional databases is possible. The project is already working on PostgreSQL support. Your author installed ownCloud 1.0 on a fresh Turnkey LAMP 2009.10 server, which is based on Ubuntu 8.04 and offers a fully configured LAMP stack (Linux, Apache, MySQL, and PHP/Python/Perl).

After the installation, users can open the ownCloud directory in their favorite browser, which launches the "first run wizard" that helps with the initial configuration. For instance, this allows the user to choose between MySQL and SQLite, set up the administrative account, and it has some options for automatic backups, forcing SSL, and the location of the data directory.

When logged in on the web interface, the user can upload, download, or delete files, create directories, look at the log of actions, and change the settings. The possibilities are rather basic, though. For example, it's not yet possible to move files between directories on the server and the interface doesn't show any information about the files other than the file name. So all in all, ownCloud's web interface isn't all there yet.

Essentially, ownCloud is a simple web-based file server: it stores the user's files in some personal cloud storage. Users can then access these files via a web interface, even on their mobile phones. But ownCloud also supports WebDAV, so users are not limited to the web interface: their documents folder can be mounted on Linux, Mac OS X, and Windows. Your author mounted his ownCloud installation successfully on a Ubuntu 10.04 desktop with GNOME, using the "Connect to server..." menu. The WebDAV directory that needs to be entered is listed on the bottom of the ownCloud web interface, and if the web server supports SSL, access can be encrypted.

OwnCloud also supports the Open Collaboration Services API (OCS), so the user's ownCloud installation can push notifications to the KDE desktop if interesting events occur, such as someone who accesses a shared file or a full storage device. You have to use the latest KDE (KDE SC 4.5 RC1) to get notifications working, and the configuration is still a bit rough: the user has to add his ownCloud as a social desktop provider in the system settings "Account Details" - "Social Desktop" - "Add Provider" by entering the URL http://servername/ocs/providers.php. After this, add the "Social News" widget to the desktop or panel to see the notifications. This configuration setup will be made easier in ownCloud 1.1.

Future features

While the current release isn't overwhelming feature-wise, the project's roadmap gives an idea of some interesting features we can expect. For the next version, the plan is to support easily sharing files and directories with other people. There's also an idea to use the Git version control system as a storage backend to have a history of all files. There will also be a command line synchronization client and a KDE front-end to be able to access files offline. According to Frank, it should be easy to develop a GNOME front-end for ownCloud, and he is already talking with some GNOME developers about a closer collaboration in the future. OCS is a Freedesktop specification, so it's not tied to KDE.

Moreover, one of the KDE Google Summer of Code students, Martin Sandsmark, is working on a client side library for better integration of desktop applications with the ownCloud service. When this library is finished, KDE applications can use it to easily store and share data like bookmarks, calendar data, or configuration data across different systems. The library is using the OCS API as a data exchange protocol, so it works together with KDE's social desktop project.

OwnCloud has a basic plugin system which will be improved a lot in version 1.1 (expected in August 2010). This means that enterprising users can write their own additional services in the future. Frank shares some interesting examples in his release announcement:

- A photo gallery plugins. So you can share your photos with others without uploading it to services like Flickr or Picasa.
- Music server. You can listen to your music from every device without copying it around.
- Podcast catcher. A central place to collect your audio and video podcasts and access it via a HTML5 interface or a native media player.

With respect to encrypted file storage, ownCloud is still in the planning phase. The idea is to develop an encryption backend using GPG, but this is not trivial; Frank told your author:

The handling of the GPG keys is not yet clear, because we have to store them on the client and we don't know how to transmit them using the web interface or WebDAV. If someone has an idea how this could be done in a secure but still usable way, please contact us on the mailing list owncloud@kde.org.

On July 4, Frank will give a talk about the future of ownCloud at Akademy 2010 in Tampere, Finland. Developers who are interested in contributing can find the code on Gitorious and discuss these matters on the mailing list or the #owncloud IRC channel on Freenode.

Taking back control

With the recent trend of many open source users migrating to proprietary cloud storage solutions, it's nice to see that the ownCloud project is working on a solution that should be able to compete with them. While ownCloud 1.0 doesn't look that spectacular and is not well documented, the project's vision is. When ownCloud 1.1 is released in a few months, the software will probably be a lot more polished, and users will then really be able to take back control over their own data.


Index entries for this article
GuestArticlesVervloesem, Koen


to post comments

ownCloud 1.0: towards freedom in the cloud

Posted Jul 1, 2010 15:59 UTC (Thu) by njwhite (guest, #51848) [Link]

I'm really happy this project sounds like it's going well.

It isn't the sort of functionality I envision using myself, at least in the short term, as I'm very happy with git / sftp and the like for the occasions that I need to share files between computers. But this sounds like a solution which is set to be much easier to use, and integrate into appropriate desktop programs (which AFAIK would set it apart from Ubuntu One).

Another nice plugin possibility could be email, for a webmail like interface. For those of us who don't use IMAP or want our email hosted primarily on a server controlled by ourselves (/a server of our choice).

Git storage backend

Posted Jul 1, 2010 16:21 UTC (Thu) by dan_a (guest, #5325) [Link]

There are some other advantages of using Git as a storage backend as well as versioning.

It would give a "free" way of confirming that the data on the server wasn't corrupted as well as providing a simple method of syncing data across multiple servers. Those would both seem to be pretty useful features to me!

ownCloud 1.0: towards freedom in the cloud

Posted Jul 1, 2010 16:24 UTC (Thu) by zooko (guest, #2589) [Link]

This sounds like some good stuff! The ownCloud project has a lot in common with Tahoe-LAFS:

http://tahoe-lafs.org/trac/tahoe-lafs

(Disclaimer: I'm a developer and community organizer for Tahoe-LAFS.)

It would be nice if we could interoperate somehow. We have a kick-ass distributed secure filesystem and we could use more applications like a photo gallery and a podcast catcher. They have applications and need secure storage.

I think I wrote to them a few months back and didn't hear back.

Thanks for posting this and reminding me of the ownCloud project!

Regards,

Zooko

ownCloud 1.0: towards freedom in the cloud

Posted Jul 1, 2010 21:56 UTC (Thu) by ballombe (subscriber, #9523) [Link] (3 responses)

> a completely open source replacement, using the AGPL license,

Unfortunately, the AGPL is not a sane free software license. The only practical effect of the AGPL is to prevent fork, because it make developers responsible for the runtime behavior of the software. On the other hand, users do not need to agree with the license, so they can run it behind a proxy that will remove all references to the source code.

ownCloud 1.0: towards freedom in the cloud

Posted Jul 2, 2010 9:30 UTC (Fri) by nix (subscriber, #2304) [Link] (2 responses)

because it make developers responsible for the runtime behavior of the software
As if we aren't anyway? The runtime behaviour of the software is the only reason we implemented it in the first place...

ownCloud 1.0: towards freedom in the cloud

Posted Jul 2, 2010 12:42 UTC (Fri) by ballombe (subscriber, #9523) [Link] (1 responses)

Most free software license include a disclaimer of warranty, so developers are not liable for the runtime behaviour of the software. This is the opposite with the AGPL.

ownCloud 1.0: towards freedom in the cloud

Posted Jul 7, 2010 11:29 UTC (Wed) by nix (subscriber, #2304) [Link]

We may not be *liable* (in the sense that some lawyer can come and take all our worldly possessions) but I think that we are in some sense still *responsible* for bugs in code we write.

Still swear to Unison for this

Posted Jul 4, 2010 2:05 UTC (Sun) by Velmont (guest, #46433) [Link] (1 responses)

And I don't really see how they let you keep your files offline on all your computers and autosync them. How are they resolving conflicts?

It would be great if they could use Unison as a backend. Or even Tahoe-LAFS, I tried it but it was damn hard to get running, I gave up after a day.

Still swear to Unison for this

Posted Aug 5, 2010 16:36 UTC (Thu) by zooko (guest, #2589) [Link]

Hi Velmont. I just saw your comment. I'm a contributor to Tahoe-LAFS and I've spent a lot of effort trying to make it easy to install. Therefore I would be grateful if you would report to me what made it hard to get running when you tried. The instructions for how to install are here:

http://tahoe-lafs.org/source/tahoe-lafs/trunk/docs/quicks...

Thanks!

Regards,

Zooko


Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds