{"id":20520228,"url":"https://github.com/openspeedtest/docker-image","last_synced_at":"2025-10-27T03:30:51.704Z","repository":{"id":62314339,"uuid":"559570325","full_name":"openspeedtest/Docker-Image","owner":"openspeedtest","description":"OpenSpeedTest Docker Image","archived":false,"fork":false,"pushed_at":"2024-08-15T08:55:48.000Z","size":31161,"stargazers_count":148,"open_issues_count":17,"forks_count":34,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-05T05:08:21.023Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openspeedtest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-30T14:28:38.000Z","updated_at":"2025-02-01T18:05:06.000Z","dependencies_parsed_at":"2023-02-05T11:45:53.537Z","dependency_job_id":"90e2fa8f-b6b7-4641-96be-31ce957b492b","html_url":"https://github.com/openspeedtest/Docker-Image","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openspeedtest%2FDocker-Image","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openspeedtest%2FDocker-Image/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openspeedtest%2FDocker-Image/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openspeedtest%2FDocker-Image/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openspeedtest","download_url":"https://codeload.github.com/openspeedtest/Docker-Image/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238429602,"owners_count":19470982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T22:18:45.510Z","updated_at":"2025-10-27T03:30:50.189Z","avatar_url":"https://github.com/openspeedtest.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"#  **[SpeedTest by OpenSpeedTest™](https://openspeedtest.com?Run\u0026ref=Github)** - Free \u0026 Open-Source HTML5 Network Performance Estimation Tool.\n##  **[OpenSpeedTest™ Docker Image](https://hub.docker.com/r/openspeedtest/latest)**\n\n[![OpenSpeedTest Docker Image](https://github.com/openspeedtest/v2-Test/raw/main/images/10G-S.gif)](https://hub.docker.com/r/openspeedtest/latest  \"OpenSpeedTest Docker Image\")\n**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.](https://www.youtube.com/watch?v=9f-OM_WQ7Bw\u0026list=PLt-deStxFJOMEAs2O1lJhscMNzcg9E3Po\u0026index=1)**\n\n**This is docker implementation using nginxinc/nginx-unprivileged:stable-alpine. uses significantly fewer resources.**\n\n- NGINX Docker image that runs NGINX as a non root, unprivileged user.\n \n ###  Docker install instructions:\n\n Install Docker and run the following command!\n\n````bash\n\nsudo docker run --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest\n\n````\n#### Or use docker-compose.yml \n````\nversion: '3.3'\nservices:\n    speedtest:\n        restart: unless-stopped\n        container_name: openspeedtest\n        ports:\n            - '3000:3000'\n            - '3001:3001'\n        image: openspeedtest/latest\n````\n- Warning! If you run it behind a **[Reverse Proxy](https://github.com/openspeedtest/Speed-Test/issues/4#issuecomment-1229157193)**, you should increase the `post-body content length` to 35 megabytes.\n\n- **[Follow our Nginx Config.](https://github.com/openspeedtest/Nginx-Configuration)**\n\nNow open your browser and direct it to:\n\nA: For **HTTP** use: `http://YOUR-SERVER-IP:3000`\n\nB: For **HTTPS** use: `https://YOUR-SERVER-IP:3001`\n\n#### Container-Port for http is 3000\nIf you need to run this image on a different port for `HTTP`, Eg: change to `80` = `-p 80:3000`\n#### Container-Port for https is 3001\nIf you need to run this image on a different port for `HTTPS`, Eg: change to `443` =  `-p 443:3001`\n\n### Setup Free LetsEncrypt SSL with Automatic Certificate Renewal\n***Requirements***\n- PUBLIC IPV4 and/or IPV6 address.\n- A domain name that resolves to speed test server's IP address.\n- Email ID\n\nThe following command will generate a Let's Encrypt certificate for your domain name and configure a cron job to automatically renew the certificate.\n\n````\ndocker run -e ENABLE_LETSENCRYPT=True -e DOMAIN_NAME=speedtest.yourdomain.com -e USER_EMAIL=you@yourdomain.pro --restart=unless-stopped --name openspeedtest -d -p 80:3000 -p 443:3001 openspeedtest/latest\n````\n#### Or use docker-compose.yml \n````\nversion: '3.3'\nservices:\n    speedtest:\n        environment:\n            - ENABLE_LETSENCRYPT=True\n            - DOMAIN_NAME=speedtest.yourdomain.com\n            - USER_EMAIL=you@yourdomain.pro\n        restart: unless-stopped\n        container_name: openspeedtest\n        ports:\n            - '80:3000'\n            - '443:3001'\n        image: openspeedtest/latest\n````\n\n###  How to Use Your Own Secure Sockets Layer (SSL) Certificate, Self-Signed or Paid?\n***Requirements***\n- Folder with your Certificate, Self-Signed or Paid.\n- Rename .cet file and .key file to `nginx.crt` \u0026 `nginx.key`\n\n  The folder needs to contain:\n\n- `nginx.crt`\n\n- `nginx.key`\n\n\n````\nsudo docker run --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest\n````\n\nTo mount a folder with your own SSL certificate to this Docker container, append the following line to the above command:\n  \n\n````bash\n\n-v /${PATH-TO-YOUR-OWN-SSL-CERTIFICATE}:/etc/ssl/\n\n````\n  \nI am adding a folder with nginx.crt and nginx.key from my desktop by using the following command.\n\n````bash\n\nsudo docker run -v /Users/vishnu/Desktop/docker/:/etc/ssl/ --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest\n\n````\n#### Or use docker-compose.yml \n````\nversion: '3.3'\nservices:\n    speedtest:\n        volumes:\n            - '/Users/vishnu/Desktop/docker/:/etc/ssl/'\n        restart: unless-stopped\n        container_name: openspeedtest\n        ports:\n            - '3000:3000'\n            - '3001:3001'\n        image: openspeedtest/latest\n````\n## Advanced Configuration Options \n\n- Container Port Configuration\n  \nTo enable port changes, set the `CHANGE_CONTAINER_PORTS` environment variable to `\"True\"` and provide appropriate values for the following variables.\n\n`CHANGE_CONTAINER_PORTS=True`\n\n`HTTP_PORT=3000`\n\n`HTTPS_PORT=3001`\n\n- Set User\n  \n`SET_USER=101`\n\n- Only Allow `CORS Request` from listed domains. \n\n`ALLOW_ONLY=domain1.com;domain2.com;domain3.com`\n\n- `SET_SERVER_NAME` Display the server name on the UI.\n  \n`SET_SERVER_NAME=HOME-NAS` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenspeedtest%2Fdocker-image","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenspeedtest%2Fdocker-image","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenspeedtest%2Fdocker-image/lists"}