checkfleet
Source-available · single Go binary

A fleet of domain-aware infrastructure checks.

checkfleet is a source-available CLI that runs 29 domain-aware health checks — TLS expiry, HTTP probes, NATS, Kafka, PostgreSQL, Consul, HAProxy, HLS/DASH streams and more — from one static Go binary. Run it from CI, cron, or your laptop; get text, Markdown, JSON, Slack or Prometheus output. No agents, no server.

One static binary

No agents, no server, no runtime. One YAML config and a Go binary you drop anywhere.

🎯

Domain-aware

Checks that know what healthy means for TLS, HAProxy, or an HLS stream — not just up/down.

🧩

Pluggable modules

Certs, HTTP, HAProxy, stream health — each a self-contained check. Adding one is a small package.

🚦

CI-friendly exit codes

A check that ran is a success. Gate a pipeline on findings with --exit-on-bad.

🛰️

Fleet-aware

Point the certs check at your Ansible inventory and every host becomes a target.

📄

Reports you can paste

Terminal, ops-style Markdown, or JSON — worst findings first, ready for your docs.

Quickstart

# build from source
go build -o checkfleet ./cmd/checkfleet

# scaffold a starter config, then edit the placeholders
./checkfleet init --modules certs,http

# run every configured check
./checkfleet check all --config checkfleet.yml

# just TLS expiry, as a Markdown report
./checkfleet check certs --config checkfleet.yml --output markdown

Documentation

Philosophy

Don’t rebuild Prometheus or Grafana. checkfleet fills the layer they can’t: checks that need domain knowledge (what “healthy” means for a TLS estate, a NATS cluster, an HLS stream), runnable from CI, cron, or your laptop, with reports you can paste straight into your ops docs.

  • Exit code 0 even on WARN/BAD findings — a check that ran is a success. Gate on the output, or use --exit-on-bad for CI.
  • Worst findings first — the thing you must look at is the first line.
  • Fleet-aware — point the certs check at your Ansible inventory and every host becomes a target.

The roadmap of upcoming modules lives in BACKLOG.md.