gospeedtest¶
An open-source, self-hosted internet speed test, written in Go. Inspired by speedtest.net — keeps the fancy gauge in the browser and adds a rich terminal UI for headless boxes.
A single binary serves both the speed-test endpoints and the web UI, and the same binary ships a CLI mode that runs the test from a terminal.
Features¶
- Browser UI at
/— animated SVG gauge, live ping / download / upload, ISP and IP info, served from assets embedded in the binary. No Node, no build step. - CLI mode with a Bubble Tea
TUI — animated gauge, live numbers, works over SSH.
--jsonfor machine-readable output. - Default-mode CLI: running the bare binary (no subcommand) launches
the CLI against
http://localhost:8080. - Single Go binary, no runtime dependencies. Cross-compiled to linux / darwin / windows × amd64 / arm64 by CI.
- HTTP-based protocol (LibreSpeed-style): parallel
GET /downloadandPOST /uploadstreams plus a/pingendpoint. No proprietary protocol — any reverse proxy / load balancer works without special handling. - MIT licensed.
Where to next¶
-
Install, run the server, run a test in 30 seconds.
-
Every flag, every endpoint, reverse-proxy notes, safety caps.
-
Default-mode dispatch, flags, JSON output schema, keybindings.
-
Wire protocol, measurement methodology, ramp-up trim, jitter math.
-
What stays local, what goes to ipinfo.io, when lookups are skipped.
-
Build, test, send a PR.