Take control of your personal cloud services by managing your own one. The benefits are:
- a single interface for your files, notes, feeds, etc.
- better control of your information
- consolidate your payments into a single hosting provider instead of paying fees to multiple services
The main drawback of the consolidation is of course the fact that migrating services takes a few hours of importing data, learning new interfaces, setting up cron jobs on the server, etc.
Setting up my own cloud service was partially inspired by Joseph Zhou’s post “Deploy ownCloud with Bitnami in Google Cloud Platform“.
Cost of your own personal cloud
A total of $69 per year excluding taxes.This is the sum of $5 per month of DigitalOcean’s hosting. You can also buy a Comodo’s PositiveSSL certificate at Namecheap by $8.38 per year. Alternatively you can get a free SSL certificate from from StartSSL. Follow the tutorial “How To Set Up Apache with a Free Signed SSL Certificate on a VPS” to set it up.
In terms of file hosting only, DigitalOcean’s 640GB SSD Disk at $640 / mo is a very expensive service compared with Dropbox’s monthly fees of $9.99 for 1 TB of space.
I believe however that DigitalOcean prices will go down faster of a per GB basis than Dropbox will ever do for the cheaper plans.
Hosting in the cloud
I set up a Droplet on DigitalOcean for two reasons: they claim a 99.99% Uptime SLA and they have a few datacenters in Europe. The cheapest plan is about enough for personal use: 512MB Memory, 1 Core Processor, 20 GB SSD Disk and 1 TB Transfer by $ 5 / mo.
You can choose an Ubuntu image and and connect to it via terminal with your ssh keys.
The one issue with Owncloud is that they do not provide a simple client syncing installation for Ubuntu. Apparently the open source community are not interested in maintining one. Instead there is an OpenSUSE installation package that does the job.
Owncloud’s with a minimalist default theme is clean and simple. The features of the apps are all core and even the developed and maintained by 3rd parties work as expected. You may miss some of the advanced bells-and-whistles of your original applications.
Setup your DNS at your domain registrar by setting an A record pointing to the IP address of your droplet. I did so for an ad-hoc subdomain: whatever.domain.com.
Securing your connection with SSL certificates
Configure your server to require using HTTPS. This is probably the geekiest bit of the migration process. Purchase a Comodo certificate from Namecheap and upload the .crt and .key files to DigitalOcean.
You will want to force https on browsing clients. I tried, and failed, setting up the redirections from http to https, so I configured the .htaccess file instead at /var/www/owncloud/.htaccess
Client-server software for file storage
Install Owncloud by clicking on “One-click apps”. As an admin you can install and enable the apps that you want. As a user you have to import data like feeds on .opml from your reader, your .iCal for your calendar, etc.
Client Owncloud for your local computer
As per https://doc.owncloud.org/desktop/1.6/installing-linux.html#installing-linux
$ sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/xUbuntu_14.04/ /' >> /etc/apt/sources.list.d/owncloud-client.list"
$ wget http://download.opensuse.org/repositories/isv:ownCloud:desktop/xUbuntu_14.04/Release.key
$ sudo apt-key add - < Release.key
$ sudo apt-get update
$ sudo apt-get install owncloud-client
The local synced folder is set at the config/config.php file
‘datadirectory’ => ‘/var/www/owncloud/data’,
You can change the data directory.
1.) sudo cp -R /var/www/html/owncloud/data /home/owncloud
2.) sudo chown -R www-data.www-data /home/owncloud/
(datadirectory => /var/www/html/owncloud/data)
(datadirectory => /home/owncloud)
location by editing:
Update your home Dynamic DNS
$ sudo /usr/local/bin/noip2 -C
Auto configuration for Linux client of no-ip.com.
Multiple network devices have been detected.
Please select the Internet interface from this list.
By typing the number associated with it.
Please enter the login/email string for no-ip.com email@example.com
Please enter the password for user firstname.lastname@example.org **********
Only one host [subdomain.domain.tld] is registered to this account.
It will be used.
Please enter an update interval: 30
Do you wish to run something at successful update?[N] (y/N) y
Please enter the script/program name startnoip
New configuration file ‘/usr/local/etc/no-ip2.conf’ created.
The apps on the cloud
The star application of Owncloud. Unfortunately, there are not specific installation packages of Owncloud client for Ubuntu 14.04 and newer. Owncloud suggests using OpenSUSE’s packages, which happen to do the job just fine.
Note taking and archiving
I did not find the Notes app capable of replicating even the most basic features of Evernote. If you are curious how it would work for you, export your content on Evernote as .html files and import them into OwnNote. You need to set up your syncing intervals with crontab directly on the server.
Warning 1: You cannot import the tags or categories from Evernote
Warning 2: You will miss a search engine for your notes!
Export your feeds from Netvibes as .opml and import them into the News app. Setup the cron job with the command crontab. You will enjoy a cleaner interface than Netvibes. You will also be able to focus on the text rather than the images as in Flipboard, etc.
A nice surprise: Gpxpod, a cool app to read and compare your .gpx files. It is a simpler alternative to Sports-tracker.com
$ python -V
$ sudo apt-get install python-pip
$ sudo pip install gpxpy
$ sudo pip install geojson
I am yet to convert my .ics to .iCal file in order to import it into the app
Music streaming, gallery of pictures
Nice-to-have apps that work out of the box and do what they claim on the tin.
This is one cloud service that I will not move out of Pinboard.in.
I would love to have a Wallabag-like self hostable application for saving web pages. Also Airdroid for connecting to portable devices on own’s one LAN via Wi-Fi.
I hope that IFTTT integrates owncloud servers in its catalogue of recipes.