Why self-host Netdata on a VPS
Netdata's strength is per-second granularity and auto-detection. Where Prometheus requires exporters and a scrape configuration, Netdata automatically discovers your services (Nginx, MySQL, Docker, systemd, disks) and exposes thousands of metrics right from installation, with one-second resolution. It's the ideal tool for live diagnosis: a load spike, a runaway process, an I/O saturation are seen instantly. By hosting it on your own VPS rather than going through Netdata Cloud, you keep all the metrics local and avoid exporting infrastructure data. The agent is designed to be lightweight despite the richness of the data, thanks to efficient in-memory compression. It's the perfect complement to availability monitoring: Netdata tells you why a service is slow, not just whether it responds.
The strengths of this template on your VPS
- Per-second real-time resolution, ideal for diagnosing an incident live.
- Auto-detection of hundreds of services (Nginx, MySQL, PostgreSQL, Docker, Redis) with no configuration.
- Immediate web interface with thousands of graphs organized by category.
- Relevant preconfigured alerts from installation, adjustable to your thresholds.
- Lightweight agent optimized so as not to weigh on the resources of the VPS it monitors.
- Anomaly detection based on machine learning built into the agent.
Requirements to host it
Netdata is designed for lightness: it runs comfortably on a 1 vCPU VPS with 1 GB of RAM, even while monitoring a busy server. By default the agent collects a short history in memory; to keep several days of data, enable the dbengine database on disk and plan for a few extra gigabytes. Installation is done via the official kickstart or in a Docker container. To expose the interface over HTTPS, you need a domain name and a reverse proxy; otherwise, you can keep it accessible only via an SSH tunnel for greater security.
Install and secure Netdata on your VPS
Install the agent via the kickstart
On the VPS, run the official script: wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh. The agent starts and the interface is available on port 19999.
Verify the automatic collection
Open http://IP_DU_VPS:19999: Netdata already displays CPU, RAM, disks, network and all detected services. Check that your collectors (Nginx, MySQL, Docker) appear in the side menu.
Restrict access to the interface
By default port 19999 is open. Restrict it at the firewall (ufw allow from VOTRE_IP to any port 19999) or, better, bind it to localhost in netdata.conf and access it via an SSH tunnel: ssh -L 19999:localhost:19999 user@vps.
Expose over HTTPS via a reverse proxy (optional)
For permanent access, place Caddy or Nginx in front of the agent: monitoring.mydomain.com { reverse_proxy localhost:19999 }. Add basic authentication to protect the exposed interface.
Adjust retention and alerts
Enable the dbengine database to keep several days of history on disk, then adjust the alert thresholds in health.d/ (for example an alert if available RAM drops below 10%) and wire up an email or Telegram notification.
If you manage several VPSes, install Netdata on each then aggregate them with a Netdata parent (streaming configuration). The child agents send their metrics to the parent, which gives you a centralized multi-server view while keeping the real-time collection local. It's the self-hosted equivalent of a Netdata Cloud, without your data leaving your infrastructure: a single parent VPS is enough to receive the streams from several children.
The official documentation
For advanced configuration and options specific to the tool, refer to the official Netdata documentation. This guide covers deployment on a VPS; the vendor's documentation remains the reference for fine-tuning, major updates and specific use cases.