Self-Hosting Overview
A self-hosted instance is a small Docker Compose stack you run on your own infrastructure. It phones home to the GridNMS platform over a single outbound HTTPS connection for licensing, global notices, and software updates. No inbound connections to GridNMS are required.
What’s in the stack
Section titled “What’s in the stack”| Service | Purpose | Ports |
|---|---|---|
server | Web UI + API plus the cloud connector (licensing, updates). The server bakes the client SPA and serves it — there is no separate web container. | UI+API (default 3001), 514/udp syslog, 162/udp trap |
postgres | TimescaleDB / PostgreSQL 16 | internal |
memgraph | Topology graph | internal |
collector | The sensor: ICMP / SNMP / SSH polling, syslog, traps | internal |
updater | Pulls cloud-published server image updates | internal |
clickhouse + logserver | Optional log-management tier (--profile logs) | 3002 |
The stack does not include the GridNMS-operated control plane (platform service, licensing issuer, signup, portal) — those stay in the cloud and you reach them only through the connector’s outbound check-in.
Prerequisites
Section titled “Prerequisites”- Linux (amd64/x86-64 or arm64/aarch64) with Docker Engine 24+ and the
Compose plugin, or Windows 10/11 with Docker Desktop (WSL2 backend).
The images are
linux/amd64+linux/arm64; on Windows they run inside Docker Desktop’s WSL2 VM. The installer auto-detects the architecture. - 4 vCPU / 8 GB RAM / 40 GB disk is comfortable for a starter deployment.
- Outbound HTTPS (443) to
platform.gridnms.ioandimages.gridnms.io. - Your license key (from the approval email).
How licensing works
Section titled “How licensing works”On first boot the connector registers with the platform using your license
key, receives a short-lived signed license token, and verifies it locally against
the bundled public key (license-public.pem). It re-checks in hourly. Your
feature set, device limit, and license state are controlled centrally — editing
the local database cannot grant a higher tier, because the signature won’t verify.
If the instance can’t reach the platform, it runs on the last good license through a short grace window, then degrades. A true offline tier is available — see Air-gapped deployments.
- Configuration — the bundle contents and
.envreference. - Adding collectors — scale to more sites and segments.
- Updates — automatic server and collector updates.