Installation
Supported platforms
Section titled “Supported platforms”The Releases page has a prebuilt binary for these platforms:
| Operating system | Architectures |
|---|---|
| Linux | x86_64, arm64, arm (ARMv6) |
| macOS | x86_64, arm64 |
| FreeBSD | x86_64 |
| Windows | x86_64 |
Linux releases also include deb, rpm, apk, and Arch Linux packages. The Docker image is ghcr.io/autobrr/netronome.
Install Netronome
Section titled “Install Netronome”You need curl and tar.
-
Download the latest release and extract it to
/usr/local/bin. The extraction step usessudo. If you run as root, removesudo.Terminal window arch=$(uname -m | sed 's/^aarch64$/arm64/; s/^amd64$/x86_64/; s/^armv[67]l$/arm/')url=$(curl -fsSL https://api.github.com/repos/autobrr/netronome/releases/latest | grep -i "browser_download_url.*_$(uname -s)_${arch}\.tar\.gz\"" | cut -d'"' -f4)curl -fL "$url" -o netronome.tar.gz &&sudo tar -C /usr/local/bin -xzf netronome.tar.gz -
Create a configuration file. The command writes
~/.config/netronome/config.toml.Terminal window netronome generate-config -
Create a systemd service. The service runs Netronome as the user in its name.
Terminal window sudo tee /etc/systemd/system/netronome@.service > /dev/null <<EOF[Unit]Description=netronome service for %iAfter=syslog.target network-online.target[Service]Type=simpleUser=%iGroup=%iExecStart=/usr/local/bin/netronome serve --config=/home/%i/.config/netronome/config.toml[Install]WantedBy=multi-user.targetEOF -
Enable and start the service for your user.
Terminal window sudo systemctl enable --now netronome@$USER
If you install from a deb, rpm, apk, or Arch Linux package, the binary is not in /usr/local/bin. Run command -v netronome and put that path in ExecStart.
You need curl and tar.
-
Download the latest release and extract it to
/usr/local/bin. The extraction step usessudo. If you run as root, removesudo.Terminal window arch=$(uname -m | sed 's/^aarch64$/arm64/; s/^amd64$/x86_64/; s/^armv[67]l$/arm/')url=$(curl -fsSL https://api.github.com/repos/autobrr/netronome/releases/latest | grep -i "browser_download_url.*_$(uname -s)_${arch}\.tar\.gz\"" | cut -d'"' -f4)curl -fL "$url" -o netronome.tar.gz &&sudo tar -C /usr/local/bin -xzf netronome.tar.gz -
Create a configuration file and start the server.
Terminal window netronome generate-confignetronome serve
-
Download the Windows
.zipfile from the Releases page. -
Extract the file into a folder.
-
Put the external tools that you want to use (for example
iperf3.exeandlibrespeed-cli.exe) in the same folder. -
Add the folder to the
Pathenvironment variable. Then restart Explorer and all open terminals. -
Create a configuration file. The command writes
C:\Users\<USERNAME>\.config\netronome\config.toml.Terminal window netronome generate-config -
Start the server.
Terminal window netronome serve
To start Netronome when Windows starts, create a task in Task Scheduler that runs netronome serve.
The Docker image contains all the external tools: iperf3, librespeed-cli, traceroute, mtr, and vnstat.
The repository has two Compose files in distrib/docker:
docker-compose.ymluses SQLite.docker-compose.postgres.ymladds a PostgreSQL container and gives Netronome theNET_RAWcapability for MTR and privileged ping.
-
Clone the repository.
Terminal window git clone https://github.com/autobrr/netronome.gitcd netronome -
Give the data folder to the container user. The Compose files mount the
netronomefolder of the repository at/data. The container runs as the usernetronome, and that user must own the folder. This command runschownin the container as root:Terminal window docker compose -f distrib/docker/docker-compose.yml run --rm --user root --entrypoint chown netronome netronome:netronome /data -
Create a configuration file. In a container,
generate-configsets the listen address to0.0.0.0.Terminal window docker compose -f distrib/docker/docker-compose.yml run --rm netronome generate-config -
Start the container.
Terminal window # SQLitedocker compose -f distrib/docker/docker-compose.yml up -d# PostgreSQLdocker compose -f distrib/docker/docker-compose.postgres.yml up -d
For Tailscale in Docker, see Docker agents and Tailscale.
After the server starts, go to First run.
External tools
Section titled “External tools”If you use the Docker image, skip this section. The image contains all the tools in the table.
Speedtest.net tests, the web interface, DNS monitors, and packet loss monitors without MTR need no external tool. The other features run a program that must be in the PATH of the user that runs Netronome.
| Tool | Needed for | Where |
|---|---|---|
iperf3 | iperf3 speed tests | Server |
librespeed-cli | LibreSpeed speed tests | Server |
traceroute (tracert on Windows) | The Traceroute tab | Server |
mtr | Packet loss for each hop. Without it, packet loss monitors use ping only. | Server |
vnstat | Bandwidth data | Agent |
If a tool is missing, only the feature that needs it stops with an error. The rest of Netronome continues to work.
On Linux, install the packaged tools with your package manager:
# Debian/Ubuntusudo apt-get install iperf3 traceroute mtr vnstat
# RHEL/Fedorasudo dnf install iperf3 traceroute mtr vnstatGet librespeed-cli from the LibreSpeed CLI releases.
On Windows, get MTR from WinMTRCmd. Netronome looks for a program with the name mtr. Name the file mtr.exe and put it in a folder in your Path.
Disk temperatures and SMART data
Section titled “Disk temperatures and SMART data”Temperatures from CPU, NVMe, and other system sensors work in all builds. SATA and HDD temperatures and disk model names come from SMART data. The binaries on the Releases page have no SMART support. The Docker image and make build binaries have it. For all the conditions, see Temperature monitoring.
Update Netronome
Section titled “Update Netronome”To replace the binary with the latest release, run:
netronome updateThe command downloads the release from GitHub, compares it with the release checksums, and replaces the running binary. Restart Netronome after the update. For Docker, pull the new image and create the container again.
To see the version that you run, run netronome version.
