About Marlin
Marlin started as a weekend tool: I wanted a status page for a few side projects without standing up Prometheus, Grafana and a time-series database just to know whether four endpoints were up.
How it works
You describe checks in a YAML file:
checks:
- name: api.internal
url: https://api.internal/healthz
expect: 200
every: 30s
- name: web frontend
url: https://example.test/
expect: 200
timeout: 4s
Marlin polls each target, stores results in a small on-disk ring buffer, and renders a static board. There is no external service to depend on, which means the board keeps working even when half the internet does not.
Design goals
- Boring on purpose. One binary, one config file, one port.
- Cheap to run. A few megabytes of RAM, negligible CPU.
- Honest alerts. No noise from transient single failures.
Contact
Marlin is a personal project maintained in spare time. Bug reports and patches are welcome through the usual channels.