owncloud screenshot

For privacy of myself and my family

As the resident techie in my family, I feel the need to do my part to help decentralize the web. While I think that organizations like the Electronic Frontier Foundation can do great things for promoting digital freedom, in the end, it is and always will be up to the laypersons to protect themselves.

We know the NSA spies on us. We know Facebook sells our data. We know Google sells our data. The same goes for Yahoo, Microsoft, and Apple. So what is the layperson to do? Obviously one can’t completely immunize oneself from these companies.

However, I look at my child and know that I need to do something to help protect them. I remember reading on reddit a user’s quote from their grandfather that I thought was very profound: >”In the future, privacy will be the biggest asset.”

So I set up OwnCloud on my webfaction hosted site. While it does require some techincal know-how, I’ll attempt to write up an explanation of the process. I’m excited about this for a few reasons. It means I can host all my data without consenting to Terms Of Service or End User License Agreements from a Facebook or a Google or a Microsoft, I can set up user accounts for my wife and parents (so they can privately share photos of our child), I can share docs with friends easily, and since OwnCloud is open source, I can write my own modules and customize the software in any way I choose.

This isn’t intended to be a step-by-step walkthru, just more to show that it really isn’t all that tough to accomplish.

The hosting

In cubicle land, people ask for “the 30,000 foot view” when they want to say “I have no idea how any of this works, can you explain it to me?” So I’ll start with that.

WebFaction is a web hosting provider. What that means in a distilled sense, is that they have a big, big network of computers that are connected to the internet that they manage for you. The difference between these computers and the computer you’re reading this on is that they’re able to serve pages to the rest of the internet. While this is technically feasible with the computer you’re reading this on, you would likely be hard pressed to get your ISP to allow you to do so at a reasonable price. Its simply easier to pay for web hosting for this type of thing. If you want to have physical access to your data, you can set up a backup machine locally to rsync all the data on your Webfactional server.

###Two disclaimers

Firstly, this post is a half-hearted attempt at getting some affiliates at Webfaction. If you click on my affiliate link and purchase and webfaction products, my hosting bill goes down a bit.

Secondly, let me point out that people smarter than me would “Well, Actually” me into next Tuesday for everything in this writeup. What I mean is that I don’t really know what I’m doing here, but I got it to work and I’m proud of that, and this post is basically the post I wish I had read before trying to set everything up.

Webfaction subdomain

When you get a server at Webfaction they give you the sub-domain yourwebfactionusername.webfactional.com. If that’s cool with you, then you don’t need a domain name. I wanted to be able to access my stuff at danschnau.com, so I had to buy it.

A ‘real’ domain name

Okay, so with our host and our computer that is connected to the internet, the next thing we need is a domain name. I bought my name danschnau.com because I’m just that egotistical. To buy a domain name, you have to go through a registrar, which is basically a company that works with the gods of the internet to give you the rights to a domain.

I bought my domain through lithium.com and it cost $15 for a year. I like to think of it as the cost of a nice lunch. You’ll have to give your full name, address, and a few other things that are assigned to the Domain name. Once you bought the name, you can do a WHOIS command to verify you now own the domain. One of my favorite things about Webfaction is their documentation - here is a great helpdoc for hooking up your domain name.

Note that anyone can perform this command and get the details for your domain, so remember that while you do gain privacy from self-hosting, it certainly does not make you anonymous. Anonymity(not privacy) on the internet is long gone, if you ask me.

The software

Okay, the networking part is done, now for the software. The hardest part of all this was understanding how the webfaction control panel works - now that I understand it, I can see why it’s laid out the way it is, but I had trouble as a newbie.

MySQL database

schnaudb OwnCloud works with a few different databases, but I’ve heard it performs better with MySQL over SQLite, which is easier to configure. So the first thing is to set that up. Again, the Webfaction helpdocs are going to be much better than anything I could write here. You don’t need to do much other than just set up the database. Remember the name of the db and your username and password. The OwnCloud install scripts will create the tables and stuff.

PhpMyAdmin

For the longest time, I could not understand what the heck PhpMyAdmin was, or why everytime I tried to learn how to start a website people told me I needed it. Basically, PhpMyAdmin is a tool used to control the MySQL database so you don’t have to learn how to control MySQL via command line. In this case, you don’t need to do anything with it. I just wanted this written down in case someone else has the same question I did.

OwnCloud

Okay, time for the fun, semi-technical part. Webfaction doesn’t have a one-click installer for OwnCloud but it is still pretty easy to get running. OwnCloud is a PHP application, so we just need to create a custom PHP app and run the install scripts from there. What that means is that Webfaction will give you a folder in your /home/_username_/webapps/ directory that you tell it (I just called mine owncloud), and in that folder PHP will run on top of the Apache Web Server.

Once again, the Webfaction help docs are great for help with this.

Once the PHP app is set up, we need to get the tarball from OwnCloud.org, unroll it into that /home/_username_/webapps/ folder, then we can go back to our friendly neighborhood web browser.

So, firstly SSH (or putty) into your server.

ssh _username_@_username_.webfactional.com

Then download the tarball of the latest OwnCloud release (6.0 in my case).

wget http://download.owncloud.org/community/owncloud-6.0.0a.tar.bz2

Then unpack it into your /webapps/. This will dump it all into a folder /home/_username_/webapps/owncloud.

tar -xjf owncloud-6.0.0a.tar.bz2 -C /home/_username_/webapps/

Almost done. Configure your website to serve up the webapp. You can see two of my sites, one called cloud (my OwnCloud instance) and one called dsschnau (this blog).

websites in the control panel

Then, you can fire up the OwnCloud installer! If you don’t buy a domain, you’ll get to it by visiting username.webfactional.com. If you did buy a domain and set it up, then visit that domain name.

You’ll get a simple setup screen. Unfortunately I didn’t think to take a screenshot when I set mine up, but here’s a nice writeup with a screenshot of what I’m talking about. Give yourself an admin username and password. Then click ‘advanced’, set the db to MySQL. Enter your MySQL username/pass, under the database name, enter the name you gave your MySQL databse, and under the hostname enter localhost.

Then hit go, and that’s it! You’ll have your own cloud server ready to roll. Not such a hard way to stick it to the man if you ask me :)