One Go binary, one YAML file, one SQLite database: I wrote my own monitoring tool

One Go binary, one YAML file, one SQLite database: I wrote my monitoring tool

Frustrated with heavyweight monitoring platforms, a developer built Gjallar, a KISS monitoring service in Go. It's a single static binary (no CGO) that checks HTTP, PostgreSQL, Oracle, Redis, Elasticsearch, and more, with alerts via Telegram, SMS, or Signal. The lock-free pipeline uses a single consumer goroutine, and state survives restarts. Configuration is a single YAML file with hot reload, env var expansion, and a dry-run flag. It deliberately avoids clustering, agents, and plugins, keeping everything simple and understandable.

A tool whose whole state fits in one SQLite file and whose whole behaviour fits in one YAML file is a tool you still understand at 3 a.m., eighteen months after you wrote it.
  1. nzoschke

    Single Go binary + SQLite database all the way.

    I've been doing this architecture on single tenant VMs for like 6+ years now and it has so many advantages for deployments, security and scaling.

    Pretty much every new tool and agent computer I set up uses this pattern. I've blogged about it and created a template repo.

    https://housecat.com/blog/the-hugs-stack-hypermedia-unix-go-...

    https://github.com/housecat-inc/scratch

  2. JensRantil

    Nice! But you made a mistake of using smallcaps-only on the repository. MacOSX file systems will complain and all sorts of weirdness can happen.

  3. aster0id

    Recently I vibe coded a couple of scripts invoked by cron to do the same thing for a few services running on a single node for me. Works beautifully.

More from this day

2026-08-25