LibreSpeed is a free, open-source speed test you run on your own hardware instead of Ookla’s Speedtest.net or fast.com. It measures download, upload, ping, and jitter through a lightweight JavaScript frontend and a small backend. Because your own server does the measuring, nothing depends on someone else’s infrastructure, rate limits, or data policy. Self-hosting it turns a quick “how’s my internet today” check into a permanent fixture of a homelab: a fast, private tool for testing links between your own devices, not just your connection to the internet.
License: LibreSpeed is licensed under LGPL-3.0 (GNU Lesser General Public License v3), confirmed directly from the LICENSE file in the librespeed/speedtest GitHub repo, not assumed from a badge.
Quick facts: Official site librespeed.org · GitHub librespeed/speedtest, 14,900+ stars · Current release v6.1.0 · Docker image ghcr.io/librespeed/speedtest (official), also mirrored as linuxserver/librespeed on Docker Hub.
Why self-host a speed test at all?
Ookla and fast.com answer one question well: how fast is my connection to the internet right now. What they can’t do is test the link between your workstation and your NAS, the throughput of a WireGuard tunnel, or whether a VLAN is actually capping traffic the way you configured it, because their servers live on the public internet, not your LAN. They also log what they see, your IP, location, and results, and can rate-limit or queue you during peak hours.
A self-hosted LibreSpeed instance sits wherever you put it. Point a client at it from across the house and you’re testing your own network, not your ISP’s peering. Point it at a VPS and you’re testing your WAN link the way a visitor would. Results never leave hardware you own unless you decide to share them.
What LibreSpeed actually measures
The test runs entirely in the browser using XMLHttpRequest and Web Workers, no Flash, no Java, no WebSocket dependency, part of why it’s stayed lightweight since Federico Dossena first released it in 2016. A single run reports download and upload throughput, ping, jitter, and your IP/ISP info if you turn that lookup on. LibreSpeed also ships a standalone connection-stability test: a page that pings a target repeatedly and charts latency and failed-request percentage over time, useful for catching a flaky link a single ten-second test would miss.
Installing LibreSpeed with Docker
The project publishes its own image on GitHub Container Registry, rebuilt weekly with an updated IP-info database and current PHP security patches. For a single-server homelab setup, standalone mode is what you want:
docker run -p 80:8080 -d --name speedtest --rm ghcr.io/librespeed/speedtest
That’s a full working instance on port 80. For anything you plan to keep running long-term, docker compose is more maintainable:
services:
speedtest:
container_name: speedtest
image: ghcr.io/librespeed/speedtest:latest
restart: unless-stopped
environment:
MODE: standalone
TELEMETRY: "false"
PASSWORD: "change-this-password"
ports:
- "80:8080"
docker compose up -d
LinuxServer.io also maintains an alternative image, lscr.io/linuxserver/librespeed, built on their usual PUID/PGID pattern with a persistent /config volume, worth a look if it fits your stack better.
Configuration worth knowing about
Everything runs through environment variables rather than a settings page. TELEMETRY defaults to false, so a fresh install stores nothing unless you turn it on. Flip it to true and results get written to SQLite, or MySQL/PostgreSQL if you point DB_TYPE elsewhere, accessible at /results/stats.php behind a password set with PASSWORD. TITLE and TAGLINE customize the branding, and WEBPORT changes the internal port if 8080 collides with something already running. For a homelab, telemetry off is the practical default.
Don’t leave a public instance wide open. LibreSpeed has no built-in login for the test page itself. An instance exposed beyond your LAN, a VPS backend for WAN testing, say, can be hammered with test traffic by anyone who finds it, chewing through bandwidth you’re paying for. Set a real password if telemetry is on, and keep remote access behind a reverse proxy or VPN, the same approach our Jellyfin remote access guide covers.
Hardware: LibreSpeed is about as light as self-hosted software gets. No database engine required for basic use, no GPU, and the official image runs comfortably on a Raspberry Pi, an old mini PC, or a spare core on a NAS. The bottleneck during a test is always your network link, never the container. Still deciding what to run it on? Our homelab setup guide for beginners covers the trade-offs.
Homelab use cases
Point a browser at your instance from the same network and you get a baseline for your LAN itself, useful before blaming a slow Jellyfin stream on “the internet” when the real problem is a saturated switch port. Deploy a second instance on a VPS and you can test a WireGuard or Tailscale tunnel’s actual throughput instead of guessing from a stalled file transfer. Multiple points of test mode ties several LibreSpeed backends to one frontend, handy for comparing a wired uplink against a VLAN carrying guest wifi, or checking whether a link to a remote NAS actually saturates gigabit. None of it touches the public internet, the whole advantage over a third-party test.
LibreSpeed: pros and cons
- Free and open source under LGPL-3.0, running entirely on hardware you control
- No rate limits, ads, or third party watching your results
- Works between two points on your own LAN, no internet connection needed
- Genuinely lightweight: one container, runs on a Raspberry Pi without breaking a sweat
- No built-in authentication on the test page itself; access control is on you
- Multi-point setups (frontend plus backend) take more configuration than the standalone install
- Telemetry needs a real password or the stats page won’t be reachable, easy to forget at first
Alternatives worth knowing about
Ookla Speedtest and fast.com are the obvious non-self-hosted alternatives, and for a single check of your ISP connection they’re still the fastest option since you don’t have to run anything. OpenSpeedTest is LibreSpeed’s closest self-hosted competitor, similarly lightweight and browser-based. Pi-hole and AdGuard Home pair well alongside LibreSpeed in a homelab too, covering DNS-level ad blocking with the same one-container simplicity, and both get their own full reviews on this site.
FAQ
Is LibreSpeed as accurate as Ookla Speedtest?
For your own network, yes, arguably more useful, since you control where the test server sits. For your ISP connection against the wider internet, it depends on where you deploy: a LibreSpeed server on a well-connected VPS gives comparable numbers to Ookla, while one on your home LAN only tells you about your LAN and WAN link together, not the two separately.
Does LibreSpeed need a database?
No, not for basic use. Telemetry is optional and off by default. Turn it on and LibreSpeed falls back to SQLite automatically, with MySQL and PostgreSQL supported if you already run one.
Can I run LibreSpeed on a Raspberry Pi?
Yes. It’s one of the lightest self-hosted tools around, no GPU or heavy database requirement, and the official Docker image runs on ARM hardware without any special configuration.
LibreSpeed ends up being one of the smallest, most immediately useful pieces of a homelab: a single container that answers “how fast, actually” whenever a stream stutters or a backup crawls. Our homelab setup guide for beginners covers the Docker basics it depends on, and Jellyfin remote access goes deeper on the VPN setup worth pairing it with. The Network & Security and Monitoring categories round out the rest of the network tooling here.