speedtest README

The project's README from github.com/librespeed/speedtest. As one markdown file: README.md.

LibreSpeed Logo

LibreSpeed

No Flash, No Java, No Websocket, No Bullshit.

This is a very lightweight speed test implemented in Javascript, using XMLHttpRequest and Web Workers.

Try it

Take a speed test

Compatibility

All modern browsers are supported: IE11, latest Edge, latest Chrome, latest Firefox, latest Safari. Works with mobile versions too.

Features

Screenrecording of a running Speedtest

Server requirements

Installation

Assuming you have PHP and a web server installed, the installation steps are quite simple.

  1. Download the source code and extract it
  2. Copy the project files to your web server's shared folder (ie. /var/www/html/speedtest for Apache), keeping the layout as it is in the repository. The modern UI loads its assets from frontend/, so that directory is copied as a whole rather than unpacked.
  3. Optionally, copy the results folder too, and set up the database using the config file in it.
  4. Be sure your permissions allow read and execute access where needed.
  5. Visit YOURSITE/speedtest/index.html and voila!

Installation Video

This video shows the installation process of a standalone LibreSpeed server: Quick start installation guide for Debian 12

More videos will be added later.

Android app

A template to build an Android client for your LibreSpeed installation is available here.

CLI client

A command line client is available here.

.NET client

A .NET client library is available in the LibreSpeed.NET repo (NuGet), maintained by MemphiZ.

Development

If you want to contribute or develop with LibreSpeed, see DEVELOPMENT.md for information about using npm for development tasks, linting, and formatting.

Design switch

LibreSpeed supports both the classic and modern UI. The root index.html acts as a lightweight switcher and redirects to index-classic.html or index-modern.html based on config.json (useNewDesign) or URL overrides (?design=new / ?design=old). For architecture and deployment details (including Docker behavior), see DESIGN_SWITCH.md.

Stability test

LibreSpeed includes a standalone connection stability test at stability.html, linked from both the classic and modern interfaces. It repeatedly measures ping over a selected duration and reports current, average, minimum, maximum, jitter, and failed request percentage values with a live chart.

The stability test can target the local LibreSpeed backend, one of the configured multiple points of test, or built-in external targets such as Google, Cloudflare, and Apple. It also supports optional latency threshold alerts and CSV export of the collected samples. Docker deployments copy stability.html and stability_worker.js into the web root and reuse the same server list configuration as the main UI.

Docker

A docker image is available on GitHub, check our docker documentation for more info about it. The image is built every week to include an updated version of the ipinfo-DB used for ISP detection. Also this ensures, that the latest security patches in PHP are installed. Therefore we recommend to use the latest image.

Go backend

A Go implementation is available in the speedtest-go repo, maintained by Maddie Zhan.

Rust backend

A Rust implementation is available in the speedtest-rust repo, maintained by Sudo Dios.

Node.js backend

A partial Node.js implementation is available in the node branch, developed by dunklesToast. It's not recommended to use at the moment.

Donate

Donate with Liberapay Donate with PayPal

License

Copyright (C) 2016-2024 Federico Dossena

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see https://www.gnu.org/licenses/lgpl.

speedtest (librespeed/speedtest)

Searching Database…

15.2K ·GitHub
这是什么?LibreSpeed 是一个可自行托管的互联网测速工具,部署在你自己的服务器上。它使用纯 JavaScript 编写,借助 XMLHttpRequest 和 Web Workers 实现,不依赖 Flash 或 Java。
这是托管服务,还是需要我自己运行的软件?这是一款需要你安装在自己 Web 服务器上的软件,而不是第三方托管的测速服务。
要怎样才能让它运行起来?下载并解压源代码,将项目文件(包括 frontend/ 文件夹)复制到 Web 服务器的共享目录,例如 /var/www/html/speedtest;如有需要,可以再配置结果数据库;然后访问 YOURSITE/speedtest/index.html。
我的服务器需要什么才能运行它?需要一个 Web 服务器(Apache 2、nginx 或 IIS)以及 PHP 5.4 或更新版本;只有在需要保存测速结果时,才需要 MariaDB/MySQL(或 MSSQL/PostgreSQL/SQLite)数据库。
除了 PHP,还能用其他后端吗?可以。Go(speedtest-go)和 Rust(speedtest-rust)的后端实现都是独立维护的项目。但本仓库 node 分支中不完整的 Node.js 后端目前明确不推荐使用。
它能在手机和旧版浏览器上使用吗?可以。它支持所有现代浏览器,包括 IE11、最新版 Edge、Chrome、Firefox 和 Safari,也支持移动端浏览器的各个版本。
我能用 Docker 运行它,而不用自己配置 PHP 吗?可以。官方提供了 Docker 镜像,每周重新构建一次,以保持 ISP 检测数据库为最新,并应用最新的 PHP 安全补丁。
有现成的 Android 应用或命令行客户端吗?有一个模板仓库,可用于构建对接你的 LibreSpeed 服务器的 Android 客户端;另外还有一个独立的命令行客户端,以及一个由社区维护、发布在 NuGet 上的 .NET 客户端库。
连接稳定性测试能显示普通测速做不到的什么内容?独立的 stability.html 页面会在一段时间内反复对选定目标(你的服务器、另一个测试点,或 Google/Cloudflare/Apple)进行 ping,并绘制当前值、平均值、最小值、最大值和抖动值的图表,同时显示请求失败百分比;还可以选择开启延迟告警并导出 CSV。
经典界面和现代界面,必须二选一吗?不必。根目录的 index.html 会根据 config.json 中的 useNewDesign 设置,自动跳转到 index-classic.html 或 index-modern.html;你也可以在每次请求时通过 URL 参数 ?design=new 或 ?design=old 进行覆盖。
Creator
librespeed
Size
62.5 MB
Stars
15.2K
Age
10y
Commits · 90 Days