Manage your own datawith ownCloud 2
Home-Grown Cloud
ownCloud [1] is an open source online storage service that lets private users and communities run their own cloud storage service on a private root or intranet server. In contrast to closed or commercial offerings like Google Docs, Dropbox, or Ubuntu One, users keep control of their data, so they can store data, share it with others, and access it from anywhere in the world.
ownCloud started life in the spring of 2010 as a KDE project based on open standards but not requiring any KDE application as a dependency. It is free software released under the Affero General Public License Version 3. Version 2 of the software was released October 11, 2011. An online demo installation is available for public testing [2].
An ownCloud server stores user data and offers interfaces for client access. The data can be normal files such as documents, music, or images but can also include records such as contacts or calendar entries. Data access is handled via WebDAV and is possible on any Linux, Mac, or Windows system, as well as on mobile devices. Additionally, ownCloud provides a convenient web interface that allows administrators to configure the system and manage users and data.
The integrated plugin system extends ownCloud by adding, for example, an HTML5 music player, a synchronized calendar, and an address book and letting you develop your own functions as well.
Setting Up the Cloud
You can install (your) ownCloud on a private root or corporate server running on Linux, Windows, or Mac OS. To run an instance of ownCloud, you need PHP, Apache, and MySQL or SQLite as the database back end. Some Linux distributions already include ownCloud packages, but only rarely will you run across version 2. To pick up new releases and developer versions, you can visit the Git repository [3] or download the tarball.
For this article, we installed ownCloud 2 from a tarball on an Ubuntu 11.04 machine. The installation guide [1] will help you here. The first time you access ownCloud in your browser, it will prompt you for configuration parameters, and after you provide the details, your cloud is ready for action. If the permissions for the storage directory are not set correctly, you will get an error message in the ownCloud web interface.
Speaking of security, we strongly advise you to access data over encrypted connections only and to deploy the Suhosin PHP security extension [4].
Using ownCloud
To access your ownCloud storage directory transparently, you need a file manager with WebDAV or Secure WebDAV support. On Linux, you can also use a filesystem driver such as davfs2 to mount the WebDAV storage directory as a local filesystem and thus make it globally accessible to all applications on your system. However, you can't use WebDAV to change file permissions in the cloud. Also, ownCloud 2 doesn't let you temporarily store data locally for offline operations, although a synchronization service is currently under development.
Although the main interface for managing files is supposed to be WebDAV, the web interface is useful to both ownCloud users and administrators. The Ajax-based web front end with its modern design is user friendly and responds quickly. The current version will cooperate with most popular browsers, although with some minor differences. Calling the site in our lab worked best with Firefox when compared with Konqueror, Chromium, or Internet Explorer. Also, you can render the view on smartphones, although the ownCloud developers might want to modify the layout to make this easier.
Using the web interface, you can upload and download files, as well as delete files or create folders. Also, you can select multiple files or complete folders for download, which ownCloud then automatically compresses to ZIP files. However, some feedback messages important for users are missing, such as an attempt to overwrite a file of the same name or exceeding the maximum number of files that can be uploaded; the default here is just 20.
To share data, users can click the Share button in the web interface and then decide whether to share the file with selected users or make it globally accessible (Figure 1). ownCloud expounds on the theme of the Internet as a social network by supporting sharing and collaboration between users. The web interface helps administrators manage users and groups and restrict their storage resources using quotas. ownCloud also supports LDAP and Open ID for authentication purposes.
Own Music
ownCloud has a media plugin that automatically identifies uploaded tracks and albums and adds them to a playlist. The HTML5 audio player mentioned earlier plays the tracks in your browser. The media plugin also emulates the Ampache API [5] for web streaming, which paves the way to your own audio streaming server. Desktop media players that can handle the Ampache interface will play tracks directly from your ownCloud. The Amarok player, for example, had no trouble opening a connection to ownCloud in our lab and played back the tracks locally (Figure 2).
To help it identify metadata in tracks, ownCloud relies on the mp3info
tool, which is very useful for MP3 files. But when faced with formats like OGG, WAV, or WMA, either ownCloud will not add them to the music catalog or the browser simply will not play the tracks.
The software uses URLs, which you can see in the web interface below Preferences | Personal, to manage access to files, music, the calendar, the address book, or other functions that ownCloud offers via its plugin system. Users can add these to the applications on their client device to enable access. ownCloud 2 implements the WebDAV, CalDAV, CardDAV, Ampache, and Open Collaboration Services (OCS) [6] open source standards (Table 1).
Tabelle 1: Supported Open Standards
Standard |
Data Type |
HTML5 |
Markup language for web content |
WebDAV |
Access protocol for files |
Ampache |
Access protocol for music metadata |
CardDAV |
Access protocol for contact data |
CalDAV |
Access protocol for calendar data |
OCS |
Web service API for social networks |
In our lab, we had no trouble synchronizing calendar and address book entries with an Android 2.1 smartphone. We used the phone's internal address book for this and an external application for the calendar. However, we were unable to do this with an Apple iOS device using the default address book and calendar applications.
Client Connectors
As a KDE project, ownCloud sets great store in interacting with local applications on the desktop environment. For example, ownCloud supports the Open Collaboration Services API, which it uses to transfer important messages to OCS-compatible client applications (e.g., if it runs out of memory or when an access conflict for a shared resource occurs). This collaboration is on the roadmap, but we were unable to test it in our lab because of a lack of documentation.
Despite some failings in version 2, the ownCloud project quite obviously has ambitious plans. Work is currently in progress on additional functions, such as an image gallery, file encryption, and an online text editor. Additionally, the team is working on expanding support for media data and on code for connecting to and synchronizing Android and webOS devices. The longer term roadmap envisages file versioning and recovery.
Conclusions
ownCloud 2 is a very promising online data storage service with useful cloud functionality. Its strength, however, is its do-it-yourself character, and users conscious of data security will not need to be reminded why. Considering ownCloud's current state of development, users need to be data crawler dissidents and be unafraid of experimenting.