Dev-Knot is a blog focused on Network Automation, DevOps and other general Dev Net content. This project manages the blog content and infrastructure deployment using Terraform, AWS, and GitHub Actions. Blog content is generated by Hugo.
Contact Forms are serverless AWS Lambda functions with React frontend hosted with Amplify.
To create a new post, simply check out a new feature branch, build and run the docker image.
docker compose up -d
Now, cd into dev-knot
folder and with hugo
installed on your machine, run the following
hugo new content/posts/dev-ops/some-dev-ops-article.md
Example
> cd dev-knot
> hugo new content/posts/dev-ops/nautobot-cookie.md
Content "/Users/hugotinoco/Dropbox/DevKnot/dev-knot-blog/dev-knot/content/posts/dev-ops/nautobot-cookie.md" created
Edit away! Check in the feature branch and create a WIP pull request to get a preview of the blog content hosted on a temporary public URL. The link information will be posted into the PR comments by AWS Amplify. Once everything looks good, publish to main
.
Builds are published from develop
and the main
branch upon successful merge. The builds are triggered in AWS Amplify via GitHub Webhooks. The develop
branch will publish a preview version of the site with a public DNS entry that's subject to change. This can be found inside the AWS Console. Adding a custom domain to the development branch is also possible, but not complete yet. Rules can be created by branch as well. The main
branch will publish to www.dev-knot.com
and my old blog domain as well, www.admin-save.com
.
This file contains the terraform
image that controls deployments of the infrastructure used to host this blog. Additionally, an image is built and published to DockerHub as a standalone container of the blog before it's served to AWS Amplify.
Terraform is managed via a Docker container. The state backend is securely maintained on terraform cloud.