I usually spend a lot of time researching before taking action. This time was not different. There are many options for content management systems (CMS) such as Wordpress, Jekyll,  Ghost and more. However, I kind of made up my mind long time ago about using Ghost. It is open-source, well documented, and simple to use.

I used the guide to self-host Ghost on Ubuntu. In addition to that, I found a very good YouTube video on how to install, host and publish a Ghost blog on AWS.

How to host a Ghost blog on AWS

If I have to summarize the steps, it would go like this:

  1. Create a AWS account if you do not have one
  2. Register a domain for your blog. I used AWS Route 53
  3. Start a EC2 micro instance running Ubuntu
  4. Associate Elastic IP to your EC2 instance. It will change and make the instance's public IP static
  5. SSH to your Ubuntu instance, update and upgrade.
  6. Install mysql
  7. Install nodejs v.12
  8. Install ghost-cli
  9. Install ghost under /var/www/<"ghost-blog">
  10. Point domain to instance's public IP on Route 53
  11. Configure SSL certificate and redirect to https
  12. You may need to restart ghost
  13. Done!

Alternative

Just found out that Balaji has tutorial on how to set up a paid newsletter with Ghost Pro, the paid version, where you will not have to worry about hosting.

I hope it helps. Documenting is helping me.