/speedtest-singlethread

Self-hosted HTML5 Speedtest. Easy setup, examples, configurable, responsive and mobile friendly. Supports PHP, Node, and more.

Primary LanguagePHPGNU Lesser General Public License v2.1LGPL-2.1

speedtest-x

GitHub Actions Build Status GitHub last commit GitHub

This project is an extension of LibreSpeed, LibreSpeed is a pretty lightweight speedtest tool.

speedtest-x uses file datebase to save speedtest results from various users. Thus you can check out different results from various countries/regions.

中文文档

Join Telegram group

❗ Warning:Based on the principle of web speedtest, this program will generate garbage files for tester to download them to calculate the downstream network bandwidth from server to local. There may be abuses by malicious tester in a certain extent, after shared your speedtest website in public, please pay attention to the condition of your server traffic to avoid an traffic overload.

Features and extensions

  • Self-hosted lightweight speedtest page
  • User speedtest result datasheet
  • No MySQL, but lightweight file database
  • Use ip.sb to get IP info by default

Quick start

Deploy by Docker (Supported platforms: AMD64/ARM64)

  1. Pull Image docker pull badapple9/speedtest-x
  2. Run container docker run -d -p 9001:80 -it badapple9/speedtest-x

Optional arguments:

-e MAX_LOG_COUNT=100: Maximum results size, 100 by default

-e IP_SERVICE=ip.sb: IP info provider (Options: ip.sb / ipinfo.io), ip.sb by default

-e SAME_IP_MULTI_LOGS=false: Whether to allow the same user IP to record multiple speedtest results, false by default.

If you want support IPV6 in a Docker container, edit /etc/docker/daemon.json:

{
  "ipv6": true,
  "fixed-cidr-v6": "fd00::/80",
  "experimental": true,
  "ip6tables": true
}
  1. Open {your_ip}:9001

General deploy (Require: PHP5.6+)

  1. Download repository files and unzip to website directory, open {your_domain_name}/index.html.
  2. Open {your_domain_name}/results.html to check out speedtest result datasheet.

Settings

backend/config.php:

MAX_LOG_COUNT = 100:Maximum results size, 100 by default

IP_SERVICE = 'ip.sb':IP info provider (Options: ip.sb / ipinfo.io), ip.sb by default

SAME_IP_MULTI_LOGS = false:Whether to allow the same user IP to record multiple speedtest results, false by default.

Screenshots

index results

See also

Contributors

License

See License