open source · linux · mTLS

A status report from every machine you run.

Sitrep pairs a manager with any number of worker agents. Workers enroll once with a one-time token, then report disk, memory, CPU, connectivity, and git auth status on an interval the manager controls — all of it over mutual TLS the manager issues itself.

example fleet sample output — install locally to see your own
host ping disk cpu git last report
web-01 14ms 41% 12% ✓ 6s ago
db-03 22ms 68% 55% ✓ 11s ago
edge-07 9ms 22% 8% ✗ 3s ago
build-02 31ms 77% 64% ✓ 17s ago
cache-11 6ms 15% 4% ✓ 2s ago

no external PKI

no cloud dependency

no persistent history — by design

single go binary

how it works

Four commands, in order.

  1. 01

    Start the manager

    Pick which checks to enable and how often workers should report. Sitrep generates its own certificate authority and installs itself as a systemd service.

    sudo sitrep manager start
  2. 02

    Create a token

    A one-time, expiring token — plus the manager's certificate fingerprint — is everything a new worker needs to enroll.

    sudo sitrep manager token create
  3. 03

    Enroll a worker

    The worker presents the token once, over a connection pinned to that fingerprint, and gets a signed client certificate back.

    sudo sitrep worker start
  4. 04

    Reports roll in

    Every report is mutual TLS, on the manager's interval, queryable over a local JSON API — no further setup per worker.

    curl 127.0.0.1:8080/v1/workers

install

Build it, ship it, run it.

build
git clone https://github.com/justwaters/Sitrep.git
cd Sitrep
make linux
run
sudo sitrep manager start
sudo sitrep manager token create
sudo sitrep worker start

Requires Linux with systemd. Full walkthrough, config reference, and API docs live in the docs.

what gets checked

Five checks, each one optional.

Internet Access

Pings 8.8.8.8 and records reachability and round-trip latency.

internet

Disk Space

Total, used, and percent-used for the root filesystem.

disk

DRAM Usage

Total and used system memory, sampled at report time.

dram

CPU Usage

Aggregate utilization, sampled over a short window.

cpu

Git Auth Status

Runs gh auth status and reports the signed-in account.

gitauth

security

Two ports. One CA. No external PKI.

The manager generates its own certificate authority the first time it starts — no cert manager, no Vault, no manual OpenSSL. Workers enroll once, over a connection pinned to the manager's certificate fingerprint, and get a signed client certificate back. Every report after that is mutual TLS: the worker verifies the manager, the manager verifies the worker, and a report's claimed worker ID is checked against the certificate that actually sent it.

local api

Your fleet, queryable in one curl.

The manager exposes a loopback-only JSON API so other software on the same host can read live status without ever touching a certificate.

GET /v1/workersList every enrolled worker.
GET /v1/workers/{id}A single worker's most recent report.
GET /v1/configCurrent reporting interval and enabled checks.
PATCH /v1/configChange the interval or checks — rolls out fleet-wide within one interval.
POST /v1/tokensCreate a one-time worker enrollment token.