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.
If I have to summarize the steps, it would go like this:
- Create a AWS account if you do not have one
- Register a domain for your blog. I used AWS Route 53
- Start a EC2 micro instance running Ubuntu
- Associate Elastic IP to your EC2 instance. It will change and make the instance's public IP static
- SSH to your Ubuntu instance, update and upgrade.
- Install mysql
- Install nodejs v.12
- Install ghost-cli
- Install ghost under /var/www/<"ghost-blog">
- Point domain to instance's public IP on Route 53
- Configure SSL certificate and redirect to https
- You may need to restart ghost
- 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.