The plan was to use hugo to generate the site but due to some issues with theme and css deploymnent, I’m falling back to Jekyll.
This new site uses Jekyll to generate static site, stores them in S3, and adding cloudflare to offload SSL and content. This makes the site management quite simple, and easy to write and push the content.
The below illustration shows how the site is constructed. I store the files in github and use s3_website to publish contents. I am not using CloudFront as I’d rather let CloudFlare handle the content distribution securely.
Preview locally before publishing
This also applies any configuration or plugins and generate static contents.
jekyll serve --watch
Synchronize the published assets to S3 target
This is what I do for a single line deployment
Update configuration if you are updating s3_website.yml
s3_website cfg apply
Then publish contents
s3_website push (--force)
In order to add the site to google bot, I used jekyll_sitemap and registered the sitemap generated.