Warning: You are viewing old, legacy content. Kept for posterity. Information is out of date. Code samples probably don't work. My opinions have probably changed. Browse at your own risk.
Dec 12, 2013
This is the second in a series of posts where I document the process of implementing your own suite of cloud services.
Yesterday, in How to Be a Cloud Survivalist (part 1), I discussed why you might want to do this. Just in case I didn’t provide enough motivation in yesterday’s article here’s a quote from Richard Stallman’s How I do my Computing:
People sometimes ask me to recommend an email service. The two ethical issues for an email service are (1) whether you can use it without running any non-free software, and (2) whether it respects your privacy... I have no way to verify that any email service is satisfactory. Therefore, I have no recommendation to offer. However, I can suggest that it may be wise to use an email service that is not connected with your search engine. That way you can be almost sure that your email contents don't influence your search results. You shouldn't identify yourself to your search engine in any case.
— Richard Stallman
As Stallman points out, there’s no way to verify that any email service truly respects your privacy, so let’s build our own! We are dealing with more than just email here, so today I put together a requirements list, and look at some of the options.
Like most people of my age, my first email address was linked with my ISP. Perhaps it made sense at the time that the place I dialled into for an internet connection was the place that collected my emails, but of course, it wasn’t long before I changed ISP and my email address changed. Then I went off to university and was given a brand new academic email address.
While at university I realised that I could have my own online identity, so I registered my own surname as a domain. I naively registered the domain for free with a company that offered a free domain registration in exchange for using their email and ISP services. Maybe this should have taught me the real cost of free, because of course, this company eventually went bankrupt, taking my lovely personalised domain name with it. I wasn’t lucky enough to grab the domain when it eventually was released back into the registration pool, so I lost it forever.
I started my first company in 2005, and started using that as my main email address, but then after the company was acquired I needed to change email address again. At this point I’d learnt my lesson, I purchased darrenmothersele.com and I’ve been here ever since, and I don’t plan on leaving.
If you’re reading this then I’d take a guess that email is a predominant form of communication for you. I’d be interested to know what percentage of you are using your own domain name as your email address. Are you? Or, are you using Gmail, Hotmail, your ISP, your work? When you can register a .co.uk for 3 years for about £10, there’s really no excuse.
The only thing more upsetting than seeing my friends and colleagues using a third party email address is seeing Joe the Plumber with his BT Internet email address printed on the side of his van.
Hopefully I’ve persuaded you to get your own domain name, but you’re going to need one anyway to run your own cloud services from, so how do you pick a good one? On The Next Web, Boris suggests:
Try to avoid using something funny. Look at it like this: you want this name to last you 50 years. Use your last name, or a combination of your last name and first name, and keep it simple.
You will need an SSL Certificate to go along with your domain. These typically cost upwards of £50 per year, with the price varying depending on much verification they provide (how well they guarantee you are who you say you are), how many (sub)domains they certify, and how much warranty they provide.
SSL gives you an encrypted tunnel from your computer to the server, and we’ll be using that for all communication, sending emails, syncing files, etc. You can use a self-signed certificate if you don’t mind the browser warnings, or go for one of the cheaper £9 per year SSL certificates that don’t have the same level of vetting as the more professional ones, but are enough to get rid of the browser warnings if you are planning on opening up your services to other users.
If you want to be a true cloud survivalist then you will want to host your own server at home. You’ll need a good, reliable internet connection, with decent upstream bandwidth and a UPS or backup power supply. I’m not sure I can meet these requirements, and I don’t really want a server in my house, so I’m using a hosting company for this. I’m not too concerned at this stage as long as I have my own server that is under my control.
You need to find a hosting company that you like and trust. This depends on what your priorities are, personally I look for price, speed, reputation, amount of effort they put into providing developer documentation, API, privacy, and use of renewable energy sources.
In the example configurations to follow in later parts of the series I’m using a cloud server from Digital Ocean that has 1GB of memory. This will cost you $10 per month. We’re starting with just the one server, but in a future instalment I’ll talk about the possibility of adding a second backup server, and other alternative strategies for dealing with failure and backup.
Digital Ocean have a data-centre in Amsterdam, which may be good news for those of you with surveillance concerns as the Netherlands has strict privacy laws. I couldn’t find any mention renewable energy sources in their feature lists, but they do have all SSD drives, which are faster, more efficient, and lower power than regular hard-drives.
Before deciding exactly what software I need, or looking at the options, I’m going to summarise my requirements:
In addition to those initial requirements, there’s some other nice to have features:
And finally, for future consideration:
There are some other cloud services that I may look at moving to my own cloud, but for now these are the core bits of technology I need to replace.
In the next post I’ll take a more detailed look at Email, and actually start setting up the server. We’ll look at how to reliably send email that doesn’t get caught in spam filters, and look at simple way to set-up the full stack of email server software using iRedMail.