← Back to all sparks
L

LibreSpeed

INFRA · APIS
Velocity5.0

Self-hosted network speed test

LibreSpeed finished its design migration and is now hardening what it measures.

speed-testself-hostedconnection-stabilitydockerfrontend-migrationmeasurement-accuracy
Current state
LibreSpeed spent late 2025 and early 2026 landing a rewritten frontend that had been in progress for roughly two years, moving it from a feature-switch pre-release to the default in 6.0.0. With that migration behind it, the 6.2.x line has turned to measurement itself and to deployment robustness — a dedicated connection-stability test, installable PWA packaging, and a string of Docker and asset-layout fixes.
Where it's heading
The most interesting shift is scope. LibreSpeed was a one-shot bandwidth benchmark; 6.2.0 added a standalone stability test with live latency charting, packet-loss tracking, and CSV export, which is a different job — watching a connection over time rather than scoring it once. The 6.2.1 follow-up shows the maintainers treating measurement accuracy as the product: upload results were being inflated when a request came back with an HTTP error, and the client now waits for a successful status before starting a replacement. Deployment work runs continuously alongside, mostly making Docker and non-Docker layouts behave identically.
Prediction
The stability test is new enough that its server selection and timeout handling are still being fixed, so expect the next releases to keep refining it rather than opening another surface. Docker and asset-layout parity looks like the other ongoing thread.

Recent moves

  1. 6d ago

    Upload speeds no longer inflated by failed requests

    Upload speeds were being reported too high when an upload request returned an HTTP error, because the client started a replacement before the failed request resolved; it now waits for a successful status. For a tool whose entire output is a number, a fix that changes what the number says matters more than its size suggests. The release also lets the modern frontend serve from an unrearranged repository layout.

    View source ↗
  2. 27d ago

    Standalone connection-stability test and installable PWA

    6.2.0 adds stability.html — a standalone connection-stability test with live latency metrics, charting, packet-loss tracking, optional alerts, and CSV export — plus PWA metadata so LibreSpeed can be installed from a browser. It also fixes Docker rejecting the default 20 MiB upload chunks by raising post_max_size. The stability test is the notable part: it extends LibreSpeed from a single benchmark run toward monitoring a connection over time.

    View source ↗
  3. 4mo ago

    Reverts server-list.json default in the classic frontend

    A cherry-picked revert of the classic frontend's default use of server-list.json, shipped as 6.0.1 the day after the new design became the default. Cleanup on the migration rather than a change in its own right.

    View source ↗
  4. 4mo ago

    The rewritten design becomes the default in 6.0.0

    6.0.0 promotes the rewritten design from an opt-in switch to the default, closing out a frontend rewrite that ran for about two years. It also fixes IPv6 client address reporting behind cloudflared and a PHP version check for geoip2 compatibility. This is the release the whole 5.5.x line was preparing for.

    View source ↗
  5. 7mo ago

    Hotfix for SQLite database matching in the Docker entrypoint

    A hotfix release correcting SQLite database matching in the Docker entrypoint. Deployment plumbing, invisible to anyone running a working container.

    View source ↗
  6. 7mo ago

    Pre-release puts the new design behind a feature switch

    The 6.0.0 pre-release puts the new design behind a config, URL parameter, and Docker feature switch, alongside a reworked Docker deployment. A staging step for the release that follows rather than a shipped change.

    View source ↗