The Idea

Lets build a blog!

The Rules

  • Fast, not fancy!
  • smart, not heavy!

The Way

To maintain a lightweight and performant setup, I opted for a static site generator to convert simple Markdown files into static HTML. After evaluating Hugo and Gatsby, I settled on Zola.

Zola is written in Rust, which likely makes it the fastest generator among the three.

Rule one ✅ !

The source code is hosted on GitHub, enabling synchronization across multiple development environments.

For HTML generation and local serving, Zola provides a Docker-based solution.

More details here

By default, the container runs until the build process completes or serving is no longer required. To run the container in the background for continuous serving, I append the -d flag to the Docker command:

docker run  -d -u "$(id -u):$(id -g)" -v $PWD/app:/app --workdir /app -p 1111:1111 ghcr.io/getzola/zola:v0.20.0 serve --interface 0.0.0.0 --base-url /

More about the serving container here

The Docker container runs on a Raspberry Pi 4B with 4 GB of RAM. The 2 GB model should be sufficient as well.

In parallel with the Zola container, a Cloudflare Tunnel runs in a separate container to expose the service securely.

The deployment pipeline uses rsync to synchronize the local Git repository with the directory mounted in the Zola serving container. Zola automatically detects file changes and serves the updated content in real time.

The End

The result is what you see here. Nothing special but its mine ;) Some tweeks here and there (mostly ducktape).

Have fun and keep exploring!