Portfolio Setup

Posted on Sat 09 August 2025 in Projects

Introduction

I've poked at setting up a portfolio page a few times in the past, including once using the Golang based Hugo, but I didn't have the time to set one up properly. However, as I find myself between jobs, completed my first Masters, about a month out from starting the second, and with a lot of the pieces half done, this seems like a good time. As it is the first in a series of planned projects I'll front-load some of the basic setup, specifically a CI/CD setup and IaC for AWS deployment.

Might be worth setting up example repos for some of this since I'm not finding any good up to date templates for this.

What I'm building

Static Website

As I don't need more than a static webpage to host project notes and I'll probably just link to any more in-depth demonstrations I'm using Pelican a Python based static site generator with the Flex theme made by Alexandre Vicenzi. I'll likely replace it later with something custom, but I like the minimalist style.

CI/CD with GitHub Actions

I already had a mini pc configured as a self-hosted actions runner, built to resolve an issue that I was having with one of my embedded linux courses, so it makes sense to use it. I'm currently using a pretty simple workflow to build and deploy the compiled website, with structure for IaC deployment, and the ability to add tests later.

IaC with Terraform to configure S3 Static Website and Cloudfront CDN

This is where the scope creep happened; a combination of extensive AWS experience, DevOps work, and future plans led me to set it up the "right way". What this meant is that I had a lot of operational groundwork to set up, a remote backend to maintain Terraform state across projects, remembering how to set up Terraform to use the AWS CLI profiles, and updating various toolsets that I haven't used on my personal setups in a while.