How this website is set up

Hi!

For some years now I did electronics projects, starting with Arduino / Raspberry Pis. Now with more in depth knowledge, I work on an analog synthesizer and more, so the projects become increasingly complex. Normally, I have everything in my head and tell the juicy stuff to my friends, but now the moment comes, that I need to document my progress. So I needed a tool that enables me to easily write something about my projects. With this, I can better reflect on projects, look back and be more satisfied on the progress as well as getting an overview. And maybe its of value for you too!

So what are my requirements for this blogging tool?

  • Low hurdle for me to write and publish (otherwise I would procrastinate too much)
  • Presumably runs on my already rented server, so I don’t have any additional costs
  • Accessible via my domain
  • Owning my written text would be cool too
  • A sleek and lightweight software would be nice
  • A static website is enough for me

This afternoon, I started thinking about the different options. At the end, I now came up with this:

So how does this website work The core system is called Hugo framework, which is open source, free, lightweight and fast. Essentially, Hugo converts Markdown files into a proper, static website that can be served with the nginx webserver. Other than with Wordpress or Squarespace, you don’t have a built in editor which you can directly use to modify the blog, but its a more involved workflow. If you would run the blogging website on your local machine, it would look like this:

Purely local workflow

  1. Have the folder with all Hugo development files in it as well as the blog post markdown files
  2. Run the hugo server
  3. Edit the blogpost markdown files. The hugo server detects file changes live and then renders the new static website automatically
  4. Access the static website of the blog using the address localhost:1313

Now the online workflow is a little more complicated:

Simple online workflow

  1. Have the Hugo files on the linux server
  2. Start the hugo server on your linux server using command line
  3. Somehow edit the files remotely from your local machine (maybe SFTP or a VS Code remote server would make sense)
  4. The changes apply live

But! This workflow still has some serious limitations:

  1. No versioning
  2. No blogpost preview option
  3. Ugly remote-file-editing needed
  4. No easy domain-management possible
  5. Manual management of dependencies of Hugo needed and running concurrent services is ugly.

Updated, online workflow using git and docker with portainer! Although way more complicated, docker and git solve all these problems. It works as following:

  1. Hugo development and markdown blog files are now managed via git (in my case codeberg.org). I edit the markdown files corresponding to the blogposts by cloning my git repo, editing them locally on my machine, and pushing the updates to the repo
  2. If the git system at codeberg.org monitors a new push, a web-requests goes to my portainer docker-management tool on my server: Portainer than redeploys the whole Hugo stack (which only takes a few seconds)
  3. The Hugo stack is defined by a docker-compose in my git repository. It contains a custom docker image with alpine linux as a basis that combines the hugo and an nginx service.
  4. The hugo stack is managed by portainer, which also runs an nginx-reverse-proxy container for domain and HTTPS certificate management.
  5. If you are seeing this blog article, it works!

On what machine does this webservice run I use the lowest tier model of a rented VPS (virtual private server) at 1blu.de:

  • 4 CPU cores
  • 8GB Ram
  • 120GB SSD

A VPS server means, that the resources are shared, but you have SSH and root access to your server. In my experience, this hardware tier model is enough to run a Minecraft server with at least 8 players, and an InfluxDB and Grafana dashboard service for my beehive monitoring too.

Conclusion: Should you also choose Hugo?

So if you are into these DIY-server-management tasks, this is definitely for you. I don’t have any long-term experience with it yet, but I assume, it won’t be that maintenance-heavy. Since I already write a lot of notes with markdown and use git nonetheless, the workflow won’t be a problem for me - since I basically have to only care about my git repository.

But if you are not into these tasks, you should definitely choose a more simpler alternative that doesn’t take so long to get up and running (and maybe doesn’t use git for that). Maybe, there are services in the internet that manage hugo for you?

So lets see - if there are more articles popping up, then this system works xD

Have a nice day!

Carl


Last modified on 2026-01-16