Quickstart · Documentation · Features · Deploy · API · Roadmap
Northplane is a monitoring and alarming server in one static Go binary. It polls hosts and services (17 built-in checks, Nagios plugins, SNMP, an optional agent), turns state changes and external events — webhooks, Alertmanager, e-mail, SNMP traps, MQTT, ESPA, phone calls, SMS — into alerts, and escalates them to the people on call over voice calls with IVR acknowledgement, SMS, mobile push, e-mail, chat and ticket systems. Every capability is a REST endpoint; the web UI, the np CLI, the AI agent chat and the MCP server are clients of the same API with the same roles and permissions.
No external database, queue or web server: SQLite (or PostgreSQL), an embedded time-series store, the React UI, the Swagger UI, the MCP server and the full manual all live inside northplaned.
- One binary, zero ops.
northplanedembeds everything — UI, API, docs, time-series store, MCP server. SQLite by default, PostgreSQL when you want it. Static build, distroless image, runs on a Raspberry Pi or a 96-core box. - Alarming, not just alerting. Escalation policies with on-call schedules, repeats and backups; durable outbox with retries and dead letters; acknowledge from the web, the app, an SMS keyword, a keypad digit on the call or an ack link — every path stops the chain.
- Phone-grade inputs and outputs, on-prem if you want. Twilio or your own Asterisk/FreePBX (FastAGI + AMI), ESPA 4.4.4 / ESPA-X, MQTT, IMAP, SNMP traps in; voice, SMS, FCM/APNs push, ntfy, Slack, Teams, MQTT, ServiceNow / Jira / Zendesk out.
- Nagios-compatible, API-first, AI-ready. Run your
check_*plugins and import your Nagios config; drive everything through REST with RFC 9457 errors,If-Matchversioning, YAML config bundles and SSE; let an AI agent operate it under your RBAC — through the built-in chat or any MCP client.
One-line installer (Linux/macOS, amd64/arm64 — verified checksums, sudo only if needed):
curl -fsSL https://raw.githubusercontent.com/myfoxit/northplane/main/install.sh | sh
northplaned serve # open http://127.0.0.1:8443/setup and create your adminDocker Compose with automatic TLS (Caddy in front, Let's Encrypt as soon as DOMAIN resolves to the host):
git clone https://github.com/myfoxit/northplane.git && cd northplane
docker compose up -d # open https://localhost (DOMAIN=monitoring.example.net for a real cert)Plain Docker (you bring TLS or a proxy; NORTHPLANE_TLS_INSECURE is for a local trial only):
docker run -d --name northplane -p 8443:8443 -v northplane-data:/var/lib/northplane \
-e NORTHPLANE_TLS_INSECURE=true -e NP_DEFAULT_ADMIN_DISABLED=1 ghcr.io/myfoxit/northplane:latestAs a service (Linux, systemd — creates the northplane user, config, secret key and unit):
sudo northplaned init && sudo systemctl enable --now northplanedWant something to look at right away? northplaned serve --demo seeds hosts, services, alerts, an on-call schedule, a dashboard and two demo users (operator@demo.local / operator-demo-2026!). Then continue with First steps — templates, a channel, a contact, an escalation policy and your first real alarm in ten minutes.
| Monitoring | Hosts & services with folders, labels, templates and effective config · 17 in-process checks (ICMP, TCP, HTTP/S, TLS expiry, DNS, SMTP, IMAP, NTP, SSH, SNMP get/walk, NRPE, HTTP flows, agent …) · any Nagios plugin · np-agent (push, pull, listener) · SNMP traps · heartbeats · network discovery · soft/hard states, flapping, dependencies, downtimes & silences · NP-TSDB metrics with dashboards, wallboards, business-service trees with SLAs, scheduled reports |
| Alarming | Event sources for webhooks, Alertmanager, IMAP, SNMP traps, MQTT, ESPA 4.4.4 / ESPA-X, Twilio voice & SMS, Asterisk FastAGI · CEL alert rules with dedup, pending-for and auto-close · incidents & correlation · escalation policies, on-call schedules (layers, overrides, ICS), contacts with per-period preferences · IVR menus · 13 channel types · outbox with exponential retries and dead-letter replay · tamper-evident audit chain |
| Platform | REST API with OpenAPI 3.1 & Swagger UI · RBAC, multi-tenancy, API tokens · local users, OIDC (PKCE), LDAP/AD sync · YAML config bundles (np apply) · federation (edge sites pulling config from a main instance) · SQLite or PostgreSQL · /metrics, /healthz, /readyz · structured logs · backup command |
| AI | Agent chat over 10 LLM providers (Anthropic, OpenAI, Google, Mistral, Groq, Ollama …) with a tool policy and human approval for mutations · MCP server (stdio + Streamable HTTP) for Claude, Cursor, VS Code, Windsurf and friends — same permissions as the API |
One process, one data directory. Checks flow scheduler → executor → state machine → events; events flow through CEL rules into alerts, escalation and the notification outbox; every worker is supervised and restart-safe (escalation timers and deliveries are persisted). Details: Architecture · Alarming pipeline.
| Variant | Read |
|---|---|
| Docker Compose + bundled Caddy on one box (Let's Encrypt or internal cert) | Docker Compose |
VM behind your own reverse proxy / edge TLS (NORTHPLANE_TRUST_PROXY=true) |
Proxmox VM behind a central Caddy |
| Binary + systemd with your certificate pair | Installation |
| Push-to-deploy pipeline (GitHub Actions → GHCR → SSH rollout with verify & rollback) | CI/CD |
Configuration is deliberately small (config.yaml or NORTHPLANE_* env vars: listen address, TLS or trusted proxy, data dir, storage DSN, OIDC/LDAP, federation) — everything else is managed through the API, the UI or bundles. See the configuration reference and the security hardening checklist.
Nagios / Icinga plugins and configs · Prometheus Alertmanager · Twilio · Asterisk / FreePBX · MQTT brokers · ESPA pagers and nurse-call systems · IMAP mailboxes · SNMP v1/v2c/v3 devices · ntfy · Slack · Microsoft Teams · ServiceNow · Jira · Zendesk · FCM / APNs (the Northplane alarm app) · OIDC providers · LDAP / Active Directory · Claude, Cursor, VS Code, Windsurf, Codex and Gemini via MCP.
The manual ships inside every binary at /docs/ and is published from the latest build at doktrace.com/docs: Getting started · Concepts · Monitoring · Alarming · AI & MCP · UI guide · Administration · Deployment · CLI & API reference (plus the generated REST reference) · Development. Machine-readable: llms.txt.
git clone https://github.com/myfoxit/northplane.git && cd northplane
make dev # Vite HMR on :5173 + auto-rebuilt Go backend on 127.0.0.1:8443, demo data seeded
make test # go vet + go test (CI also runs -race, golangci-lint, vitest, Playwright e2e)
make all # UI + docs + binaries into ./binGo 1.25 and Node 22. The backend is in internal/ (one package per subsystem), the UI in web/ (React 19, TanStack, Tailwind, shadcn), the docs in docs/ (Astro Starlight). The OpenAPI spec is generated from the Go route registry and drift-checked against the TypeScript client types and the docs. Read the development guide and CONTRIBUTING.md.
Northplane runs in production and is under active development. Known gaps and the backlog are listed honestly on the roadmap and known issues page. Found a bug or want a feature? Open an issue. Security reports: see SECURITY.md.
MIT © 2026 Alexander Hoehne and the Northplane contributors.



