Skip to content

This repository holds the application code and infrastructure for my personal site and blog.

License

Notifications You must be signed in to change notification settings

adunkman/dunkman.me

Repository files navigation

Build status on the main branch

This repository holds the application code and infrastructure for dunkman.me.

Architecture

Runtime environment

The site is a static site that runs on Amazon Web Services (AWS).

The domain is purchased through Namecheap.

  • Namecheap’s nameservers are overridden manually to point to Route53’s nameservers as configured in this repository.

Deployment process

  • 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.

Running locally

To get started in development, you’ll need Docker installed. Then, run the following command in the project directory after it’s been cloned:

make start
  • 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.

Deploying

The site deploys automatically in CircleCI. To preview changes made by Terraform, use Docker.

make terraform-plan

Note: This command requires access to the application’s AWS account. Credentials are configured through AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and 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:

make docker-rebuild-[image]

To see available commands, run make without any arguments.

Contributing

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.

About

This repository holds the application code and infrastructure for my personal site and blog.

Topics

Resources

License

Security policy

Stars

Watchers

Forks