home lab

OpenSpeedTest Server Self-hosted Network Speed Test in Docker

Checking speeds in your network is a great way to troubleshoot and also keep a check on performance metrics. If you are like me, you have probably relied on publicly available speed test servers to check the speed of your connection from an Internet perspective (ISP provider) and then used something like iperf to check the speed between devices. Let me introduce you to OpenSpeedTest server, a really cool self-hosted speed test server that allows you to check network speeds offline, between nodes, and even from remote hosts you want to test for diagnostics purposes.

What is OpenSpeedTest Server?

OpenSpeedTest Server is a free and open-source (so you can access source code) HTML5 network performance and Internet speed test estimation tool you can run from a web browser on your device. It has a user-friendly interface and the capacity to accurately gauge internet connection speed. It is powered by vanilla JavaScript and uses built-in Web APIs. OpenSpeedTest Server is a reliable tool for running network speed tests in various environments.

When you self-host, you navigate to the test server’s IP address and container port and then click Start. It will run the speed test automatically, running a continuous speed test performing a download and upload speed test. So, no client-side software is needed for the speed test, only a browser. The interface is simple and easy with an easy-to-read speedometer type speed display.

01 before running the openspeedtest tool
Before running the openspeedtest tool

Key Features of OpenSpeedTest

Let’s look at the features of the OpenSpeedTest server self-hosted server.

Versatile Speed Testing Capabilities

OpenSpeedTest allows you to run a network speed test running upload speed, download speed, and ping latency tests.

Can run as a server on multiple platforms

One of the really cool things you can do is run the OpenSpeedTest server as an app on your android or iOS device. It can also be run on Windows, Linux, and Mac desktop devices. The application is easy to install and can be installed and configured in seconds to see the result of your connection speed and bandwidth from the URL of the device.

Good UI

The OpenSpeedTest user interface is simple and easy to use. As you will see it is not very busy and the UI is uncluttered. in my testing, running the test doesn’t adversely affect browser performance

Customization and Flexibility

Users can customize their testing experience on OpenSpeedTest Server. Options like allowing you to change the overhead compensation factor, reset overhead compensation factor, selecting different servers, and setting specific test parameters (such as ping samples and test types) enhance its adaptability to various testing requirements.

Local network speed test

If you want to run a local speed test on your LAN or Wifi network, you can run a stress test that allows you to test the upload and download speed and latency between devices on your local network. You can’t do this with publicly available popular speed test sites. Due to the available apps you can use a cell phone, tablet or other deployments for quick and easy testing with accuracy.

Embedded on a web server

You can also host the OpenSpeedTest server as a widget on your website. The test can be configured to run automatically as well in the browser based test. You can use the below widget code to embed the speedtest into your website. The speedtest script file size is minimal:

<!--OST Widget code start--><div style="text-align:right;"><div style="min-height:360px;"><div style="width:100%;height:0;padding-bottom:50%;position:relative;"><iframe style="border:none;position:absolute;top:0;left:0;width:100%;height:100%;min-height:360px;border:none;overflow:hidden !important;" src="//openspeedtest.com/speedtest"></iframe></div></div>Provided by <a href="https://openspeedtest.com">OpenSpeedtest.com</a></div><!-- OST Widget code end -->

Run with embedded database

You can run the server with an embedded database to store data.

Installation

The OpenSpeedTest server can be deployed using a simple and easy Docker installation. You can either use Docker run or Docker Compose to deploy the container.

Simple Docker Installation

The Docker container installation simplifies installation and configuration. This is most likely the type of installation you will want to use to deploy into your home lab environment.

Use the following Docker run command to deploy the container:

docker run --restart=unless-stopped --name openspeedtest -d -p 80:3000 -p 443:3001 openspeedtest/latest

You can also deploy using Docker Compose code:

version: '3.3'
services:
speedtest:
restart: unless-stopped
container_name: openspeedtest
ports:
- '3000:3000'
- '3001:3001'
image: openspeedtest/latest

Advanced Configuration Options

More tech-oriented users can delve into advanced configurations. OpenSpeedTest Server supports deploying the container using LetsEncrypt SSL certificates as well.

Docker run:

docker run -e ENABLE_LETSENCRYPT=True -e DOMAIN_NAME=speedtest.yourdomain.com -e [email protected] --restart=unless-stopped --name openspeedtest -d -p 80:3000 -p 443:3001 openspeedtest/latest

Docker Compose:

version: '3.3'
services:
speedtest:
environment:
- ENABLE_LETSENCRYPT=True
- DOMAIN_NAME=speedtest.yourdomain.com
- [email protected]
- VERIFY_OWNERSHIP="TXT-FILE-CONTENT"
restart: unless-stopped
container_name: openspeedtest
ports:
- '80:3000'
- '443:3001'
image: openspeedtest/latest

