Self-hosted · multi-tenant · MSP-ready

Monitoring that reaches everywhere,
owned entirely by you.

Project Pulse is a self-hosted, multi-tenant infrastructure & network monitoring platform in the spirit of PRTG and CheckMK — remote probes, host agents, auto-discovery, and SLA-driven alerting, built for MSPs and homelabs alike.

🚧 Not public yet. Pulse is in active development — the public release and source repository will be announced later. Watch this space. ✨
✨ Public release — announced soon Explore the features

What it is

One console for every site, tenant, and device

Pulse watches servers, network gear, and services across many customers and locations from a single pane of glass. Probes sit inside each network and dial home over an encrypted, outbound-only channel — nothing needs to be exposed to the internet. Metrics stream to a fast time-series store, and an SLA-aware engine turns problems into the right alert, to the right person, at the right time.

Core
API · web UI · alert engine
Probes
outbound gRPC over mTLS
Agents
host self-metrics
Metrics
VictoriaMetrics TSDB
ASP.NET Core 8 React 18 + TypeScript EF Core · SQL Server & PostgreSQL gRPC + mTLS internal CA VictoriaMetrics .NET self-contained probes Argon2id · TOTP 2FA
7 days
from zero to production
≈40M
tokens spent*
41
commits
~40k
lines of code

* Designed & built in roughly a week of pair-programming with Claude. Elapsed time and commit/LOC counts are exact; the token figure is an estimate.

Status

What's built vs. what's coming

Pulse is under active, fast-moving development. Everything in the left column runs today; the right column is what's queued next. Honest and up to date.

Implemented

  • Multi-tenant from day one. Per-tenant isolation enforced at the query layer; MSP customer → department → zone hierarchy.
  • Outbound-only probes. .NET 8 self-contained agents dial Core over gRPC/mTLS via an internal CA; SQLite offline buffer replays after outages.
  • Host agents. Cross-platform CPU / memory / disk / uptime self-metrics with auto-provisioned devices.
  • Sensor library. Ping, TCP, HTTP(S), TLS-certificate expiry, DNS, SNMP OID, PowerShell script — with typed, per-sensor settings forms.
  • Network auto-discovery. CheckMK-style subnet sweep + port fingerprint, suggested sensors, and one-click approve-to-monitor.
  • SLA-driven alerting. SLA tiers, dependency suppression, retry gating, escalation, and Email / Webhook / Slack channels with state & threshold triggers.
  • Time-series metrics. Readings stream to VictoriaMetrics; per-sensor history graphs in the UI.
  • Serious auth. Argon2id hashing, mandatory TOTP 2FA, breached-password checks (HIBP), login rate-limiting, permission-based RBAC.
  • Operations UI. Dashboard, monitoring tree, alerts, sensor detail, customers, users, audit log, and an "Advanced" expander on every tunable.
  • Cross-customer device moves. Relocate a device (and its history) to another customer with automatic probe re-assignment.
  • Windows installer. Self-elevating WPF wizard; services run least-privilege by default. Dual DB providers, DevCert / PFX / Let's Encrypt TLS.
  • Audit & settings. Append-only audit trail of config changes; a settings registry so nothing is hardcoded. English + Danish.
  • Production-ready deploy. Single process serving the UI + API over one TLS origin, HSTS, and a break-glass CLI recovery command — no reverse proxy required.

In the pipeline

  • Full sensor coverage. Working toward parity with PRTG & CheckMK's sensor catalogues — WMI, SSH/script, rich SNMP tables, and more.
  • Maintenance windows. Scheduled suppression like PRTG, with automatic pause during planned work.
  • Deeper device & customer model. Device/customer detail pages, custom fields, and credentials that inherit customer → group → device → sensor.
  • Multi-tenant Entra SSO. Sign-in for the MSP and each customer tenant — including GDAP-delegated customer tenants.
  • Self-updating probes + appliances. Core-driven auto-update, downloadable per-OS installers, and a ready-to-run Hyper-V / VMware probe appliance.
  • Smart integrations. NinjaOne & Automox (auto-pause devices during patching), plus inMobile / CPSMS and templated notifications with inheritance.
  • White-label & maps. Your own branding/logo and customizable per-customer monitoring maps.
  • Scale to thousands of customers. Searchable customer switcher plus clustering / load-balancing and NOC wallboards.
  • Deeper discovery + HA. SNMP/WMI fingerprinting with role-based auto-grouping and a clustered, multi-node alert engine.
Built in the open, AI-assisted. Pulse is proudly "vibe-coded" — designed and implemented rapidly in pair-programming sessions with Anthropic's Claude (Opus). The architecture is deliberate and reviewed; the velocity is the fun part. Expect rapid iteration, honest status, and a real feature set rather than a slide deck.

Principles

Why build another monitoring tool?

🔒

Yours, end to end

Self-hosted with no phone-home. Probes are outbound-only; nothing about your network is exposed.

🏢

Made for MSPs

True multi-tenancy: customers, departments, zones, and per-tenant roles — one deployment, many clients.

🧭

Discovers for you

Point it at a subnet and it finds hosts, fingerprints them, and suggests the right sensors.

🗄️

Database freedom

First-class SQL Server and PostgreSQL. No provider lock-in, ever.

Fast metrics

Time-series in VictoriaMetrics — never bloating your relational database.

🛎️

Alerts that make sense

SLA tiers, dependency suppression, and escalation so you're paged for causes, not symptoms.

Source & public release — announced later ✨