The Problem
Enterprise configuration management — Ansible, Salt, Puppet, Chef, Kubernetes operators — is sized for fleets most teams don't have. The cost is real: agents to maintain, DSLs to learn, layers of abstraction over what is, mechanically, a handful of shell commands.
Most fleets are smaller than the industry pretends. idem.sh is sized for them.
The Approach
A single Bash file you can source from a project and use to manage packages, files, and systemd services idempotently across Red Hat and Alpine systems. Inspired by Bash Booster, shaped by years of working with the heavier alternatives.
- Single file. No agent, no daemon, no inventory database.
- Idempotent by construction. Every function returns one of
unchanged/drift/failed, so report assembly is trivial. - Dry-run by default. Audit before you apply.
- TypeScript companion. A Deno +
daxport (idem.ts) for environments where Bash is the wrong language.
The Outcome
A template more than a tool — meant to be read, copied, and bent to the shape of the fleet in front of you. The lesson, if there is one: when the tool is small enough to fit in your head, you stop fighting it.