-
Notifications
You must be signed in to change notification settings - Fork 0
Quick Start
Kris Armstrong edited this page May 19, 2026
·
1 revision
gh release download --repo krisarmstrong/stem --pattern '*-darwin-arm64.tar.gz'
tar -xzf stem-*-darwin-arm64.tar.gz
STEM_AUTH_USERNAME=admin STEM_AUTH_PASSWORD=admin ./stem web -p 8080The Stem requires STEM_AUTH_USERNAME and STEM_AUTH_PASSWORD env vars — it fails fast otherwise. TLS is on by default; the binary mints a self-signed certificate at first run. Browser will warn — accept the exception once.
# Ubuntu / Debian
gh release download --repo krisarmstrong/stem --pattern '*_amd64.deb'
sudo dpkg -i stem_*_amd64.deb
# Fedora / RHEL
gh release download --repo krisarmstrong/stem --pattern '*.x86_64.rpm'
sudo rpm -ivh stem-*.x86_64.rpmThe systemd unit reads credentials from /etc/stem/auth.env. Set them before starting:
sudo install -o root -g root -m 600 /dev/stdin /etc/stem/auth.env <<EOF
STEM_AUTH_USERNAME=admin
STEM_AUTH_PASSWORD=$(openssl rand -base64 24)
EOF
sudo systemctl start stem- Visit
https://localhost:8080/(note: HTTPS even on the default port). - Setup wizard: confirms the admin credentials and asks which role this stem is — Reflector or Test Master.
- After setup, the UI lands on either:
-
/reflectorif you picked Reflector -
/testsif you picked Test Master
-
You can switch role later via the chip in the upper-right of the topbar.
The Stem also has a CLI for headless / scripted use:
stem reflect -i eth0 # reflector mode on eth0
stem test -t rfc2544_throughput -i eth0 # one-shot benchmark
stem list-tests # all supported test types
stem list-tests --by-module # grouped by module
stem help modulescurl -sk https://<host>:8080/__version | jquiBuildHash non-empty confirms the React frontend was embedded.
-
Reflector mode requires Linux + CGO build. macOS stem ships without the C dataplane and the Reflector backend will refuse to start with
CGO dataplane not available on this platform. Use a Linux stem for the reflecting node. - Test Master is fully supported on macOS. RFC 2544 / Y.1564 / Y.1731 traffic generation uses gopacket and works without CGO.
-
Raw sockets: traffic generation needs
CAP_NET_RAW. The.deb/.rpminstall configures this via systemdAmbientCapabilities. For dev runs,make dev-runsets the cap automatically.