* Initial implementation of ipinfo.io offline database * Removed unnecessary code * add: download ipinfo db during docker build * fixed workflow * rename warning in workflow * commit to trigger workflow * Refactor getIP * Improved UI * Updated docker version with 5.4 changes * Updated README.md * Added fallback in getIP in case the offline db is missing * Fixed typos * just md linting * Removed vscode stuff * Implemented fallback in getIP for PHP<8 (returns only the IP) * Updated doc.md * Fixed comments in telemetry_settings.php * New quick start video * Corrected image name in doc_docker.md * Replaced speedtest with just test in stats.php * docker documentation update * typo --------- Co-authored-by: Federico Dossena <info@fdossena.com> Co-authored-by: Stefan Stidl <stefan.stidl@ffg.at> |
||
|---|---|---|
| .github | ||
| .logo | ||
| backend | ||
| docker | ||
| examples | ||
| results | ||
| .gitignore | ||
| doc.md | ||
| doc_docker.md | ||
| Dockerfile | ||
| favicon.ico | ||
| index.html | ||
| LICENSE | ||
| README.md | ||
| speedtest.js | ||
| speedtest_worker.js | ||
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
Compatibility
All modern browsers are supported: IE11, latest Edge, latest Chrome, latest Firefox, latest Safari. Works with mobile versions too.
Features
- Download
- Upload
- Ping
- Jitter
- IP Address, ISP, distance from server (optional)
- Telemetry (optional)
- Results sharing (optional)
- Multiple Points of Test (optional)
Server requirements
- A reasonably fast web server with Apache 2 (nginx, IIS also supported)
- PHP 5.4 or newer (other backends also available)
- MySQL database to store test results (optional, Microsoft SQL Server, PostgreSQL and SQLite also supported)
- A fast! internet connection
Installation
Assuming you have PHP and a web server installed, the installation steps are quite simple.
- Download the source code and extract it
- Copy the following files to your web server's shared folder (ie. /var/www/html/speedtest for Apache): index.html, speedtest.js, speedtest_worker.js, favicon.ico and the backend folder
- Optionally, copy the results folder too, and set up the database using the config file in it.
- Be sure your permissions allow execute (755).
- 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.
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
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.

