A self-hosted internet speed test that runs entirely on your own machine.
No third-party servers, no tracking, no ads.
Pick whichever runtime you have — no extra packages needed for either:
| Runtime | Minimum version |
|---|---|
| Python 3 | 3.6+ (built-in on macOS/Linux) |
| Node.js | 14+ (no npm install needed — uses only built-ins) |
Python:
python3 server.pyNode.js:
node server.jsBoth open at http://localhost:3000.
Use a custom port if needed:
python3 server.py 8080
node server.js 8080| Phase | What happens |
|---|---|
| Ping | 10 small HTTP requests → measures round-trip latency |
| Download | Server streams 1 GB of random bytes → browser measures throughput |
| Upload | Browser sends 512 MB of random bytes → server measures throughput |
All traffic stays on localhost.
The download/upload payload sizes can be tuned at the top of public/app.js (CFG.dlSize / CFG.ulSize).
Press Ctrl + C in the terminal.