Published on : 2026-09-19 12:02
I like automation. I really do. I just don't think everything
needs to be automated. Some things I prefer to do myself, like:
Docker image updates
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
I use specific image versions:
alpine:3.14
Not latest, and definitely not an automated updater like
watchtower that decides my containers need a surprise reboot at
3 AM.
If I want to update an image, I change the version, pull it and
watch the logs myself. I want to know what changed.
OS Updates
‾‾‾‾‾‾‾‾‾‾
I use Ubuntu server so it was really easy disabling automatic
updates:
sudo systemctl disable --now unattended-upgrades
and change /etc/apt/apt.conf.d/20auto-upgrades to:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "0";
Deployments
‾‾‾‾‾‾‾‾‾‾‾
No automatic deployments from Git.
Commit -> Review -> Deploy -> Update
The extra step is intentional even if I'm the only one using that
git repository.
Container restarts
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Restart policies are useful, but I don't want a broken service
endlessly resurrecting itself. A container restarting 500 times
isn't "high availability". It's a cry for help.
My containers run until I tell them to stop.sh: syntax error: unexpected end of file
My general rule is simple:
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Automate repetitive tasks. Don't automate surprises.
I run a homelab because I enjoy knowing what's happening inside
it. I automate repetitive tasks where I want to see the output
with aliases:
(DIR) Using aliases for complex and daily terminal commands
If something else starts making infrastructure decisions without
asking me, I'm taking its keyboard and permissions away.
(DIR) Back to my phlog