v1.19.0 · self-hosted · MIT-licensed

Your fleet's vitals,
without the mystery meat.

PulseDeck is a single Python file that speaks Monit's own protocol, drops straight onto an existing M/Monit database, and gives you back a dashboard you can actually read at 3am — plus the SNMP, WinRM, and Prometheus reach that M/Monit never had.

No account. No phone-home telemetry. No Docker required — one install script, one Python file.

Built to replace, not orbit around, the tools you already run:

Monit agents· M/Monit schema· SNMP v1/v2c/v3· WinRM· Prometheus exporters
What it actually does

Every feature here shipped, ran against real data, and got torn apart before it counted.

No roadmap slides. This is the current feature set, version 1.19.0.

Proactive monitoring, not just reactive alerting

Linear regression on disk usage forecasts when a volume will cross your threshold, not just that it already has. Link-state transition counting catches a flapping interface that never trips a normal threshold check. Ping-jitter variance flags an unstable connection even when the average latency looks perfectly fine.

SNMP, WinRM, Prometheus

Poll switches, Windows hosts, and any Prometheus exporter alongside your Monit agents — one dashboard, one event log, one alert pipeline.

Satellite federation

Run PulseDeck at each site. Point one at another as a "satellite" and its hosts show up on a shared dashboard, auto-grouped by zone — without merging databases.

Alert templates, without the 3am pager storm

Custom {{host}} / {{message}} templates per channel, with automatic digest batching when a real outage tries to send you forty individual emails at once.

A host page built for one screen, not six clicks

Full-width charts, threshold bands drawn right on the graph, drag-to-zoom, a latency heatmap, and event markers lined up against the exact metric spike that caused them.

A test suite that ships with it

test_pulsedeck.py runs 32 real checks against a live instance after every install or update — and cleans up every bit of test data it creates.

Host groups that actually group

Filter the whole dashboard down to one zone, one rack, one team's hosts, with a link — not a spreadsheet you maintain by hand on the side.

i18n out of the box

English, German, Bulgarian, French, Dutch, Spanish — every string, every tab, every error message, not just the landing page.

A public status page you're not embarrassed to share

An explicit opt-in allowlist, not "everything's public by default." Pick which hosts show up, give them a customer-facing name, and get a 90-day uptime history bar per component. No login required — nothing not explicitly added is ever reachable.

Business services, not just host checks

Roll up services from different hosts into one thing your team actually cares about — "is Checkout working" instead of five separate technical statuses. Worst-of-members: any broken piece makes the whole thing read as down.

A dependency graph you can actually look at

Declare that your app depends on the database it talks to, and stop getting paged for the symptom instead of the cause. Now with a visual diagram of the whole chain, color-coded by live status — not just a list of IDs.

Anomaly detection that isn't limited to a fixed checklist

Disk forecasts and jitter detection catch specific, known conditions. This catches the ones nobody thought to write a rule for — a statistical baseline per metric, flagging anything that drifts too many standard deviations from its own normal.

SLA reports that don't require a spreadsheet

Per-host uptime % over 7/30/90 days, worst hosts sorted first, one click to a PDF you can actually hand to someone asking for proof.

A dashboard laid out the way you actually work

Drag panels into the order that matches how you triage, hide the ones you never look at. Saved per person, not forced on the whole team.

Where it fits

You probably already run one of these. Here's the honest overlap.

Not trying to replace Grafana or Zabbix — trying to replace the M/Monit box you resent maintaining.

PulseDeck M/Monit Zabbix Grafana
Speaks the Monit agent protocol directly
Drops onto an existing M/Monit MySQL schema (it is the schema)
SNMP / WinRM / Prometheus polling built in via data source
Predictive/trend-based alerting (disk forecast, flapping, jitter, statistical anomalies) partial
Public, no-login status page for external stakeholders partial — shares a raw dashboard, not a stakeholder-facing status page
Single-file deployment, no external services required
Deep, general-purpose dashboarding across arbitrary data sources not the goal
License cost Free Paid, per-host Free (self-hosted) Free tier + paid

Feature comparisons based on each product's publicly documented capabilities at time of writing. If something above looks wrong, we'd genuinely like to know.

Under the hood

One process. One port. One file you can actually read.

Monit agents your existing hosts
SNMP · WinRM · Prometheus polled directly, no agent needed
↘   ↙
pulsedeck.py one Flask process, one port
MySQL / MariaDB the same schema M/Monit uses

Why one file matters

No microservices to lose track of, no message queue to run out of disk, no separate scheduler process to forget you have. `git diff` on one file tells you the whole story of a change.

Why the M/Monit schema matters

Your Monit agents don't need to know anything changed. Point them at PulseDeck's collector endpoint instead, and every check, event, and history row lands in a schema that isn't proprietary to us.

Offline-friendly by design

An offline install bundle ships Python and every dependency as wheels, for the boxes that will never see the public internet — which, if you're reading this, is probably most of them.

Get PulseDeck

Free. Self-hosted. Yours to modify.

MIT-licensed. Runs anywhere Python 3.10+ and MySQL/MariaDB run. No telemetry, no phone-home, no account required to use every feature on this page.

$ unzip pulsedeck.zip && cd pulsedeck $ ./install.sh
  • Bare-metal or Docker install script
  • Offline install bundle (Python + wheels included)
  • systemd unit generated for you
  • Update script preserves your .env
  • 32-check self-test script included
Pricing

Free today. A hosted/managed tier is coming.

The dashboard itself will never be paywalled. What's coming later is optional — managed hosting, multi-tenant billing, and support contracts for teams who'd rather not run the box themselves.

Available now

Self-hosted

$0

Every feature on this page, forever.

  • Unlimited hosts
  • SNMP / WinRM / Prometheus polling
  • Proactive + anomaly monitoring
  • Satellite federation
  • Public status page & SLA reports
  • MIT license, source included
Download now
Coming later

Managed

TBA

We run it, patch it, and back it up. You just look at the dashboard.

  • Hosted instance, your data
  • Managed updates & backups
  • Priority support
  • Pricing not finalized