Internet speed testing application for your website?

OPTION #1 (Speed Test from Openspeedtest.com Server)

You can use our FULLVERSION application for free!



The same technology we using at openspeedtest.com will be used on this application. It is Free for personal and commercial use.



How this works? This application is an exact copy of openspeedtest.com & this will use our premium servers to test user line speed. You are adding this application as a widget on your webpage. Instead of sending your visitors to other websites for testing internet speed you can have this application on your website itself.

Live DEMO

For HTTP/HTTPS version of this application

Copy this HTML code.

Provided by OpenSpeedtest.com You can create a new page for this application or you can use it on existing page! application is now fully responsive! you can use any width and height as per your design!. Paste our HTML code on your webpage!

Automatic Speedtest?

You can run a speed test automatically by adding "?Auto=10" to your widget code! Widget URL looks like "http://openspeedtest.com/Get-widget.php?Auto=10"



Self-Hosted speedtest application!

OPTION #2 (Speed Test from you own server!)

Same version of the Internet Speedtest tool we are using to tests network speeds. It is a quick and easy tool for testing the speed from your server. It can be used on connections up to 10Gbps. This speed testing application will use your server to test download and upload speed. We store each resuls to our database and a dedicated reporting system which shows you tests that have been performed via your server. Signup here to view results (Only for OPTION #2).This Self-Hosted version is Free for personal and commercial use.







Live DEMO

Install this application on your website.[HTTPS Support Added!]

Copy this HTML code.

Provided by OpeSpeedtest.com



Guide to setup Self-Hosted speed test application for your server.



You can create a new page for this application or you can use it on existing page! application is now fully responsive! you can use any width and height as per your design!. Paste our HTML code on your webpage!

docker run --restart=unless-stopped --name=openspeedtest -d -p 80:8080 openspeedtest/latest Now Visit http://localhost/hosted.html or http://YOUR-IP/hosted.html

Create a domain/subdomain for your server.

Create index.php (or a page from the same domain) file and paste our widget code.

Upload both files (File 1 & File 2) to your server and change the permissions to 755.

You need to make few changes on your server. Enable Cross-origin resource sharing with http://openspeedtest.com

Your server should accept 'GET, POST, OPTIONS' from "http://openspeedtest.com" & POST Content-Type:application/octet-stream, Content Length is dynamic. so server should accept POST content length of 200MB or more. And turn off Gzip!

If your are using this app on speedtest.example.com. the files should be accessible form speedtest.example.com/downloading & speedtest.example.com/upload. This application will look at the host name only. So eg: hostname/downloading will be the correct destination for test files. mostly it will be the root web dir of your website

This is Nginx configuration.

server { listen 8080; listen 3000; root /usr/share/nginx/html/; index index.html; server_name localhost; location / { access_log off; gzip off; fastcgi_read_timeout 999; client_max_body_size 9999M; log_not_found off; server_tokens off; error_page 405 =200 $uri; error_log /dev/null; tcp_nodelay on; tcp_nopush on; sendfile on; open_file_cache max=200000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; if ($http_origin ~* (https?://[^/]*\.openspeedtest\.com(:[0-9]+)?|https?://openspeedtest\.com(:[0-9]+)?)) { add_header 'Access-Control-Allow-Origin' "$http_origin" always; add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With' always; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always; } if ($request_method = OPTIONS ) { add_header Access-Control-Allow-Credentials "true"; add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With' always; add_header 'Access-Control-Allow-Origin' "$http_origin" always; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always; return 204; } } }

If your server is not Nginx you need to make similar configuration on your server

Setting CORS (cross-origin resource sharing) on Apache. Create .htaccess file with this config.

# Always set these headers. Header always set Access-Control-Allow-Origin "http://openspeedtest.com" Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS" Header always set Access-Control-Max-Age "1000" Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token" # Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request. RewriteEngine On RewriteCond %{REQUEST_METHOD} OPTIONS RewriteRule ^(.*)$ $1 [R=200,L] #Don't forget to activate the apache module headers a2enmod headers

Configuration for ubuntu server with apache2

1. Make sure you have the mod_headers Apache module installed. to do this check out /etc/apache2/mods-enabled/ and see if there’s a ‘headers.load’ in there. If there isn’t then just sudo ln -s /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/headers.load

2. Add the Access-Control-Allow-Origin header to all HTTP responses.



go to /etc/apache2/sites-available/default file and add the folowing code under the <Directory> section of your configuration file.

Header always set Access-Control-Allow-Origin "http://openspeedtest.com" Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS" Header always set Access-Control-Max-Age "1000" Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"

3. Reload apache server.

sudo /etc/init.d/apache2 reload