GithubHelp home page GithubHelp logo

docker-image's People

Contributors

bt90 avatar openspeedtest avatar redrac avatar vishnunampoothiri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

docker-image's Issues

Wrong results in download and upload

I tried the docker image openspeedtest/latest:latest.
I got wrong test results using Chrome browser:
image

Download should be 100 Mbit and upload 10 Mbit as shown here made by another speedtest Docker tool:
image

Speed difference

Hello,

using container I am getting these LAN speeds to my laptop:

https port is 4568 external, 3001 docker.

from hostname behind nginx proxy manager configured with ketsencryp on npm side:

160 Mbps download
399 Mbps upload

from ip:port https:

297 Mbps download
419 Mbps upload

from speediest.net from laptop:

522 Mbps download
415 Mbps upload

I understand that from speedtest.net I am testing internet speed, but still this seems wrong. openspeedtest seems to give me slow speeds, also big difference between direct ip and behind proxy.

Here my container:

version: '3.3'
services:
speedtest:
environment:

DISABLED - ENABLE_LETSENCRYPT=True
DISABLED - DOMAIN_NAME=DOMAIN
DISABLED - USER_EMAIL=EMAIL
DISABLED - VERIFY_OWNERSHIP="TXT-FILE-CONTENT"
- PUID=1027
- PGID=100
- TZ=Europe/Bucharest
volumes:
- '/etc/localtime:/etc/localtime:ro'
- '/volume1/docker/speedtest/open:/config'
restart: unless-stopped
container_name: openspeedtest
ports:
DISABLED - '4567:3000'
- '4568:3001'
image: openspeedtest/latest

Thanks!

Improved randomness of `downloading`

Thanks for this great project.

I was trying to host this project on Huggingface and I noticed that this project has a 30MB file in here.

I do not suppose it is easy/cheap to host it even on Github and I'm not sure if it's a high entropy file. Let's use the following code to generate a new random file:

Dockerfile

...
COPY /files/nginx.key /etc/ssl/


ARG FILE_SIZE=31457280
ARG FILE_NAME=downloading
RUN apk --no-cache add coreutils
RUN dd if=/dev/urandom of=/usr/share/nginx/html/$FILE_NAME bs=1 count=$FILE_SIZE


USER root
...

test to outside

hello i want to do a speed test from my home server to outside (to see speed)
but i cant do that with a docker img so is there something i need to change sins its always testing my local speed and i want to see my server to outside

Question: CHANGE_CONTAINER_PORTS

Hi, Just reading through your latest changes and saw the code that allows the changing the http/https ports of the service inside the container.

What is the purpose of this?

[Feature Request] Adding Let's Encrypt DNS Challenge Support

In many network environments, especially those highly secure or subject to strict Internet access restrictions, using Let's Encrypt challenges based on HTTP or TLS can be difficult or even impossible. These challenges often require opening specific ports on the firewall or unrestricted Internet connectivity, posing significant security and compliance challenges.

Adding support for Let's Encrypt DNS validation challenge to the project. This type of challenge would allow users to verify their domain by adding a specific DNS record, providing an effective and secure alternative to HTTP or TLS-based methods while bypassing Internet access restrictions.

Reference: Let's Encrypt Documentation - DNS Challenge

Inaccurate upload speeds: these settings work on everything but iPad OS and iOS when using Wi-Fi

Hi all,

I'm having success on all platforms but iOS and iPad OS when using Wi-Fi ๐Ÿ˜‹ and wanted to share my setup / settings. Enjoy!

  • When testing with Windows / MacOS / Linux, I get accurate numbers (verified with my networking devices).
  • When testing on iOS (iPhone 15 Pro Max) and iPad OS (iPad Pro M4) via either Safari or Edge (both Web Kit-based), I still get wonky upload speeds.

Numbers I'm seeing on Wi-Fi 6E 6ghz:

  • Windows: accurate
  • iOS (Edge/Safari): inflated upload
  • iPad OS (Edge/Safari): inflated upload

