date: 30 april 2026
---
-There is an accompanying video devlog available on YouTube: https://www.youtube.com/watch?v=c6z5A_PRodg.
+There is an accompanying video devlog available on YouTube:
+<a href="https://www.youtube.com/watch?v=c6z5A_PRodg">https://www.youtube.com/watch?v=c6z5A_PRodg</a>.
Recently I went down the Kubernetes rabbit-hole and automated my whole blog's
pipeline. From build to deployment. No GitHub actions or any other 3rd party CI
provider. All self-hosted, literally. Well, with the sole exception of
-CloudFlare Tunnels, course.
+CloudFlare Tunnels, of course.
How did I do it?
Next, my stuff is hosted in a git server that I own. This server is exposed via
SSH and cloudflare tunnels. I have it configured to only allow public key
-authentication and not root login, for example. Also, the SSH port is not
+authentication and no root login, for example. Also, the SSH port is not
publicly exposed and is only accessible via cloudflared.
Now, Git has hooks for both server and client. In this case, we are interested