Skip to content

Crow 0.2.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@the-nelson the-nelson released this 29 Sep 21:06
· 226 commits to main since this release

Pre-release of Crow 0.2.0: from one real server to a watched fleet. The 0.2.0 milestone still has open work (more config plugins, onboarding flows, firewalld editing).

Binaries: Linux x86_64 and macOS (Apple Silicon), with SLSA Level 3 provenance (*.intoto.jsonl). Verify with slsa-verifier.

New

  • Config history that survives restarts. Every version of a file Crow wrote or found on a server, encrypted with the vault's key (config files can hold credentials). Changes made outside Crow are noticed and recorded. Preview what restoring a version changes before you do it.
  • Baselines and drift. Pin a known-good file for a server group or the whole fleet. Drift is by meaning where Crow has a plugin (a reworded comment isn't drift, a changed value is). The fleet shows how many files drifted, on how many servers.
  • Fleet runner. Fleet-wide actions run one server at a time, stop at the first failure, and can be stopped after the current host. They start only after you type a keyword.
    • Push baseline to all: re-reads each file live, checks it with the host's validator, writes it atomically, records it.
    • Rolling reboot: via the provider, the lab engine, or SSH; waits for each server to come back from a fresh boot before the next.
  • Metrics history and alerts. Every server sampled once a minute while Crow is open, kept for a week. Alerts for unreachable servers, full disks (90% / 95%) and failed services; they resolve on their own and can be acknowledged. A History view charts CPU, memory, disk and load over 24 hours or 7 days, with gaps where Crow wasn't running.
  • Audit log. Every change on every server, filterable by server and kind.
  • firewalld, read-only. Zones, services (with their ports), ports and rich rules on RHEL, Fedora and Rocky hosts; warns when the running config differs from the saved one.
  • Real host key age, read from each server's key files.

Fixed

  • Fleet health comes from the live connection: unreachable servers no longer show a green OK with made-up zero readings, and vCPUs aren't counted twice.
  • Disk use matches df (used ÷ used + available); a full ext4 disk used to read ~95%. Read-only roots (Fedora Atomic, Bazzite, CoreOS) are measured at /var.
  • Fleet screens no longer claim things Crow doesn't do (fake "queued" fleet actions, made-up drift and key ages).
  • Socket ↔ firewall matching: firewalld hosts aren't reported as "firewall off"; ufw multiport rules match.
  • Restoring a config version no longer leaves it showing as an unsaved edit; revisions carry your user@host, not a fixed name.

Heads-up

  • On first launch Crow creates its encryption key in the OS keyring (to encrypt config history) without asking for a security stance; storing provider tokens and AI keys still asks. See docs/security.md.