Numbers I'm seeing on Wi-Fi 6 5ghz:

  • Windows: accurate
  • iOS (Edge/Safari): inflated upload
  • iPad OS (Edge/Safari): inflated upload
  • macOS (Edge/Safari): accurate
  • Debian Bookworm (Firefox ESR 115.4): accurate
  • openSUSE Tumbleweed (Firefox 128.0.3): accurate
  • ubuntu 24.04 (Firefox 129.0.1): accurate

My Setup:

  • Docker host running ubuntu 24.04 cloud image
  • Docker host is connected via 100g switch
  • Wi-Fi 6E APs are connected via 2.5Gb to a 10Gb switch
  • Wi-Fi clients and servers are on separate VLANs but I have Layer-3 routing so the only bottlenecks are my dreams ๐Ÿ’–
  • Portainer-based management for stacks (Docker Compose with bells and whistles)
  • Centralized Nginx proxy stack for all my workloads
  • Dedicated OpenSpeedTest stack

Docker Compose: Nginx

version: '3.8'

networks:
  apps-general:  
    external: true
  paperless-ngx:
    external: true

services:
  nginx:
    image: nginx:latest
    container_name: nginx
    restart: unless-stopped
    ports:
      - '80:80'
    volumes:
      - /home/ubuntu/nginx-configs/apps.conf:/etc/nginx/conf.d/apps.conf
    networks:
      - apps-general

Docker Compose: OpenSpeedTest

version: '3.3'

services:
  speedtest:
    image: openspeedtest/latest
    restart: unless-stopped
    container_name: openspeedtest

    networks:
      - apps-general

networks:
  apps-general:
    external: true

OpenSpeedTest Portion of apps.conf

Partially sourced from this configuration:

server {
    listen 80;
    server_name speed.apps.home.domain.com;

    location / {
        # Proxy pass directive to route requests to the OpenSpeedTest container
        proxy_pass http://openspeedtest:3000/;
        proxy_http_version 1.1; # Ensure HTTP/1.1 is used for this location
        # Standard headers for proxying
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # Additional headers to ensure correct handling
        add_header 'Access-Control-Allow-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;
        add_header Cache-Control 'no-store, no-cache, max-age=0, no-transform';
        add_header Last-Modified $date_gmt;
        if_modified_since off;
        expires off;
        etag off;

        # Handle OPTIONS requests
        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 200;
        }
    }
}

Hi! So, I am facing a issue with getting wrong speeds in HTTPS, while using caddy with wildcards

So basically, I used the Openspeedtest on local IP it works great, but the speeds come very low when using a proxy like I do with Caddy with Wildcards, that allows me to get automatic https from letsencrypt.

And the speeds are coming up low on both download and upload, but especially for uploads.

I have attacked my Caddyfile config for the openspeedtest part, my docker run code, and both result with LAN IP and Https domain using Caddy and DUckdns

And I have LAN of 100Mbps up and down both, so the one with local IP always comes correct, while for the caddy domain, it comes correct for downloads for 70% of times, but for uploads it is always this low

Screenshot (40)
Screenshot (41)
Screenshot (43)
Screenshot (44)

Use of EXPOSE causes unnecessary ports being opened when changing ports

Hello,

I'm having some issues with using the default ports that are exposed. Once these ports are exposed, there is no way to unexpose them or change them. It is much preferable for a project to choose an arbitrary port (like the standard 80 and 443) for inside the container that users can then map to any port they want outside the container (using the standard docker run -p 80:1234 or docker compose). By using the EXPOSE command in the docker file, even if you map another port through the docker command line or in a docker compose, you still get extra exposed ports which might collide with other containers running.

EXPOSE ${HTTP_PORT} ${HTTPS_PORT}

Various JS issues

Uncaught TypeError: X.contentDocument is null, /assets/js/app-2.5.4.min.js:9.
nightMode is null, /assets/js/darkmode.js:2

Firefox.

unable to download docker

