// readme

Buckle

Lightweight fleet configuration with phased, health-gated rollouts.

Buckle configures a fleet of servers from a Git repository of declarative modules. One static binary does everything: it plans and applies locally, runs as a persistent agent on every host, and runs as the server that watches Git and orchestrates rollouts across the fleet with a web UI.

  • Lightweight. One binary (agent, server and web UI), no interpreter, no SSH. Bootstrapping a host is buckle up --server ….
  • Fast. Modules run as a dependency graph in parallel; plan is a pure read phase (it cannot write to the host) and apply touches only what changed.
  • Safe to converge. Thirty typed, idempotent task kinds with plans and diffs; everything Buckle applied is cleaned up when it leaves the config (opt out with removal: leave); a module whose selection cannot be decided is left alone rather than removed; tools missing on a minimal image make a step blocked, not an error.
  • Observable. One OpenTelemetry trace per rollout spanning the server and every agent, with spans per module, task and health check, and gauges for rollout hosts and connected agents.
  • **Operable…