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 the assets/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.