The Complete Magazine on Open Source

Try Your Hand at Owncloud Development

, / 201 0
Own Cloud
Owncloud is a free and open source file hosting software system. This article will introduce readers to it and also guide them on setting up an Owncloud developer environment.

Owncloud operates in a simple way to set up a cloud storage system (e.g., Dropbox) on your own website. Apart from being a cloud storage system like Dropbox, it allows people to make and share their own application software which has the capability of running their own Owncloud, including text editors, task lists and more. All of this makes it possible to get a little more out of Owncloud than just file syncing. Owncloud is an advanced version of Dropbox. Some of the applications which are currently available are files, documents, a photo gallery, a PDF viewer, music, mail, contacts, calendar, etc.

Frank Karlitschek developed Owncloud in 2010. His aim was to provide a free software replacement to proprietary storage service providers. This cloud storage has been integrated with the GNOME desktop. Integration of Owncloud with the Kolab groupware and collaboration project has been started recently. Groupware is an application software designed to help people involved in a common task to achieve goals, and Kolab is such a free and open source suite.
Owncloud makes it possible to specify a storage quota for users—the maximum space a user is allowed to use for files located in an individual’s home storage. The storage space available is good enough for all kinds of users. Administrators need to be aware, while setting a quota, that it is only applicable to actual files and not to application metadata. This means that when allocating a quota, they should make sure there is at least 10 per cent more space available for a given user. For a beginner, these things don’t matter.

One of the great things about Owncloud is that it is cross-platform, and a number of applications support it. Much of this is achieved because it is open source and uses open standards or defines open application interfaces. Owncloud provides access to your data through a Web interface and provides a platform to easily view, synchronise and share across devices under one’s control. Owncloud’s open architecture is extensible via a simple but powerful application interface and plug-ins, and works with any storage.

Generally, Owncloud is considered an online storage source like the very common Google Drive. The benefit of Owncloud is that the server is on a location that you install it to and not on someone else’s server.
This guide assumes that a LAMP stack is installed and configured on the system. To check whether it is already installed, just try typing ‘localhost’ on your browser. If you see something like what’s shown in Figure 1, then you are ready with the local host.

Figure 1

Figure 1 : Local Host

Now we can start with setting up the Owncloud developer environment.
Make a directory called Owncloud in a location where you have write permission, type the given code in your terminal, and execute it:

sudo mkdir /var/www/owncloud

sudo chown YOURUSERNAME:YOURGROUP /var/www/owncloud

Note: You should replace YOURUSERNAME:YOURGROUP with your own username and groupname.
chmod a+rw /var/www/owncloud

Now you should have a ready-to-develop set-up in your localhost. You can check it on http://localhost/owncloud/core/. You will see something like what is shown in Figure 2.

Figure 2

Figure 2 : Owncloud on localhost

Once you are ready with your set-up, you can clone the core. All source code is available on Github. So we can simply clone it from Github, for which you just follow the commands given below.
First, enter the Owncloud directory, which you have already created. For that, type the following command:

cd /var/www/owncloud

Now we have to clone into this directory from Git. To clone the core, type the following:

git clone

If you are planning to contribute or are interested in working with Owncloud applications, then you can simply clone that also from Git. For that, type the following:

git clone

You can now change your directory to core, and then type the following on your terminal to set up your developer environment:

cd core/
git submodule init
git submodule update
mkdir data
sudo chown -R www-data:www-data config/
sudo chown -R www-data:www-data data/
sudo chown -R www-data:www-data apps/

Once you are done with these steps, you will be able to access your Owncloud with its original credentials. You can store your files, etc, in the same setup.
Contributing to Owncloud
As I mentioned earlier, Owncloud started out in 2010. It’s still under development and the community supports new contributors as well as beginners with essential requirements.
You can find Owncloud issues on Github. For beginners, I recommend that you start with minor jobs. Owncloud has been listed among GSoC (Google Summer of Code) participating organisations, and also on OPW (the FOSS Outreach Program for Women). The IRC channels of Owncloud are very active and are really helpful.

If you are interested in cloud computing or private clouds, I suggest you start contributing to Owncloud and feel the beauty of cloud computing.