I keep clicking deploy. Every push, every app, every time, open Portainer, find the stack, hit the button, watch the logs, close the tab. I have been doing this for over a year, which is a long time to spend on a ritual that does nothing.

The reason I kept doing it was that I wanted to see the deployment happen, because the click was my last chance to catch a mistake before it went live. If the build was broken I would see the pull fail or the container crash and I could roll it back in the same sitting, and the satisfaction was the whole point, because in a year of doing this I never caught a thing. The compose file either parses or it does not, the image either builds or it does not, the failure mode is loud enough that I would have found out ten minutes later in a different tab.

What changed my mind is that a lot of what I am running does not really need testing, including this blog. This is a Jekyll site that builds to static files and serves through Nginx, and the test for it is whether the page loads in my browser, which is a test I am running right now by writing this post and pushing it. If you are reading this, the automation worked. If you are not, I will be the first to know.

So I turned on GitOps in Portainer. You go into a stack, hit the settings, flip on automatic updates from the git repository, set a polling interval, and copy the webhook URL into your repo’s push hook. I set the polling to five minutes because my commits are infrequent, and the webhook fires on every push so there is no wait at all. The deploy button still exists, which I am keeping for sentimental reasons, but I have not pressed it in weeks.

Nothing about my infrastructure actually changed. Same compose file, same images, same containers coming up the same way. The only thing that changed is that the path from “I am done writing” to “it is on the internet” is one push long, which is the only length that ever made sense, and the reason it took me this long to notice is that the manual path was not painful enough to force a rethink. It was wallpaper, the kind of annoying that becomes invisible because it never gets bad enough to demand a fix.

If you end up doing this, give me a shout. I am @troysk704.