How I Built This Blog - Hugo, Docker, GitHub Actions, and Cloudflare

TL;DR: Self-hosted Hugo blog, built by a GitHub Actions self-hosted runner inside Docker, served by nginx, routed through Nginx Proxy Manager and Cloudflare. No managed hosting and no WordPress. I came from WordPress, which works fine until you actually want to use it. Logging into a dashboard to write a simple post, dealing with plugin updates, the whole song and dance. Overkill for what I needed. I wanted something I could write markdown in and have it just work, without giving up control of where it lives. ...

June 20, 2026 · 12 min · Jeppe Sørensen