ownCloud was launched at Camp KDE in January 2010 by its founder, Frank Karlitschek. (Mr. Karlitschek is now the CTO of ownCloud, Inc.) The goals of ownCloud, as laid out at the KDE conference, are ambitious: easy cloud setup and management, and ubiquitous access to your data from multiple devices wherever that data may be -- on local storage, hosted storage, or even on social networks. ownCloud also wants to give us the ability to mash up and connect data from different providers, while maintaining privacy and security. While they're at it, I'd like them to provide pink unicorns and rainbows too, which seem about as probable as everything else ownCloud is promising.

But a unified, friendly method of controlling our own stuff is a natural evolution of life online. So far, though, this has been as elusive as pink unicorns and rainbows as vendors cling to lock-in and incompatibility. Mom's on Facebook, Grandma's on G+ and Flickr, and Dad thinks if it's not on Goodreads it's not worth bothering with. So we're juggling multiple accounts, watching services come and go (MySpace, anyone?), exposing our personal data to vendors who claim to own everything -- and we have no rights. "Solutions" like letting Facebook insert its tentacles into all of our online activities are less than attractive.

[ 10 best (unknown) open source projects ]

ownCloud is an open-source effort to put control back in our hands. It is still young and has rough edges, and has a way to go to achieve its ambitious goals, but it is already useful and exceptionally easy to use. You can easily set up and manage data storage and sharing, and shared calendars and contacts. The server runs on Linux, Mac OS X, and Windows, and it has clients for desktop and mobile platforms. There is an active and growing developer and user community, and improvements are coming thick and fast. This is the #1 cloud project to watch, in my occasionally humble opinion.

That syncing feeling

Use the sync client to share and synchronize files and directories between any Linux, Mac, or Windows PC and your ownCloud server. The client creates an ownCloud directory, and any files that you copy into this directory are automatically uploaded and synchronized with the server. You can share any directory on the client machine, including network shares (Figure 1).

If you're having problems, open the ownCloud sync client from the command line with owncloud --logwindow so you can see exactly what is happening (Figure 2).

Android and iOS users get to play too, by fetching their respective apps from Google Play or the Apple App Store.

Enable password recovery

If you ever lose your password, you can get it back with ownCloud's password recovery. First configure your mail server in /var/www/owncloud/config/config.php, then enter your email address on the Admin page of the Web GUI. Then whenever you bork your password, ownCloud will email it to you.

Users, groups, and sharing

You can create ownCloud users and groups on the Users tab on your ownCloud Web control panel, and these are independent of system user accounts on the host server. So you can make up any usernames and logins you want without giving them system logins.

Look on your Admin page on the control panel for the "Enable Resharing" checkbox. The default is to restrict re-sharing files that you own only within your own ownCloud user group; if you check "Enable Resharing," then anyone you share files with can re-share them.

When you click the Share button for any file, you have an option to "share with private link," which creates a hidden URL for the file, and then you have the option to share it within your ownCloud group, or to email the link to anyone.

Keep in mind, though, that sharing files is like sharing secrets: once they're out, you don't have control anymore because there is always a way to bypass restrictions.

Limiting file sizes

People aren't always clueful about file sizes, and you don't want your storage quota blown through no fault of your own (or through your own fault, either). So you can limit the size of uploaded files on the Admin page. You can also enable downloads to be compressed into zip archives (Figure 3).

Versioning and history

Versioning is enabled by default (Figure 3), so every time you upload a changed file, ownCloud keeps a copy of the older versions. You can see a list of all the versions by clicking on the History button next to the filename, and then clicking on the one you want to see. But that's not all -- you can also preview your files in your ownCloud control panel (Figure 4). Yes, that's right: preview text documents, audio files, videos, photos -- all of them.

Do-over by deleting config.php

ownCloud is written in PHP, and the main server configuration file is /var/www/owncloud/config/config.php. If you make a hash of your server configuration, delete this file; the server will re-write it with the default settings and you can start over. This does not touch your data files. config.php has many options beyond what the Web GUI supports, and you can see all of them in /var/www/owncloud/config/config.sample.php.

WebDAV extends sharing to browsers and file managers

WebDAV is enabled by default, so you can access your files with any Web browser. Look on your Personal page for the correct browser URL, which will be something like http://servername/owncloud/remote.php/webdav/. Enter the URL in a Web browser, enter your login and password, and you'll see a listing of files (Figure 5). You can also access your WebDAV shares from any file manager that supports the WebDAV protocol.

Some applications are not WebDAV-aware and only let you save files to a local directory. You can get around this by attaching WebDAV to local folders. You can also configure it to log you in automatically. To set this up just follow the nice instructions in the ownCloud Documentation Centre.

Shared calendars and contacts

How many shops are paying through the nose for an Exchange server and locking themselves in to the Microsoft software stack when all they want is shared calendaring and contacts? Way too many. It's silly. ownCloud's shared calendaring supports all of the important tasks: scheduling single and repeating events; sharing with particular users, groups, or the public; and exporting to any applications or servers that support the CalDAV protocol, such as Apple's iCal, Zimbra, Google Calendar, Evolution, Thunderbird, CommuniGate Pro, and many more. You can also import data from other calendars. It's fast, it's easy, and you don't need to study a manual to figure out how to use it (Figure 6).

Creating and sharing contacts is just as easy. You can create multiple address books, control who has access to them, import and export contacts in the standard VCF format, and share with any client or server that supports the CardDAV protocol.

Your personal music and video cloud

You can stuff your music and videos into your personal ownCloud, and then access them from anywhere via a Web browser -- even a Web browser on a mobile device. But that's not all ownCloud can do; it also uses the excellent Ampache Web audio and video file manager. Ampache lets you manage your ownCloud multimedia files with any Ampache-aware media player, like the superior cross-platform VideoLan Client (VLC), WinAMP, Amarok, Amdroid, and many more.


ownCloud is extensible via plugins, which it calls apps. Look on the Apps tab to see a list of available apps that are installed on your server, both internal and third-party, and to see which ones are enabled. ownCloud is a big glob of PHP, so any PHP coder can write custom apps and add them with a button click. Visit ownCloud's Apps page to find and share them.


ownCloud supports SSL, and the Encryption App (new for ownCloud 4) adds encryption, so you can protect your files in transit and anywhere they are stored. The encryption app uses your ownCloud password.


Who says eye candy doesn't matter? You can dress up your ownCloud appearance any way you like, provided you know how to write CSS stylesheets. ownCloud's Theming page tells how to add new themes to your ownCloud server.

ownCloud license and versions

You can run the ownCloud server on Linux, Mac, or Windows, though of course I prefer Linux for its stability and efficiency. ownCloud is free software, licensed under the Affero General Public License (AGPL). It is already included in OpenSUSE, Ubuntu, and Debian Unstable, and will be in Fedora 18. There are four editions: community, business, enterprise, and service provider. The business and enterprise editions add paid support and some proprietary apps. The service provider program is for vendors who want to sell hosted ownCloud services. All are available for you to use and play with today -- so what are you waiting for?

[ 10 questions for ownCloud CFO Dan Curtis ]\