Website
By Erwin
| - 3 minutes read - 551 wordsStatus
Active in its current form since November 2023 and its current location since March 2025.
What
My personal website.
Where
Right here.
Content
Everything on here has been generated once by a so-called SSG and then dropped in place.
The content is generated with Hugo. I picked the Ananke theme, and made some minor modifications:
-
Modified the default Hugo RSS template (
layouts/_default/rss.xml):- Change the feed to include full posts instead of just the summary
- Add
<category>tag(s)
-
Copied and modified the default single (post/project) page (
layouts/_default/single.html):- Include an optional "Updated …" bit after the original post date
- Move the context menu (with the table of contents and related posts) before the content, which places it to the left of the text, or at the top of page instead of at the bottom in a small screen situation
- Copied and adapted the main page (
layouts/index.html) just to make the text there not be centered. - Copied and adapted the footer (
layouts/partials/site-footer.html) just so I could make the copyright years be a range instead of just the current year. I tried to put the beginning of the range in thecopyrightconfiguration setting but then that ended up looking funny in the RSS source
Beyond that, I've left the theme as-is and I'm taking advantage of its (and Hugo's) features.
Hosting
Until March 2025 the static site was hosted in an AWS S3 bucket, made available through a Cloudfront distribution to make it available via https.
At that point, I moved it to statichost.eu, which specializes in hosting SSGs, directly from Git repositories, and hosting it with http and https.
Keeping up with the Joneses?
As so often happens, I looked away for one minute (alright, closer to 4-5 months) and the version of Hugo that I get when I do a fresh install (from Brew) is a bit different than what I started with, and that is going to break some things.
To give myself a stable work environment and breathing space I decided to run the hugo command inside a quick'n'dirty container:
-
The
DockerfileFROM cibuilds/hugo:0.119.0 EXPOSE 1313 -
A super simple
Makefilehugo-docker: docker build --tag myhugo . server-beta: docker-helper server --bind 0.0.0.0 --environment beta server-live: ./docker-helper server --bind 0.0.0.0 --environment live deploy-beta: ./docker-helper --environment beta && ./docker-helper deploy --environment beta deploy-live: ./docker-helper --environment live && ./docker-helper deploy --environment live -
And a shell script to glue it all together:
#!/bin/sh if [ $# -eq 0 ]; then echo "Usage: $0 <hugo-arguments>" 1>&2 exit 1 fi DIR=$(git rev-parse --show-toplevel) docker run -v $HOME/.aws:/home/circleci/.aws -v $DIR:$DIR -p 1313:1313 -w $(pwd) -it myhugo hugo $*That script fires up the container with only the current Git repo exposed within the container, and starting off at the current working directory as well, then running the
hugoversion that I grabbed. It also shares~/.awsfor the deployment steps.
Now I can run a command like this and I can sanity check that the site is going to look ok with that particular version, and then later figure out what needs to be fixed as I nudge the version along at my own pace:
make server-betaAnd then deploy when I'm happy:
make deploy-live
Noting that now that I've moved to statichost.eu the deploy-* targets are obsolete, but it's still useful to test locally with server-*.