Setka ("network" in Russian, internally still module-named netviz) captures live TCP/UDP traffic on an interface, aggregates it into flows, and streams them to a browser over WebSocket in real time. Unlike the other early-stage tools in this account, the full pipeline actually runs end-to-end today.
| Stage | Today | Planned |
|---|---|---|
Capture (internal/capture) |
✅ Real libpcap capture, BPF-filtered to TCP/UDP | — |
Enrich (internal/enricher) |
443 → "browser") |
Real process lookup via OS APIs |
Process (internal/processor) |
✅ Real flow aggregation, idle-flow cleanup every 60s | — |
API (internal/api) |
✅ Real WebSocket broadcast to connected browser clients | REST endpoints alongside the socket |
| Web UI | ✅ Minimal static page | DNS reverse resolution, GeoIP, D3.js flow graph |
# macOS: brew install libpcap · Linux: sudo apt-get install libpcap-dev
git clone https://github.com/NoamFav/Setka && cd Setka
go mod download
sudo go run cmd/netviz/main.go # requires root for packet capture
sudo go run cmd/netviz/main.go -i en0 # or target a specific interface
# then open http://localhost:8080Tip
Run curl google.com in another terminal while the server is up — the flow should appear in the web UI within a second.
