Sign inSign up

djlactose/speedtest

By djlactose

Updated 4 months ago

This is a container which will let you run your own speed tester on your environment.

Image
Monitoring & observability
Web analytics
0

50K+

djlactose/speedtest repository overview

Speedtest

A self-hosted internet speed test application you can run in a Docker container. Tests download speed, upload speed, ping latency, and jitter from your browser.

Features

  • Download test — Streams a 100MB file and measures throughput
  • Upload test — Uploads a 99MB blob with real-time progress tracking
  • Ping test — Measures round-trip latency to the server in milliseconds
  • Jitter test — Computes variation across multiple ping samples
  • Test All — Runs all four tests sequentially with a single click
  • Cancel any running test mid-flight
  • Dark dashboard UI with color-coded results (excellent/good/fair/poor)
  • Copy results to clipboard
  • Server hostname display
  • Responsive layout for desktop and mobile
  • Rate limiting and security headers

Quick Start

docker build -t speedtest .
docker run -d -p 8080:8080 speedtest

Then open http://localhost:8080 in your browser.

Tech Stack

  • Backend: Python 3.12, Flask, Gunicorn, Flask-Limiter
  • Frontend: Vanilla HTML/CSS/JavaScript (no frameworks)
  • Container: Docker (python:3.12-slim, non-root user)

API Endpoints

EndpointMethodDescription
/GETServes the web UI
/downloadGETStreams the 100MB test file (10 req/min)
/uploadPOSTAccepts a file upload, max 150MB (10 req/min)
/pingGETReturns server hostname for latency measurement
/healthGETHealth check endpoint for container orchestration

Security

  • Non-root container user
  • Upload size limit (150MB)
  • Uploaded test files are deleted immediately after saving
  • Rate limiting on all endpoints
  • Security headers: CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy

License

MIT — see LICENSE for details.

Author

Written by Nick Hernandez — GitHub

Tag summary

Content type

Image

Digest

sha256:827fa1b33

Size

18.8 MB

Last updated

4 months ago

docker pull djlactose/speedtest