Self-hosting grows quietly.
One service becomes five, five becomes fifteen.
Before you know it, you’ve got half a dozen machines and no idea which config is current.
You don’t need enterprise config management.
You do need something.
The Drift Problem
Configs rot when:
- You tweak settings ad hoc and forget to document
- One machine gets patched, others don’t
- You rely on memory for flags and file locations
Configuration drift is downtime waiting to happen.
Version Control as the Baseline
Start simple:
- Keep copies of your config files in a private git repo
- Commit after changes with meaningful messages
- Store example
.env
or secret templates without actual secrets
A diff is worth more than your memory.
Templating Without the Bloat
Instead of Ansible or Chef:
- Use basic template files and small scripts to render per-host variables
rsync
orscp
to deploy- Document what script pushes which file where
Boring beats clever when you’re the only admin.
Central Documentation
Alongside configs, keep:
- A README per service with setup notes
- Dependencies (which service relies on which)
- Restart and recovery steps
Future you won’t remember the incantations.
Test Changes Safely
Never edit live without a backup:
- Stage changes locally or on a VM
- Commit and push to repo before deployment
- Roll back quickly if it breaks
Safety nets matter more than automation fashion.
Monitor Drift Periodically
Once a month:
- Pull live configs and diff against your repo
- Fix discrepancies intentionally
- Keep systems predictable
Consistency is security.
A small, boring config process beats heroic troubleshooting.