So after a few late nights and a few more lost emails. I have my website back up and running. I've made a few changes (hopefully for the better) and a few mistakes (hopefully never to be repeated).
- Moved hosting from shared hosting with Bluehost to a virtual private server with DigitalOcean
- Moved my domain names to Namecheap
- Changed content management from Wordpress to Ghost
- Implemented SSL with automatic renewal (All for free thanks to Let's Encrypt)
Setting up Ghost and NGINX
Well this wasn't much of a challenge as I had already a test setup running in a virtual machine at home. So I cheated and used the Ghost application image from Digital Ocean. This allowed me to quickly deploy Ghost and worry about the other issues.
Removing all my DNS records
Whilst switching my domains to a new provider I decided to cancel/delete everything with my current provider. My old website didn't have anything on it so I carelessly removed all my DNS records along with everything else. Then a few hours later I stopped receiving emails.
Hmm... Not so good...
A mail exchanger record (MX record) is a type of resource record in the Domain Name System that specifies a mail server responsible for accepting email messages on behalf of a recipient's domain
I immediately added the MX records to my new provider and pointed them to Google Apps for Work. Emails slowly started to trickle in. Due to this error I didn't receive emails for ~12 hours.
Cancelling my hosting early
I'm not really sure why I decided to (actually I do, I was excited to move to my own server) but it was a bad choice. When I noticed the DNS issue and the lack of emails I couldn't update anything. This was frustrating, if I hadn't cancelled early then I could have reduced the downtime for my emails.
You may not have noticed the HTTPS and green lock symbol in your address bar. But what it means is that your connection to the server is encrypted and secure. This ensures that your information is kept private.
Transport Layer Security (TLS) and its predecessor, Secure Sockets Layer (SSL), both of which are frequently referred to as “SSL”, are cryptographic protocols that provide communications security over a computer network.
Now I didn't have a clue on how to set this up but DigitalOcean have a wide range of tutorials. I used How To Secure Nginx with Let's Encrypt on Ubuntu 14.04. I had to make a few changes to get it to work but I'll detail that in another post.
Would I do it again?
Of course. I enjoyed the challenges of building and creating something. As well as the opportunity to learn something new. However, in future I would actually have a plan for switching everything. Rather than just jumping and changing everything, I would phase it across.