In today’s fast-paced digital landscape, staying on top of the performance and health of your infrastructure is crucial. Real-time monitoring tools like Netdata offer valuable insights into system metrics, enabling swift troubleshooting, proactive optimization, and resource utilization analysis.

While cloud-based monitoring services abound, self-hosting Netdata emerges as an alternative for monitoring your HomeLab, granting you unparalleled control, data privacy, and cost savings.

Netdata runs seamlessly on various systems, including physical and virtual servers, containers, and IoT devices - Supporting Linux, FreeBSD, and MacOS.

In this blog post, I will give you the key points for Self-Hosting Netdata with Docker, highlighting its advantages and showcasing how it empowers organizations and individuals to take charge of their monitoring infrastructure.

After the completion of this guide, you will be able to have a cool dashboard like this one:

Why NetData?

  • Real-time Monitoring: Netdata provides real-time monitoring of your systems and applications. By self-hosting Netdata, you can monitor the performance of your infrastructure in real-time without relying on external services or cloud-based solutions.

  • Data Privacy and Security: Self-hosting Netdata gives you complete control over your monitoring data.

    • You don’t have to send your system metrics to external servers or cloud platforms, ensuring the privacy and security of your data.
  • Customization and Flexibility: When you self-host Netdata, you have the freedom to customize and configure it according to your specific needs.

    • You can choose the plugins and metrics you want to monitor, set up custom alerts, and integrate it with your existing monitoring stack.
  • Offline Monitoring: Self-hosting Netdata allows you to monitor your infrastructure even in offline or restricted network environments.

    • This can be beneficial in certain scenarios where internet connectivity is limited or not available.
  • Cost Savings: By self-hosting Netdata, you can avoid the costs associated with subscribing to external monitoring services.

    • This can be particularly beneficial for small businesses or individuals who want to monitor their infrastructure on a budget.

Installing NetData with Docker

For this guide, I assume that you have Docker and Docker compose installed in your local machine.

The docker-compose file that I recommend to use is this one (optionally you can use it together with NGINX Proxy Manager):

version: '3.8'
    container_name: netdata
    image: netdata/netdata
      - '19999:19999'
      - netdataconfig:/etc/netdata
      - netdatalib:/var/lib/netdata
      - netdatacache:/var/cache/netdata
      - '/etc/passwd:/host/etc/passwd:ro'
      - '/etc/group:/host/etc/group:ro'
      - '/proc:/host/proc:ro'
      - '/sys:/host/sys:ro'
      - '/etc/os-release:/host/etc/os-release:ro'
    restart: unless-stopped
      - SYS_PTRACE
      - apparmor=unconfined
    networks: ["nginx_nginx_network"] #optional 

networks: #optional
  nginx_nginx_network: #optional
    external: true #optional

This is it. Now you have your HomeLab monitoring setup with NetData and Docker.

I recommend you to have a look to the options - I Find the sensors section particularly interesting:

Net Data Sensors