Using Amazon Lightsail to Setup your own Ghost Blog

Fast and cheap hosting for bloggers with minimal setup required

If you find yourself wanting to start a blog, but lack the money to run one through a lot of the premium services available, such as WordPress.com or Squarespace.com, then Amazon Lightsail coupled with Ghost may be the right fit for you. Ghost is an open-source blogging Content Management Service that handles a lot of the heavy lifting for bloggers, much in the same manner as wordpress. Instead of paying for the full price, if you have just a bit of knowledge of web development you can get yourself set-up running on a virtual server for a fraction of the price, and only end up paying more for your blog once your website’s traffic increases.

The documentation over at Amazon is a great place to start, and will get yourself set up in minutes. However, there are a few aspects of Ghost which aren’t setup instantly that would be with their premium version. One of these would be implementing website encryption:

An SSL certificate is a code on your web server that ensures security for online communications. When a browser contacts your website, the certificate enables an encrypted connection. Without a TLS or SSL certificate, users would not be entirely sure if the website they are visiting is the correct server, or if some hacker has intercepted their traffic. This may not be as much of an issue on some site if you’re simply serving text, but it is an essential security step for ecommerce sites or any website that is handling sensitive data.

The Amazon documentation does point to a tutorial for setting up a certificate with Let’s Encrypt, but there isn’t a need for NGINX, so long as you follow these next steps.

Once you are connected into the Lightsail SSH, you will want to run the following commands:

cd /opt/bitnami
sudo ./bnhelper-tool

Setup a Let’s Encrypt Certificate for HTTPS

The Ghost stack that we have on the Lightsail instance comes with a handy Let’s Encrypt tool to automatically setup our SSL certificate. “Set up Let’s Encrypt” will run the bncert-tool.

Simply running this tool and adding your domain (that at this point should already be attached to your static IP, from setting up a DNS zone and changing your nameservers since following the Lightsail documentation). Let’s Encrypt will setup your SSL, giving the option to add it to all subdomains, and have it to auto renew to prevent your certificates expiring without your knowledge!