Note the screenshots below, showing the Docker installation. In the first screenshot, we have added the Docker Compose code to a docker-compose.yml file and run the command:

docker-compose up -d
02 running docker compose up d command to install openspeedtest
Running docker compose up d command to install openspeedtest

You can see the status of the Docker Compose container provisioning using the command:

docker-compose ps
03 checking the status of the openspeedtest docker compose deployment
Checking the status of the openspeedtest docker compose deployment

Installing using a mobile app

Below are a few screenshots using the Google Play OpenSpeedTest-Server mobile app. Search for “openspeedtest” and you should see the OpenSpeedTest-Server app.

Google play store openspeedtest server
Google Play Store openspeedtest server

After installing the app, you launch the application and you can click the Start Server button to begin testing.

Openspeedtest server on google android
Openspeedtest server on google android

After starting the server on an Android phone.

Starting the openspeedtest server on google android
Starting the openspeedtest server on google android

Running a speedtest using OpenSpeedTest server

The process to run the actual speed test is simple and easy to check your connectivity. Just browse to the address of your server, whether this is a container, or a mobile device with the server running, click the Start button to begin the speed test. Below is a speedtest I ran across a wireless network to hit OpenSpeedTest, running in a Docker container host on the same internal site.

04 running openspeedtest on a wireless network
Running openspeedtest on a wireless network

As you can see below, I am testing a wired LAN connection and the results are much more dramatic, in terms of download, upload, ping, and jitter.

05 running openspeedtest on a wired host on the network
Running openspeedtest on a wired host on the network

FAQs on OpenSpeedTest Server

How Does OpenSpeedTest Ensure Accurate Ping Values?

It uses multiple ping samples to determine the most accurate ping value. By sending a series of requests to the server, it can provide a more accurate representation of network latency, essential for understanding network speed and performance.

Can I Run OpenSpeedTest Server in a Secure Environment?

Yes, OpenSpeedTest Server is designed to operate effectively in secure environments. It adheres to standard security practices and can be configured to meet specific security requirements, making it suitable for deployment in sensitive or controlled network settings.

What Makes OpenSpeedTest Different from Other Popular Speed Test Sites?

Unlike many popular speed test sites, OpenSpeedTest Server offers a unique blend of simplicity and technical proficiency. It avoids reliance on third-party frameworks, ensuring a more streamlined and efficient testing process. This approach reduces potential network errors and ensures reliable test results.

How Can OpenSpeedTest Server Assist in Troubleshooting Network Issues?

OpenSpeedTest Server is an effective tool for identifying and diagnosing network issues. By providing detailed insights into network speed, performance, and stability, it helps in pinpointing problems such as faulty switches, bad browser configurations, or issues related to specific network segments.

Is OpenSpeedTest Server Suitable for Continuous Speed Tests?

Yes, OpenSpeedTest Server can be configured for continuous speed tests. This feature is particularly useful for monitoring network performance over time, helping to detect intermittent issues or to understand how network performance fluctuates during different periods.

How Does OpenSpeedTest Server Perform in Comparison to Client Side Software?

OpenSpeedTest Server offers a unique advantage over typical client-side software for speed testing. It eliminates the need for additional software installation, as it runs directly in the browser. This approach simplifies the process and minimizes the risk of unwanted extensions or hidden exploits.

Can OpenSpeedTest Server Be Integrated into My Own SpeedTest Server?

Integrating OpenSpeedTest Server into your own speedtest server is feasible. It allows for customization in terms of server selection, testing parameters, and user interface adjustments. This flexibility makes it a viable option for those who want to maintain control over their network testing environment.

How Does OpenSpeedTest Handle File Transfers During Speed Tests?

In speed tests, OpenSpeedTest Server handles file transfers efficiently. It ensures accurate measurement of upload and download speeds by dynamically adjusting the file transfer size and rate according to the network’s capacity, providing reliable and realistic speed test results.

OpenSpeedTest Server – Definitely a cool tool 

The OpenSpeedTest Server is one of the easiest self-hosted speed tests you will find, with many options for hosting the server component. It allows you to easily test between devices on the same network, different networks, or even embed the code into your website to provide a hosted speedtest solution.Spinning up a Docker container with OpenSpeedTest Server is super easy and lets you get up and running with testing and network speed diagnostics in just a few seconds. It is definitely one of the tools you should keep in your back pocket for online analysis of your network and Internet connection.

Subscribe to VirtualizationHowto via Email 🔔

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Brandon Lee

Brandon Lee is the Senior Writer, Engineer and owner at Virtualizationhowto.com and has over two decades of experience in Information Technology. Having worked for numerous Fortune 500 companies as well as in various industries, Brandon has extensive experience in various IT segments and is a strong advocate for open source technologies. Brandon holds many industry certifications, loves the outdoors and spending time with family.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.