So basically, my homepage has consisted of a Ghost blog hosted on a DigitalOcean VPS (virtual private server) for a few years now. It’s an obviously a low-traffic, almost static page, so it kinda made sense to switch to something simpler - especially since when you use a CMS like Ghost, you need a web server.
Plus, even with DigitalOcean’s tiniest VPS offering, I still had to pay 7 AUD per month.
So, enter the following stack:
- Jekyll - To generate the static site. Free.
- GitHub and CircleCI - The code is saved on GitHub, where you can configure it with CircleCI to perform automated deployments. Free.
- AWS S3 - So there’s a way to host a completely static site on S3 for a very low fee. There are a few blogs detailing how you can get away with <2 USD.
- Cloudflare - The sad bit about AWS S3’s static site hosting is that it only supports HTTP, so if you want HTTPS, you’ll need an additional component. You could go the full Amazon route and use CloudFront, but CloudFlare is free, so might as well use it!
- One thing to note here is that you need to run Cloudflare in Flexible mode, where the connection between Cloudflare and S3 is HTTP, but the connection between someone visiting the site and Cloudflare is HTTPS. A bit less secure, but you could technically lock it up by adding rules in S3 (instead of making it fully public, just add Cloudflare’s IPs as allowed).