tinystatus
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
- 1.2.0 — status.json output and certificate expiry checks.
- 1.1.0 — systemd timer example, dark mode, 90-day history.