Speed Test by OpenSpeedTest™
For network utilities, Speed Test by OpenSpeedTest™ is a self-hosted solution that provides & HTML5 Network Performance Estimation Tool.
Open-source network testing, honestly reviewed. No marketing fluff, just what you get when you self-host it.
TL;DR
- What it is: Free, MIT-licensed HTML5 speed test you deploy on your own server — measures download, upload, ping, and jitter entirely from a web browser, no plugins required [README].
- Who it’s for: Sysadmins and homelabbers who want to test internal LAN/WiFi performance without phoning home to Ookla or Netflix. Also developers who want to embed a speed test widget directly in their app [2].
- Cost savings: Ookla’s Speedtest.net and similar commercial options are free to use online but send your data to third-party servers and can’t test internal networks. OpenSpeedTest costs $0 to self-host beyond the VPS or server you’re already running [README].
- Key strength: Vanilla JavaScript with zero third-party dependencies. The entire test script is under 8kB gzip. Genuinely works on any browser from IE10 onwards, on any device with a screen — phones, TVs, smart displays [README][2].
- Key weakness: You’re testing against your own server, which means this measures your internal network performance — not your ISP’s external connection speed to the wider internet. That’s a feature for some use cases and a hard limitation for others.
What is Speed Test by OpenSpeedTest™
OpenSpeedTest is a self-hosted HTML5 network speed testing tool. You deploy it on a server inside your network, point a browser at it, and get download speed, upload speed, ping, and jitter measurements. No Flash, no Java, no apps, no third-party JavaScript loaded from CDNs.
The project started in 2011 and moved to the OpenSpeedTest.com domain in 2013 [README]. It’s written entirely in Vanilla JavaScript using only built-in browser Web APIs — XMLHttpRequest (XHR), HTML, CSS, JS, and SVG. The GitHub repository sits at 3,479 stars as of this review.
What makes this unusual is the technical discipline behind the minimalism. The UI is rendered in SVG, which means it scales cleanly to any display size without media query hacks. The test script is under 8kB gzip. There are no npm dependencies to audit, no supply chain attack surface, no upstream framework breaking changes to chase [README]. The project’s own tagline for this is “Secure by Design” — a static file server is all you need, and static files don’t have hidden exploits or need security patches [README].
The deployment surface is wide: Docker Hub image, Helm chart for Kubernetes, Snap package, a native Windows/Mac/Linux GUI app, and iOS/Android apps that can themselves act as the server [README]. You can also drop the static files behind any web server that supports HTTP/1.1 — Nginx, Apache, IIS, or Express [README].
Why people choose it
The use cases that keep appearing across reviews fall into three buckets, and they’re different enough that they’re almost different products.
Internal network testing. This is where OpenSpeedTest earns its keep. If you want to know whether your 10GbE switch is actually delivering 10GbE between two machines, or why your NAS transfers are slower than expected, public speed test sites are useless — they test your ISP uplink, not your LAN. Brandon Lee at VirtualizationHowto [2] puts it clearly: “You have probably relied on publicly available speed test servers to check the speed of your connection from an Internet perspective and then used something like iperf to check the speed between devices. Let me introduce you to OpenSpeedTest server.” The self-hosted server fills the gap between “ISP speed test” and “raw iperf benchmark” — you get a browser-based test that runs between any two nodes on your network with no client software required on either side [2].
Privacy-conscious testing. Speedtest.net (Ookla) collects your test results, IP address, and ISP data. Fast.com is operated by Netflix. Cloudflare’s speed.cloudflare.com routes through Cloudflare infrastructure. For anyone in a sensitive environment — financial services, medical, air-gapped industrial networks — sending speed test packets through a third-party server is a compliance or security concern. OpenSpeedTest solves this: the test runs entirely within your infrastructure [README][2].
Embedding speed tests in web apps. The website specifically covers this use case [website]. If you’re building an app where users’ connection quality matters — video streaming, real-time collaboration, file upload services — you can embed OpenSpeedTest as a widget to let users diagnose their own connection without leaving your page. This is a legitimate product integration that none of the public speed test sites support cleanly.
The SaaSHub competitive pages [3][4] consistently list OpenSpeedTest alongside LibreSpeed as the two meaningful open-source alternatives in the self-hosted speed test niche, which aligns with community recommendations in homelab circles.
Features
Based on the README, website, and third-party reviews:
Core measurements:
- Download speed, upload speed, ping latency, and jitter [README][2]
- Supports connections from 1 Kbps to 10 Gbps+ [website]
- Multiple ping samples with configurable count [1]
- Identifies the most stable speeds across multiple test bursts [website]
Testing modes and customization (via URL parameters):
- Automatic test start on page load [2]
- Stress test mode (
?stress=low/medium/high) [1] - Multi-server testing [1]
- Overhead compensation factor adjustment [2]
- Ping sample count customization [1]
Deployment options:
- Docker image (Docker Hub) [README]
- Docker Compose [README]
- Helm chart for Kubernetes [README]
- Snap package [README]
- Native Windows, Mac, and Linux server app [1]
- iOS and Android apps (device acts as the speed test server) [README][2]
- Static files deployable on Nginx, Apache, IIS, or Express [README]
Embed and integration:
- Embeddable JavaScript widget for websites [2][website]
- Configurable auto-run for embedded use [2]
UI design:
- SVG-based interface — works cleanly at any screen size and resolution [README]
- Speedometer-style display [2]
- Uncluttered, minimal — Softpedia’s reviewer calls it “simple and easy to use” and notes it doesn’t adversely affect browser performance [1]
What’s missing:
- No historical test storage or trend graphs
- No multi-user dashboard or results logging
- No authentication layer on the test endpoint (it’s open to anyone who can reach the server)
- No built-in HTTPS (you bring your own reverse proxy)
Pricing: Self-hosted vs. the alternatives
There’s no SaaS pricing tiers to compare here. The software is MIT-licensed and free [README]. The cost is whatever you’re already paying for the server it runs on.
OpenSpeedTest (self-hosted):
- Software: $0
- Server: runs on Nginx with minimal resources — a small VPS or a Raspberry Pi on your LAN is sufficient
- Your time to configure a reverse proxy if you want HTTPS
What you’d pay for comparable closed alternatives:
- Ookla Speedtest Enterprise (for internal network testing at scale): pricing not public, contact sales. Their consumer site is free but sends data to Ookla.
- NetBeez network monitoring (which includes speed testing): starts around $299/mo for agent-based internal monitoring.
- Building your own using iperf3 and a frontend: engineering time, no comparison.
The honest math here is different from most tools on this site. OpenSpeedTest isn’t replacing a $100/mo SaaS bill — it’s replacing a privacy compromise (using Ookla) or filling a capability gap (internal network testing that public tools can’t do). The savings aren’t in dollars per month; they’re in data sovereignty and functionality [2].
If you want to run a quick ISP speed test and don’t care about privacy or internal network testing, Cloudflare’s speed.cloudflare.com is free and gives you latency breakdown and packet loss data that OpenSpeedTest doesn’t show [4]. Use OpenSpeedTest when you need to own the endpoint.
Deployment reality check
The VirtualizationHowto guide [2] walks through Docker installation in detail and the process is straightforward. The Docker image is available on Docker Hub and the default setup is a single container — no database, no separate services. Static files served by the included web server.
What you actually need:
- Any server with Docker, or a web server (Nginx, Apache, IIS, Express) that supports HTTP/1.1 [README]
- 35MB+ post body content length configured — this is for the upload test [README]
- Timeout set to more than 60 seconds [README]
- If behind a reverse proxy, the 35MB post body limit must be configured at the proxy layer, or upload tests will fail [README]
One counter-intuitive configuration note: The README explicitly recommends HTTP/1.1 over HTTP/2 for maximum performance [README]. This trips people up because HTTP/2 is generally considered “better” — but for a speed test that depends on measuring raw throughput, the multiplexing behavior of HTTP/2 can interfere with accurate measurement. Stick with HTTP/1.1 on your Nginx config and follow the project’s published Nginx configuration [README].
Access logs: The README recommends disabling access logs to improve Time to First Byte (TTFB) and server performance during tests [README]. Worth doing if the server is dedicated to speed testing.
HTTPS: Not included. You wire up Caddy or Nginx with a certificate. For internal LAN use, you can skip HTTPS and run plain HTTP on a non-public IP.
Realistic setup time: 15–30 minutes for a Docker deployment on a server you already manage. Another 30 minutes if you’re configuring HTTPS and a domain. The Softpedia reviewer notes you can be up and running with the Windows GUI app in under 5 minutes if you just want to test [1].
No major horror stories in the available reviews. The project is static files served by a web server — there isn’t much to break.
Pros and Cons
Pros
- Genuinely zero dependencies. Vanilla JavaScript, no npm packages, no CDN calls, no framework updates to track. The security surface is a static file server [README].
- Works offline and on isolated networks. The fundamental use case — testing LAN performance — requires no internet access at all [2].
- Under 8kB gzip. Loads fast even on slow connections, which is useful when you’re testing whether a connection is slow [README].
- Runs on anything. IE10+, any device with a browser — phones, tablets, TVs, game consoles, smart displays [README][2].
- Mobile device as server. The iOS and Android apps let you use a phone as the speed test endpoint, which is useful for quick ad-hoc testing in different rooms or locations [README][2].
- MIT license. Do what you want with it — embed in commercial products, fork, rebrand [README].
- SVG UI scales cleanly on any display size without needing responsive breakpoints [README].
- HTTP/2 and HTTP/3 support available even though HTTP/1.1 is recommended for max throughput [README].
Cons
- Not a replacement for ISP speed tests. You’re testing your connection to your own server. Whether that server is on your LAN or a VPS, the result measures a different path than what Ookla or Fast.com measures. Non-technical users sometimes misunderstand this.
- No authentication. Anyone who can reach the server URL can run a test. Fine for a private LAN, a consideration for anything internet-facing.
- No results history or logging. Each test is ephemeral. There’s no built-in way to track performance over time or compare results across dates.
- Reverse proxy configuration is a real footgun. The 35MB post body limit must be set at every layer — forget it at the reverse proxy and upload tests silently fail or return wrong results [README].
- HTTP/2 hurts performance. Counter-intuitive, but you need to configure HTTP/1.1 to get accurate results. This isn’t documented prominently and causes confusion [README].
- 3,479 GitHub stars is modest compared to LibreSpeed (13K+). The project has been around longer but hasn’t attracted the same community engagement.
- No result comparison or sharing. Unlike Speedtest.net where you can share a link to your result, test results here are local to your screen.
- Limited diagnostic depth. Cloudflare’s free tool shows latency percentiles, packet loss, and routing information. OpenSpeedTest gives you four numbers [4].
Who should use this / who shouldn’t
Use OpenSpeedTest if:
- You want to measure LAN or WiFi performance between devices on your internal network — NAS transfers, server backups, wireless dead zones.
- You’re running air-gapped or security-sensitive infrastructure and can’t route test traffic through external servers.
- You want to embed a speed test in your own web application or customer portal.
- You’re building homelab monitoring and want a quick browser-accessible endpoint for spot testing.
- You need something that works on obscure devices (smart TVs, embedded browsers, older hardware) where installing a test client isn’t an option.
Skip it (use Cloudflare speed.cloudflare.com or Fast.com) if:
- You want to test your actual ISP connection speed against a reliable external benchmark. Public tools do this better because they test against geographically distributed servers you don’t control.
- You want latency percentiles, packet loss statistics, or routing diagnostics. Cloudflare’s tool [4] gives you considerably more signal on connection quality.
Skip it (use LibreSpeed) if:
- You want a self-hosted speed test with more active community development, richer configuration options, and a larger project ecosystem. LibreSpeed [3] is the other major open-source option in this space and has significantly more GitHub traction.
Skip it (use iperf3) if:
- You’re an engineer who needs raw, scriptable throughput measurement between two specific endpoints with no browser involved. iperf3 is the correct tool for precise network benchmarking; OpenSpeedTest is the browser-friendly approximation.
Alternatives worth considering
- LibreSpeed — the other main open-source self-hosted speed test. More actively developed, more configuration options, PHP or Go backend, widely referenced in homelab communities [3]. If you’re choosing between the two for a self-hosted deployment, LibreSpeed has more community momentum.
- Fast.com — Netflix’s speed test. Free, clean, no setup. Only tests your connection to Netflix’s CDN, which happens to be a useful proxy for streaming performance. Not self-hostable [3].
- Cloudflare speed.cloudflare.com — More diagnostic depth: latency percentiles, packet loss, loaded vs. unloaded measurements. Not self-hostable but privacy is relatively reasonable given Cloudflare’s scale [4].
- Speedtest.net (Ookla) — The de facto standard for ISP testing. Most ISPs use it. Significant ad and tracker load, data collected by Ookla. Available as CLI (
speedtest-cli) for scripted use [3]. - iperf3 — Not a browser tool, but the right answer for raw network benchmarking between servers where you control both endpoints.
For a non-technical founder evaluating this: if you just want to check your internet connection, use Fast.com or Cloudflare. If you want to test your internal network or embed a test in your product, OpenSpeedTest or LibreSpeed are your two realistic options.
Bottom line
OpenSpeedTest does one thing — browser-based network speed testing with a server you control — and it does it with unusual technical discipline: zero dependencies, minimal footprint, works on any device. For its target use case (internal LAN testing, privacy-conscious environments, embedded widgets) there’s nothing simpler to deploy. The honest caveat is that it doesn’t replace ISP speed tests, has no results history, and requires careful reverse proxy configuration to avoid silent failures on upload tests. If you know why you want a self-hosted speed test endpoint, this gets you there in under 30 minutes. If you’re not sure why you’d want one, you probably don’t need it — Fast.com is already free and a bookmark away.
Sources
- Robert Condorache, Softpedia — “OpenSpeedTest Review: Versatile speed test tool for networks” (Updated Feb 24, 2025). https://www.softpedia.com/get/Network-Tools/Network-Testing/OpenSpeedTest.shtml
- Brandon Lee, VirtualizationHowto — “OpenSpeedTest Server: Self-hosted Network Speed Test in Docker” (Nov 21, 2023). https://www.virtualizationhowto.com/2023/11/openspeedtest-self-hosted-speed-test-server-in-docker/
- SaaSHub — “speedtest-cli Alternatives & Competitors” (Updated Feb 9, 2026). https://www.saashub.com/speedtest-cli-alternatives
- SaaSHub — “Speed Test by Cloudflare Alternatives & Competitors” (Updated Feb 10, 2026). https://www.saashub.com/speed-test-by-cloudflare-alternatives
Primary sources:
- GitHub repository and README: https://github.com/openspeedtest/speed-test (3,479 stars, MIT license)
- Official website: https://openspeedtest.com
Features
Integrations & APIs
- Plugin / Extension System
Mobile & Desktop
- Mobile App
Compare Speed Test by OpenSpeedTest™
Related Networking & VPN Tools
View all 99 →Caddy
71KA fast, extensible web server with automatic HTTPS — zero-config TLS certificates for every site, built-in reverse proxy, and a simple Caddyfile config format.
Traefik
62KCloud-native application proxy and ingress controller that auto-discovers services and handles TLS certificates, load balancing, and routing with zero manual configuration.
Pi-hole
56KNetwork-wide ad blocking DNS server that protects every device on your network without installing anything on individual devices.
Headscale
37KAn open source, self-hosted implementation of the Tailscale control server.
AdGuard Home
33KNetwork-wide software for blocking ads and tracking. Covers all your home devices with no client-side software needed.
Nginx Proxy Manager
32KExpose your services easily and securely. Manage Nginx proxy hosts with a simple, powerful interface and free SSL via Let's Encrypt.