Skip to content

Prerequisites & system requirements

  • Go 1.24+ — required to build (declared in go.mod; CI tests Go 1.24 and 1.25).
  • make, git.
  • systemd (v250+) and iproute2 — for a production multi-instance install.
  • Root access — needed for make install, sysctl tuning, FD limits, and IP aliases.

The binaries are static (CGO_ENABLED=0) and depend on only three Go libraries: golang.org/x/crypto (SSH), golang.org/x/sys, and prometheus/client_golang.

Sizing depends on how many devices you serve and how large their configs are.

ScenariovCPURAMDisk
Laptop trial (100–1,000 devices, small configs)24 GBa few GB
Mid-scale rig (5k–10k devices)4–816 GB50 GB+
Full 50k reference1248 GB300 GB (SSD preferred)

Disk is driven by the size distribution: a fleet skewed toward xl/2xl+ buckets needs far more space than the default 40/40/15/5 mix. Use an SSD — config delivery is mmap-backed and benefits from fast random reads under load.

A full 50k install maps 20 IP addresses on one interface to 2,500 ports each. These can be plain IP aliases on a single NIC (loopback or routable) — you do not need 20 physical interfaces. The network setup page covers the deploy/ip-aliases.sh helper.

For a loopback trial you need nothing beyond 127.0.0.1.

Tens of thousands of listeners means tens of thousands of open sockets. A production install raises fs.file-max, the per-user nofile limit (to 200,000), and several net.* sysctls. These are applied for you by make install — see System install.