-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #19 from chriswachira/add-project-readme
feat(repo): Add project's README file
- Loading branch information
Showing
3 changed files
with
301 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# [chriswachira.com](https://chriswachira.com) | ||
|
||
This repo holds the project files for building my portfolio website. The website has been built using: | ||
|
||
- Hugo web framework with the [Hugo Profile theme](https://hugo-profile.netlify.app/) | ||
- Terraform for building infrastructure on Amazon Web Services. See the [Infrastructure](#infrastructure) section below. | ||
- Github Actions for CI/CD | ||
|
||
## Hugo Profile | ||
This theme eases building a portfolio website as most elements of the website are configured in the `config.yaml` file. | ||
|
||
The deployable website i.e. the `public/` directory is then generated on the fly and pushed to a public Amazon S3 bucket using GitHub Actions workflow when a pull request is merged. | ||
|
||
## Infrastructure | ||
The website is deployed to a public Amazon S3 bucket that is the origin of a CloudFront distribution. Everything has been built using Terraform (see the `terraform/` directory). | ||
|
||
* **Terraform** - This Github repo has been integrated with Terraform Cloud to manage the state for the AWS infrastructure this website runs on. On creating a pull request, the Terraform code is checked for formatting and validated using a GitHub Actions workflow and a Terraform plan is triggered on Terraform Cloud. | ||
|
||
* **AWS** - The website files are stored on an S3 bucket which serves as the origin of a CloudFront distribution. The *chriswachira.com* domain's DNS is managed using Route53, where an alias A record is mapped to the CloudFront's distribution domain name. | ||
|
||
![Website's infrastructure on AWS](/assets/infrastructure.png) | ||
|
||
## Contributing | ||
Anyone is welcome to improve or fix any aspect of this project! |
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.