# Running ntopng from Source on Raspberry Pi 5 (ARM64)

#### **Date:** June 4th, 2025  
**Category:** Network/Security  
**Backlink:** [LibreNMS Docker Deployment on Raspberry Pi 5](https://docs.natenetworks.com/books/06-raspberry-pi-python-linux-tips/page/librenms-docker-deployment-on-raspberry-pi-5)

---

#### **Overview**

This guide details how I installed and configured the open-source network traffic monitor **ntopng** on my **Raspberry Pi 5 (ARM64)**. The goal was to gain full LAN visibility using packet inspection via the Pi’s wireless interface. LibreNMS is already in place for SNMP-based metrics, and ntopng complements it by showing real-time traffic flows and bandwidth usage.

---

#### **Why Build from Source?**

The official Docker images for `ntop/ntopng` were built for `amd64`, which is incompatible with the Pi 5's `arm64` architecture. Since no prebuilt stable ARM image was available, I opted to build ntopng from source.

---

#### **Install Prerequisites**

```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y \
  build-essential cmake libtool autoconf automake pkg-config \
  libzmq3-dev libsqlite3-dev libhiredis-dev libmaxminddb-dev \
  libpcap-dev libcurl4-openssl-dev libssl-dev libnghttp2-dev \
  libmariadb-dev-compat libmariadb-dev libnats-dev libcap-dev \
  redis git
```

---

#### **Clone and Build nDPI**

```bash
cd ~
git clone https://github.com/ntop/nDPI.git
cd nDPI
./autogen.sh
make
```

---

#### **Clone and Build ntopng**

```bash
cd ~
git clone https://github.com/ntop/ntopng.git
cd ntopng
./configure
make
sudo make install
```

---

#### **Create Systemd Service File**

```ini
# /etc/systemd/system/ntopng.service

[Unit]
Description=NtopNG Community Edition (custom build)
After=network.target

[Service]
ExecStart=/usr/local/bin/ntopng --dont-change-user --interface=wlan0 --http-port=3000
WorkingDirectory=/var/lib/ntopng
User=root
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

---

#### **Enable and Start Service**

```bash
sudo mkdir -p /var/lib/ntopng
sudo systemctl daemon-reload
sudo systemctl enable ntopng
sudo systemctl start ntopng
```

---

#### **Web Access**

- Open your browser to:  
    `http://<Pi5-IP>:3000`  
    In my case: `http://192.168.1.174:3000`

If the page doesn’t load, check:

```bash
sudo systemctl status ntopng
sudo journalctl -u ntopng --no-pager

```

---

[![2025-06-04 16_40_18-ntopng - Live — Mozilla Firefox.png](https://docs.natenetworks.com/uploads/images/gallery/2025-06/scaled-1680-/NnoIDUjBZ08Ow3LH-2025-06-04-16-40-18-ntopng-live-mozilla-firefox.png)](https://docs.natenetworks.com/uploads/images/gallery/2025-06/NnoIDUjBZ08Ow3LH-2025-06-04-16-40-18-ntopng-live-mozilla-firefox.png)

[![2025-06-04 16_40_05-ntopng - Traffic — Mozilla Firefox.png](https://docs.natenetworks.com/uploads/images/gallery/2025-06/scaled-1680-/mO6qF1VvLNFiADZj-2025-06-04-16-40-05-ntopng-traffic-mozilla-firefox.png)](https://docs.natenetworks.com/uploads/images/gallery/2025-06/mO6qF1VvLNFiADZj-2025-06-04-16-40-05-ntopng-traffic-mozilla-firefox.png)