Distributed Monitoring

Mon

Project type: Open source

A TOML config declares what you care about — servers, websites, containers, repos — and a Bun agent (or a fleet of them) polls every minute, writes pings to Postgres, and a Next.js dashboard renders the results as a responsive grid of status tiles. Live config reloads, no restart.

The Challenge

Most teams stitch together Uptime Kuma, cron jobs, and a spreadsheet to track infrastructure health. Nothing covers hosts, websites, Docker containers, and GitHub repos in one place — and running distributed checks across multiple regions without standing up a SaaS usually means building something from scratch.

Our Approach

  • Bun-based monorepo — agent, Next.js website, and Nextra docs — sharing a typed config schema and a Drizzle/Postgres data layer
  • TOML config with Zod schema declares every monitor target and its expected behaviour, hot-reloaded by the website without a restart
  • One agent or many — each authenticated with a token, all writing to the same database, so geographic checks come for free
  • Per-tile renderer for each monitor type: host ping, HTTP, Docker container API, GitHub repo status, branded logo, and theme tiles
  • `node-schedule` drives the polling loop; the schema uses prefixed tables (`mon_*`) so the database can be shared with other services
  • Shipped as Docker images per app, deployed by SSH to any single host — no PaaS required

What It Achieved

  • One dashboard covers infrastructure, websites, containers, and repo state — no tab-switching
  • Adding a check is a TOML edit, picked up live without restarting anything
  • Multi-agent setup gives geographic monitoring without a SaaS bill
  • Full self-hosted stack — no third-party dependencies, no usage limits

Tech Stack

Next.js 14ReactTypeScriptBunnode-scheduleDrizzle ORMPostgreSQLZodTOMLDockerNextraTailwind CSS v4

Need a custom monitoring or operations dashboard?

If your team's status is spread across five tools, we'll consolidate it into one self-hosted board.

Book a discovery call