>_ dev.tapun.site

tinystatus

Go · latest v1.2.0 · updated

Static status page generator: YAML in, plain HTML and JSON out.

tinystatus runs a list of checks (HTTP, TCP, DNS, certificate expiry, “command exits 0”) and renders the result to a single static HTML file plus status.json. There is no daemon: run it from a systemd timer and serve the output directory with whatever web server you already have.

Checks

checks:
  - name: website
    http: https://example.org/
    expect_status: 200
    timeout: 5s
  - name: mail
    tcp: mail.example.org:587
  - name: cert
    cert_expiry: example.org:443
    warn_days: 14
  - name: backups
    command: "test $(find /srv/backup -mmin -1500 | wc -l) -gt 0"

Timer

# /etc/systemd/system/tinystatus.timer
[Timer]
OnCalendar=*:0/5
RandomizedDelaySec=30
Persistent=true

[Install]
WantedBy=timers.target

Output

The HTML page has no JavaScript and weighs about 6 kB. History for the last 90 days is kept in history.json next to it and drawn as a row of coloured squares.

Changes