Building your own internet Speed Test server with the most brilliant, lite weight, secure, and free Open Source tool the Open Speed Test.
The Open Speed Test user interface is web-based developed using HTML5, and no need to run heavy JavaScript, or unsecured Flash Scripts at the client-side. and can measure the Download, Upload, Jitter, and Ping Speed.
We can follow the next instructions to build our Speed test server in a simple and easy way using Docker.
Install Speed Test Server
Install Docker For Windows
You can follow this guide to install docker on Microsoft Windows The Best Way to Install Docker Desktop On Windows As A Professional.
Install Docker For Linux
And to install Docker on Linux (Ubuntu), you can follow the next 2 steps:
1- Setup Repository and GPG
# apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2- Install Docker Engine
# apt-get update # apt-get install docker-ce docker-ce-cli containerd.io
Install Docker For MacOS
And If you using Mac OS
Download Docker Desktop Docker.dmg
file From Here.
Note: When downloading the
Docker.dmg
file You will need to select file That suitable to your Mac Chip type, If its Intel Or Apple Silicon
To Check your Chip Type please see:
- From the menu bar click the Apple logo.
- Then Click About This Mac.
- Check Chip Type as shown
After Downloading the Docker.dmg
file complete, Double-click it to open the installer, then drag the Docker icon to the Applications folder.
Download And Run The Open Speed Test
Download the latest OpenSpeedTest
Docker image, build it, and run the container in the detached mode, with external port 3000 for HTTP and 3001 for HTTPS access.
# docker run --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest
The output will be similar to the following.
root@localhost:~# docker run --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest Unable to find image 'openspeedtest/latest:latest' locally latest: Pulling from openspeedtest/latest 97518928ae5f: Pull complete d61383a18cbc: Pull complete 691cc14c5437: Pull complete 052722e881c1: Pull complete 15b060c51243: Pull complete 913152e2c694: Pull complete ec9c71cb0523: Pull complete ec7fd5495fa5: Pull complete ee6d65285712: Pull complete fbc4881aa6ff: Pull complete 4249cca95423: Pull complete 6f6cff834a66: Pull complete 64a00ea1bd70: Pull complete b4c8880d3885: Pull complete c6078adf07fd: Pull complete 10466dfde476: Pull complete Digest: sha256:fba72a00e767e5bd797755f208195c379e07c6898da3daf9ffa134f0281a033a Status: Downloaded newer image for openspeedtest/latest:latest 20a15b4c66d67eaa7ff3485f3c8515bae42aa2f1d04f0cf9d2890438c42f80ed
In your web browser, you can access your server as http://serveripaddress:3000
or https://serveripaddress:3001
Of course, you can use ports 80, and 443 but for best practice, use Nginx as a reverse proxy of your Speed Test server by following How to Configure Nginx as a reverse-proxy (lab II).
You can check Everything you need to know about internet speeds out for more information and answers about internet speed, how are internet speeds measured? What is internet speed and why does it matter?, How to pick an internet plan? How much bandwidth do you need? , And Internet speed glossary and terms.