Introduction to OwnCloud Server: File Sharing Under Your Control

What's OwnCloud?

OwnCloud provides a free, open source file sharing and application server and platform with desktop and smartphone applications, allowing you to create a personal or corporate cloud under your own control. If you're a Dropbox user, then you're familiar with the advantages of a remote cloud which keeps files on all of your desktops and devices in sync and allows you to share them with other people.

Dropbox has come under scrutiny for privacy and security issues as well as its controversial decision to appoint former Bush administration Secretary of State Condoleezza Rice to its Board of Directors. OwnCloud allows you to host and secure files on your own server, providing you increased control over your remote files.

There's even an app store to expand the capability of your OwnCloud. The apps include email clients, news readers, video streaming and more.

This is the first tutorial of a series I'll be focusing on with OwnCloud. I do participate in the discussions below. If you have a question or topic suggestion, please post a comment below. You can also reach me on Twitter @reifman or email me directly.

Who Built OwnCloud?

Open source developer Frank Karlitschek decided to build OwnCloud after giving a talk on data privacy, warning people about privacy with cloud vendors such as Dropbox:

So, build it yourself they said. Sure, I’ve built things in the past, so sure, I’ll do it. And there is where I started my odyssey, first, to protect myself, my friends and my colleagues from the snooping of governments, and other bad guys, and later – as I saw the worldwide interest grow – to build a real and successful project. —OwnCloud Founder Frank Karlitschek

Karlitschek intentionally used open source technologies so that the code "would be completely transparent (so unlikely to contain 'back doors' to my data)."

He also wanted to support application extensions to support a Google News type application, virus scanning and file logging.

What Languages Is It Built In?

Karlitschek said they "evaluated different options to find the right technology that runs on every relevant platform, scales from tiny servers to big clusters, has all the needed features and is known by a big number of developers. So we choose PHP and JS for the server part, C++ for the Desktop Syncing Clients, Objective-C for iOS and Java for Android."

Many years ago, I was part of a nonprofit building open source tools for other nonprofit organizations. I remember being disappointed when our Director of Technology chose Java for new versions of our technology instead of PHP, which is a much friendlier, accessible platform for our development community. The organization imploded soon after for unrelated reasons.

I appreciate that Karlitschek kept in mind the need to use a platform that a large community of developers could also engage with.

The OwnCloud Enterprise Edition

Like Automattic and WordPress, OwnCloud is backed by a for profit corporation offering a premium Enterprise edition for larger users. They offer a variety of datasheets if you wish to learn more.

Hosting OwnCloud

There are a number of options for hosting OwnCloud. You can do so on your own dedicated servers. You can install OwnCloud as an application on a virtual server at a hosting company such as Digital Ocean; I'll describe how to do this below. Or, you can subscribe to an OwnCloud service provider (ASP). Some of these even offer freemium plans—but be sure to evaluate the reputation, privacy and security provided by your ASP.

Another interesting option is offered by the folks at MacMiniColo. They published a guide to installing and administrating OwnCloud: Install Owncloud on a Mac mini server (Mac Mini Colo Blog). They provide a dedicated server hosting facility that allows you to ship them a user-configured MacMini or purchase one of theirs.

Installing OwnCloud at Digital Ocean

You can install OwnCloud on your own server via their Download page. You can install from the code, or their web installer or pre-built packages. The latter is nice for easily maintaining OwnCloud with the latest updates and security packages.

For that reason, for this tutorial I'm going to show you how to install OwnCloud at Digital Ocean. If you've read some of my tutorials before, you know I'm a fan of theirs for a number of reasons. Digital Offers a variety of pre-configured applications as one-click installations, and OwnCloud is now one of them.

Getting Started

Create a Droplet

From the Digital Ocean dashboard, click the Create Droplet button and type in your desired hostname. I'm going to use owncloud.lookahead.io. Digital Ocean recommends having at least 1 GB memory which requires a $10 per month droplet.

You can generally use the default region Digital Ocean recommends unless you need to be able to communicate on Digital Ocean's intranet with other droplets you have:

Click on the Applications tab and click the ownCloud 8.x image button:

Submit the form and you should see the creating your droplet progress screen:

When it's complete, you'll see your droplet on the dashboard:

Now, configure your domain name DNS to point to the droplet, i.e. set an A record for the subdomain or domain name to the IP address:

You'll also receive an email address with the password for the server:

Once your DNS changes propagate you can visit your site—but you'll get this warning. OwnCloud requires you to add this domain to its listed of trusted domains.

When you click the grey button, you should see the general login screen:

Log In to Your OwnCloud Dashboard

However, you may have noticed we don't have our dashboard credentials yet:

To obtain them, use the SSH login credentials and a terminal application to log in to your droplet server:

You'll see the Dashboard credentials when you log in. Ubuntu will also request you set up a new root password.

Then, you can return to the browser and log in to your OwnCloud.

When I finally clicked that grey button regarding trusted domains, I ran into a problem; it gave me an error. But I was able to log in using my IP address in the browser bar. Here's the initial OwnCloud dashboard:

Encrypting Your Cloud Files

You can also enable the Encryption application which encrypts the storage stored on your Digital Ocean droplet. Click the Files dropdown and click + Apps:

Browse the Not enabled filter to Enable Server-side Encryption:

Click Enable to begin, and then log out and log in once more. Then the continuous encryption process of your cloud will begin.

Comparing Pricing

If you're an individual using Dropbox, it's free up to 2 GB. However, you can earn extra storage through referrals. My free account currently has 10 GB of storage. For $9.99 monthly, you can receive 1 TB per month. The business plan begins at $75 monthly for five users with unlimited storage.

Hosting at Digital Ocean does not offer comparable storage at these prices. The 1GB memory droplet at Digital Ocean includes a 30GB hard drive for about $10 monthly, but storage does not scale well with price. For example, an 80GB drive is $80 per month and a 640 GB drive is $640 per month, primarily because Digital Ocean exclusively uses fast SSD drives.

Other hosting providers may offer more storage per dollar than Digital Ocean, but at slower access speeds.

What's Next?

In future posts, I plan to explore the desktop and smartphone applications for iOS and some of the OwnCloud app extensions such as Calendar and News.

Please feel free to post your questions and comments below. You can also reach me on Twitter @reifman or email me directly. You can also browse my Tuts+ instructor page to see other tutorials I've written.