This post is about my short journey with Hugo, a static site generator.
My expectations were:
- As usual, I prefer Docker โ if possible.
- I want to back up and track my work on GitHub.
- And I expect speed and simplicity - of course.
I started by creating a parent folder called HUGO
.
Inside this folder, I created a new site named sbezo.github.io
using the Hugo container and initialized a Git repository.
mkdir HUGO
cd HUGO
docker run --rm -v $(pwd):/src hugomods/hugo:debian-nightly new site sbezo.github.io --format yaml
git init
--format yaml
is used because I chose the PaperMod theme. Each theme has its own configuration preferences. Without this flag, the default.toml
format would be used.
Next, I prepared a docker-compose.yml
file directly in the HUGO
folder to make it easy to run the site locally:
services:
server:
image: hugomods/hugo:debian-nightly
command: server -D --poll 700ms
volumes:
- "./sbezo.github.io:/src"
ports:
- "1313:1313"
Now I had a new site under the sbezo.github.io
subfolder with default settings.
Since I chose the PaperMod theme, the next step was to install it into the generated site:
cd sbezo.github.io
git submodule add https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod
Then I replaced the default hugo.yaml
with this simple setup:
baseURL: "https://sbezo.github.io"
languageCode: en-us
title: sbezo.github.io
theme: PaperMod
params:
profileMode:
enabled: true
title: "Stefan Bezo"
subtitle: "Sometimes, I just feel like putting thoughts into words ;)"
imageUrl: "/img/me.jpeg"
imageWidth: 120
imageHeight: 120
socialIcons:
- name: "linkedin"
url: "https://www.linkedin.com/in/stefanbezo"
- name: "github"
url: "https://github.com/sbezo"
defaultTheme: auto
ShowCodeCopyButtons: true
ShowPostNavLinks: true
menus:
main:
- name: Blog
pageRef: /posts
weight: 10
I copied the
me.jpeg
file to theassets/img
folder.
Now it was time to bring the site up locally โ simple as that:
docker compose up
Adding my first post
Checked the name of the running container, attached a shell to it, and created a new post using Hugo:
docker ps
docker exec -it hugo_2025-server-1 bash
hugo new posts/HUGO.md
And I can start write the content/posts/HUGO.md
file and preview it in browser:
Hugo serves the site at: http://localhost:1313
Result
Now I have a really simple personal website running locally with a blog.
Looking forward to publishing it โ stay tuned! ๐.
Sometimes I had a git issue with pushing remote. I fixed it temporary by deleting .gitmodules file. There was Papermod git module which somehow broke my workflow.