This project is a template to setup a website built using Jekyll, an open-source static website generator Ruby-based framework.
Jekyll provides both the functionality to generate the required HTML, CSS & JavaScript files as well as a local web server for development purposes.
This template is designed for hosting on an Amazon Web Services (AWS) S3 Bucket with Static Web Hosting; providing a low cost & high performance solution to static web hosting.
CI/CD has been implemented to provide automatic code compilations to be deployed to the aforementioned AWS infrastructure.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
See Infrastructure & Deployment sections for instructions on how to deploy the website on a live system.
Maintaining this codebase will require the following software installed on your local machine:
There are several relevant and useful commands Jekyll offers to assist with local development:
jekyll serve -w
: Launches a local web server with regeneration of files if editedjekyll build
: Compiles the website code under ./_sitejekyll clean
: Cleans all generated files & cacheFor more information, see Jekyll useful commands documentation.
Provisioning the AWS resources for this site requires the following steps be followed:
AWS_ACCESS_KEY
AWS_SECRET_KEY
ZONE_ID
The deployment of both the website and underlying infrastructure can be completed using GitHub Actions. There are 2 'workflows' which deploy these respectively.
The deployment of the AWS infrastructure is a manual, one off process which is required before the website can be deployed.
Login to the GitHub Respository
Go to 'Actions' tab
Click 'Terraform Deployment'
Click 'Run workflow' & provide the required variables:
testdomain.net
)us-east-1
)
The deployment of the website is automatically triggered based on commit actions to the 'main' branch.
This workflow will build the Jekyll website & deploy the generated files to the S3 Bucket (previously deployed with the Terraform workflow) to be used as a static-website.