Self-host Netdata
Observabilitydeployed & timed by usprices checked · Jul 2026
Real-time, per-second monitoring of systems, containers, and applications with zero-configuration auto-detection and a lightweight C agent.
Datadog / yr$180
Self-hosted / yr~$55
You keep$125/yr
Key facts
CategoryObservability
LicenseGPL-3.0
StackC
Min RAM256 MB
Dockeryes
Difficulty
Our recommendation
Run Netdata when you want zero-configuration, per-second visibility into a box the moment the container starts — no dashboards to build, no PromQL to learn. It's the lightest option here by far (256 MB) and the easiest to try. If you need long retention, multi-node correlation, or alerting rules as code, Prometheus plus Grafana is the more deliberate choice.
What you need
- Any VPS with at least 256 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- Under an hour if you've used Docker before
Install with Docker Compose
Save this as compose.yml and run docker compose up -d:
# Netdata — official Docker image, host networking for full system visibility
docker run -d --name=netdata --pid=host --network=host \
-v netdataconfig:/etc/netdata -v netdatalib:/var/lib/netdata -v netdatacache:/var/cache/netdata \
--cap-add SYS_PTRACE --cap-add SYS_ADMIN --security-opt apparmor=unconfined \
--restart unless-stopped netdata/netdata # → http://SERVER_IP:19999What you take on
Netdata's zero-config appeal comes with a few things to know going in:
non-negotiableIt's open-core. The local agent and dashboard are GPL-3.0 and genuinely free, but the multi-node Cloud view and longer-term features sit behind Netdata Cloud — read the split before assuming everything is self-hosted.
non-negotiableRetention is short by default. It's built for real-time, not a year of history — export to Prometheus or another long-term store if you need that.
non-negotiableHost networking and elevated capabilities. The official container wants --pid=host, --network=host, and a couple of --cap-add flags for full visibility — understand what you're granting before you run it.
An alternative to
More in Observability
ObservabilityGrafana
GoTypeScript
easyRead guide →
ObservabilityGraylog
JavaMongoDBOpenSearch
hardRead guide →
ObservabilityOpenObserve
Rust
easyRead guide →
ObservabilityPrometheus
Go
easyRead guide →