Giter Site home page Giter Site logo

docker-image's Introduction

SpeedTest by OpenSpeedTest™ - Free & Open-Source HTML5 Network Performance Estimation Tool.

OpenSpeedTest Docker Image No client-side software or plugin is required. You can run a network speed test from any device with a Web Browser that is IE10 or new.

This is docker implementation using nginxinc/nginx-unprivileged:stable-alpine. uses significantly fewer resources.

  • NGINX Docker image that runs NGINX as a non root, unprivileged user.

Docker install instructions:

Install Docker and run the following command!

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

Or use docker-compose.yml

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

Now open your browser and direct it to:

A: For HTTP use: http://YOUR-SERVER-IP:3000

B: For HTTPS use: https://YOUR-SERVER-IP:3001

Container-Port for http is 3000

If you need to run this image on a different port for HTTP, Eg: change to 80 = -p 80:3000

Container-Port for https is 3001

If you need to run this image on a different port for HTTPS, Eg: change to 443 = -p 443:3001

Setup Free LetsEncrypt SSL with Automatic Certificate Renewal

Requirements

  • PUBLIC IPV4 and/or IPV6 address.
  • A domain name that resolves to speed test server's IP address.
  • Email ID

The following command will generate a Let's Encrypt certificate for your domain name and configure a cron job to automatically renew the certificate.

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

Or use docker-compose.yml

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

How to Use Your Own Secure Sockets Layer (SSL) Certificate, Self-Signed or Paid?

Requirements

  • Folder with your Certificate, Self-Signed or Paid.

  • Rename .cet file and .key file to nginx.crt & nginx.key

    The folder needs to contain:

  • nginx.crt

  • nginx.key

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

To mount a folder with your own SSL certificate to this Docker container, append the following line to the above command:

-v /${PATH-TO-YOUR-OWN-SSL-CERTIFICATE}:/etc/ssl/

I am adding a folder with nginx.crt and nginx.key from my desktop by using the following command.

sudo docker run -v /Users/vishnu/Desktop/docker/:/etc/ssl/ --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest

Or use docker-compose.yml

version: '3.3'
services:
    speedtest:
        volumes:
            - '/Users/vishnu/Desktop/docker/:/etc/ssl/'
        restart: unless-stopped
        container_name: openspeedtest
        ports:
            - '3000:3000'
            - '3001:3001'
        image: openspeedtest/latest

Advanced Configuration Options

  • Container Port Configuration

To enable port changes, set the CHANGE_CONTAINER_PORTS environment variable to "True" and provide appropriate values for the following variables.

CHANGE_CONTAINER_PORTS=True

HTTP_PORT=3000

HTTPS_PORT=3001

  • Set User

SET_USER=101

  • Only Allow CORS Request from listed domains.

ALLOW_ONLY=domain1.com;domain2.com;domain3.com

  • SET_SERVER_NAME Display the server name on the UI.

SET_SERVER_NAME=HOME-NAS

docker-image's People

Contributors

openspeedtest avatar bt90 avatar redrac avatar vishnunampoothiri avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.