I am trying to set up this docker on my truenas system but am getting the following error. I have the image repository set as "openspeedtest" and the version as "latest" as per the instructions. naturally it is defaulting to download this from docker.io. Am I doing something wrong or is this no longer available as an official docker image?

2024-01-23 14:18:19
Failed to pull image "openspeedtest:latest": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/library/openspeedtest:latest": failed to resolve reference "docker.io/library/openspeedtest:latest": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

Unable to get 10Gig speeds using the Docker speed test image . only getting 100/100 Mbps

Hi Team,

I am having issues getting the 10gig speeds after installing the openspeedtest image and running the container on the docker engine.
I am able to get the speeds when run against the Ookla speed test server. Is there any specific config file i need to change or any other settings on the container or images that will help me get faster? The hardware that i am using fully supports the 10-gig network.

Thanks

Docker image is named 'latest' and it should be 'openspeedtest'

Docker images are usually referenced as org/image:tag, with org/image:latest being the latest version of the image. For example, if Google were to have an image called Gmail, then the image would be named google/gmail.

In OpenSpeedTest's case, the image is currently called latest, which doesn't make sense. It implies that the application is called 'latest', when in actual fact, the application is called 'openspeedtest'.

This caught me out and I'm an experienced Docker user. I'm sure it's caught others out, too (for example: #18) and especially those who are just getting started with Docker.

It gets even more confusing when someone wants to lock their deployment to a specific version. With the current image name, they would:

docker run ... openspeedtest/latest:v2.0.5 # Is is the latest version I'm running here? Or is it v2.0.5?

Looking at that command, it looks like I'm running the latest version, but I'm not...

The standard solution is to name the image openspeedtest/openspeedtest, then to users would run which version they wanted to in an expected way:

docker run ... openspeedtest/openspeedtest
docker run ... openspeedtest/openspeedtest:latest
docker run ... openspeedtest/openspeedtest:v2.0.5

I understand that it's suboptimal having 'openspeedtest' essentially duplicated, but this is pretty common in the open source world of Docker images.

Web database does not record results

I installed the Docker image on Ubuntu 22.04.4 LTS and verified my domain on the openspeedtest.com portal, however, no results appear after running multiple tests from various connections. I have tried purging and re-installing with no luck.

Container won't start in IPv4 only system

My system does not support IPv6, only IPv4. It seems the Nginx config has a listen directive with IPv6 address hardcoded, which prevents the container from starting:

open-speed-test  | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
open-speed-test  | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
open-speed-test  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
open-speed-test  | 10-listen-on-ipv6-by-default.sh: info: ipv6 not available
open-speed-test  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
open-speed-test  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
open-speed-test  | /docker-entrypoint.sh: Configuration complete; ready for start up
open-speed-test  | 2022/11/16 05:23:34 [emerg] 1#1: socket() [::]:3000 failed (97: Address family not supported by protocol)
open-speed-test  | nginx: [emerg] socket() [::]:3000 failed (97: Address family not supported by protocol)

Is there any way to provide the bind address on run time?

Set log level via environment variable

I couldn't find any option to change the logging output of openspeedtest, by default it shows me notice messages under Docker. I want to change the log level to error or higher via an environment variable.

How can I do this??

Support for reverse proxy path based routing

Hi, Thanks for the awesome tool!

I tried putting this behind a reverse proxy so that I can access it at the path https://my.domain/speedtest.
I added a traefik stripprefix middleware that strips the /speedtest from the path and the page loads correctly; however as soon as I click start I get a 'Network Error' as it seems that my browser is attempting to reach https://my.domain/upload?..... but for it to route through my reverse proxy correctly it needs to be https://my.domain/speedtest/upload?.... instead.

I have a lot of services and I want to setup this speedtest service on many servers so want to avoid creating a new domain for each instance. I do path based routing for many other applications, most work, some don't. The two ways applications seem to support path based routing is to use relative paths and not absolute, or by having an environment variable that allows me to set the application base path, eg. BASE=/speedtest with the default as BASE=/.

Would this be something you could support?

Thanks,
Josh

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.