Self-hosted Speed Test for HTML5 and more. Easy setup, examples, configurable, mobile friendly. Supports PHP, Node, Multiple servers, and more
Go to file
2017-10-12 09:20:53 +02:00
.editorconfig improvements and new example (#29) 2017-05-15 12:02:32 +02:00
.gitignore Added customizable grace time at beginning of tests; GET parameters can now be used in the URLs in the settings; Minor changes 2017-06-16 06:59:11 +02:00
doc.md Hotfix for Edge 16 2017-10-12 09:20:44 +02:00
docker-compose.yml Default Index With Creator Credit 2017-06-23 12:39:36 -05:00
Dockerfile Default Index With Creator Credit 2017-06-23 12:39:36 -05:00
empty.php Improved ping/jitter test 2017-06-14 12:33:11 +02:00
example1.html improvements and new example (#29) 2017-05-15 12:02:32 +02:00
example2.html Fixed a problem with upload and ping test with nginx 2017-05-15 17:32:46 +02:00
example3.html improvements and new example (#29) 2017-05-15 12:02:32 +02:00
example4.html Fixed a problem with upload and ping test with nginx 2017-05-15 17:32:46 +02:00
example5.html improvements and new example (#29) 2017-05-15 12:02:32 +02:00
example6.html Added customizable grace time at beginning of tests; GET parameters can now be used in the URLs in the settings; Minor changes 2017-06-16 06:59:11 +02:00
example7.html add support to disable specific tests when pass "-1" (#52) 2017-07-19 08:04:37 +02:00
example8_telemetry.html Example8 now uses .min.js 2017-09-06 07:20:30 +02:00
garbage.php Avoid DOS with gigant ckSize values (#60) 2017-09-05 07:46:00 +02:00
getIP.php Improved client IP detection; Updated examples 2017-02-26 12:15:51 +01:00
github.png Default Index With Creator Credit 2017-06-23 12:39:36 -05:00
index.html Default Index With Creator Credit 2017-06-23 12:39:36 -05:00
README.md Merge branch 'master' into docker 2017-08-24 15:28:39 +02:00
speedtest_worker.js Hotfix for Edge 16 2017-10-12 09:20:44 +02:00
speedtest_worker.min.js Hotfix for Edge 16 2017-10-12 09:20:44 +02:00
telemetry.php Updated documentation and telemetry 2017-09-05 07:58:48 +02:00
telemetry.sql Added optional telemetry + example; Updated documentation; Minor changes and fixes 2017-08-24 15:28:28 +02:00

HTML5 Speedtest

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

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

Try it

Take a Speedtest

Compatibility

Only modern browsers are supported (IE11, latest Edge, latest Chrome, latest Firefox, latest Safari)

Features

  • Download
  • Upload
  • Ping
  • Jitter
  • IP Address
  • Telemetry (optional)

Requirements

  • A reasonably fast web server with PHP (see doc.md for details and use without PHP)
  • Your server must accept large POST requests (up to 20 Megabytes), otherwise the upload test will fail
  • It's also better if your server does not use compression, but it's not mandatory

Quick installation videos

Also, here's an example config on Ubuntu 16 LTS

How to use in your site

See the examples or doc.md

Docker + Docker Compose

The project includes a basic docker-compose.yml for development. To run, execute the following:

$ docker-compose build

$ docker-compose up

Speedtest will be available at http://0.0.0.0:8888/. You can try out all of the examples via their associated urls (i.e. http://0.0.0.0:8888/example1.html).

To run via Docker directly:

$ docker build -t adolfintel/speedtest:latest .

$ docker run -d --name  speedtest -p 0.0.0.0:80:80 adolfintel/speedtest:latest

Donate

If you want to support this project, you can send a donation via PayPal.

License

Copyright (C) 2016-2017 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.