Using ownCloud as a Home Based Personal Cloud

I use many devices in many places and find simple set-it-and-forget-it services like Dropbox make my life much easier. I always need access to many different files on a daily basis. Yet I like many others are not comfortable with some of the privacy policies or terms of service most 3rd party services force you to agree to. Plus there is the expense of many of these services. With broadband and DSL speeds offering such great speeds it seems a waste to have a computer at home with much of your music and videos along with important files much too big to be stored even on Dropbox.

Using ownCloud to be your Own Cloud

Most home routers and WFi routers have built in support for dynamic DNS. This allows you to have a subdomain (or top level domain) pointed at your home connection that used DHCP to give you an IP. This means your IP can change and the dynamic DNS service repoints your domain to the new IP. Thus, allowing you to access your home network from anywhere. What I will be describing is installing all needed packages and ownCloud on Debian based system, namely in this example Ubuntu Server Edition 12.04 LTS.

You can also use this example to setup ownCloud using the AWS Free Tier to create your own true cloud based Dropbox replacement for you and your entire family. Simple setup an AWS account and enable EC2, and S3 (optionally). Then fire up a micro instance of Ubuntu Server. Connect an additional  EBS volume for added storage. You can also use this same instance to run your own VPN/SSH tunneler, but that is for another post.

ownCloud has a simple howto for installing on your Apache server. One caveat is be sure to edit your php.ini file (/etc/php5/apache/php.ini) to allow for the largest size upload you will want to have. Pay close attention to upload_max_filesize, memory_limit and post_max_size.  You will also need to edit the .htaccess file in the root of your ownCloud install since it defaults to 512MB limit (if you want larger).

Once you install ownCloud and have it working you can get a free SSL certificate from StartSSL to add a layer of extra security between you and your ownCloud install. What I do is take a domain I own and create a subdomain like and make it a CNAME for the dynamic DNS name I use. This way you can authorize ownership of the domain to get the free SSL cert. Be sure to add this domain as a ServerName or ServerAlias in your Apache vhost file.

As a backup I sync my home install of ownCloud to AWS S3 using S3cmd doing a differential nightly in case of a worst case scenario.