This repository holds the application code and infrastructure for dunkman.me.
The site is a static site that runs on Amazon Web Services (AWS).
- The files are stored in an S3 bucket configured for static web hosting.
- They are presented to you via CloudFront, which uses a TLS certificate for https generated and auto-renewed by AWS Certificate Manager.
- DNS which points the domain to the appropriate CloudFront distribution is managed by Route 53.
The domain is purchased through Namecheap.
- Namecheap’s nameservers are overridden manually to point to Route53’s nameservers as configured in this repository.
- The site is built with Hugo.
- All infrastructure changes are automated with Terraform.
- On code changes GitHub Actions uses Docker to apply any infrastructure changes, build the site, and upload it.
To get started in development, you’ll need Docker installed. Then, run the following command in the project directory after it’s been cloned:
- The website will be accessible at localhost:1313.
- The site will live reload on updates to the source files.
To quit the command, hit Ctrl+C.
Running without Docker
Running the application without Docker is not recommended. If you must, review the app Dockerfile to see what dependencies are needed, manually install those specific versions locally, and run the application as the Dockerfile describes.
The site deploys automatically in CircleCI. To preview changes made by Terraform, use Docker.
Note: This command requires access to the application’s AWS account. Credentials are configured through
AWS_DEFAULT_REGION environment variables.
To make things simpler for routine use, these variables are also read out of a
.env file in the project root directory (which is git ignored) automatically by docker-compose.
AWS_ACCESS_KEY_ID=[Your key] AWS_SECRET_ACCESS_KEY=[Your secret] AWS_DEFAULT_REGION=us-east-1
Rebuilding the Docker images
Rebuild the Docker images when versions of installed dependencies change:
To see available commands, run
make without any arguments.
Yes please! I’d love to have your contributions to this project — including typo fixes, infrastructure changes, and everything in-between.
- For larger changes, feel free to open an issue to discuss the changes if you’d like to discuss before investing time in it.
Continue reading in CONTRIBUTING.