Brokentooth.io / 05 Automation / Keeping Linux Nodes in Agreement

Keeping Linux Nodes in Agreement

Dotfiles and repeatable configuration across different machines.

Keeping several machines configured is an excellent way to discover how many subtly different versions of a shell environment one person can accumulate.

Chezmoi is the configuration-management tool used for part of the Brokentooth setup. The repository records shared shell fragments, wrappers and node-specific choices so they can be applied deliberately instead of reconstructed from memory.

Shared configuration, explicit differences

A common baseline is useful, but a phone running Termux and a desktop workstation do not have identical requirements. The documented setup selects node-specific configuration rather than assuming every machine should receive the same environment unchanged.

It also uses a marked shell hook to load managed fragments instead of replacing an entire existing shell configuration. That makes the boundary easier to inspect: here is the managed part, and here is the environment it joins.

The repository's design excludes credentials and runtime state from the synchronized configuration. That is a design rule and a set of ignore boundaries, not proof that every historical commit or machine has received a complete security audit. I want the configuration to describe how a secret is consumed without making the secret part of the configuration archive.

The benefit is fairly unglamorous. A wrapper, a profile or a shell setting has a place to live and an explanation that can survive the machine it was first written on. That does not eliminate drift; it gives me something concrete to compare the drift against.