Skip to content

Deploying Speed Test by OpenSpeedTest

Introduction

OpenSpeedTest is a free, open-source HTML5 network speed test application that runs entirely in your browser without requiring Flash, Java, or any plugins. Unlike commercial speed test services, OpenSpeedTest gives you complete control over your testing infrastructure and ensures your speed test data remains private.

Built with pure HTML5 and JavaScript, OpenSpeedTest measures download speed, upload speed, ping latency, and jitter with accuracy comparable to commercial alternatives. The lightweight nature of the application makes it perfect for self-hosting scenarios.

Key highlights of OpenSpeedTest:

  • Pure HTML5: No plugins, Flash, or Java required
  • Privacy-Focused: No data collection or tracking
  • Accurate Results: Tests up to 10 Gbps connections accurately
  • Mobile Friendly: Works on any device with a modern browser
  • No Ads: Clean interface without advertisements
  • Lightweight: Minimal resource requirements
  • Customizable: Modify test parameters and appearance
  • Docker Ready: Official Docker image available
  • Cross-Platform: Works on any operating system
  • Open Source: MIT licensed for maximum flexibility

This guide walks through deploying OpenSpeedTest on Klutch.sh using Docker for a private, self-hosted speed testing solution.

Why Deploy OpenSpeedTest on Klutch.sh

Deploying OpenSpeedTest on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh handles the container deployment automatically.

HTTPS by Default: Secure connections with automatic SSL certificates.

Custom Domains: Use your own domain for branded speed tests.

GitHub Integration: Version control your configuration and deploy updates automatically.

No Third-Party Data: Your speed test results stay private.

Internal Testing: Test speeds between your infrastructure and clients.

Always Available: Speed test service runs 24/7 without maintenance.

Low Resource Usage: Lightweight application needs minimal resources.

Prerequisites

Before deploying OpenSpeedTest on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your configuration
  • Basic familiarity with Docker
  • (Optional) A custom domain for your speed test

Deploying OpenSpeedTest on Klutch.sh

    Create a GitHub Repository

    Create a new GitHub repository for your OpenSpeedTest deployment.

    Create Your Dockerfile

    Create a Dockerfile in your repository:

    FROM openspeedtest/latest:latest
    # The base image includes everything needed
    # OpenSpeedTest runs on port 3000 by default
    # Optional: Set custom environment variables
    ENV TITLE="My Speed Test"
    ENV SUBTITLE="Powered by OpenSpeedTest"
    EXPOSE 3000
    HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
    CMD curl -f http://localhost:3000/ || exit 1

    Push Your Repository to GitHub

    Commit and push your Dockerfile.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project named “speedtest” or similar.

    Create a New App

    Within your project, create a new app and connect your GitHub repository.

    Configure HTTP Traffic

    In the deployment settings:

    • Select HTTP as the traffic type
    • Set the internal port to 3000

    Deploy Your Application

    Click Deploy to build and start OpenSpeedTest.

    Access Your Speed Test

    Once deployment completes, access your speed test at https://your-app-name.klutch.sh.

Using OpenSpeedTest

Running a Speed Test

  1. Navigate to your OpenSpeedTest URL
  2. Click Start to begin the test
  3. Wait for download, upload, ping, and jitter measurements
  4. Review your results

Understanding Results

MetricDescription
DownloadData transfer speed from server to client (Mbps)
UploadData transfer speed from client to server (Mbps)
PingRound-trip time for packets (milliseconds)
JitterVariation in ping times (milliseconds)

Test Parameters

OpenSpeedTest automatically adjusts test parameters based on connection speed:

  • Low-speed connections: Smaller test file sizes
  • High-speed connections: Larger test file sizes
  • Automatic multi-threading for faster connections

Customization

Branding

Customize the appearance with environment variables:

VariableDescription
TITLEMain title displayed on the page
SUBTITLESubtitle text

Advanced Configuration

For more customization, modify the HTML/CSS/JS files directly by extending the Docker image:

FROM openspeedtest/latest:latest
# Copy custom styling
COPY custom.css /usr/share/nginx/html/css/custom.css
# Copy custom logo
COPY logo.png /usr/share/nginx/html/images/logo.png

Use Cases

ISP Speed Verification

  • Test actual speeds versus advertised speeds
  • Document speed issues for support tickets
  • Track speed changes over time

Internal Network Testing

  • Test speeds between office locations
  • Verify VPN performance
  • Benchmark new network equipment

Customer-Facing Speed Test

  • Provide customers with your own branded speed test
  • Test connectivity to your services
  • Support troubleshooting

Server Performance

  • Test upload/download speeds to your hosting
  • Verify CDN performance
  • Benchmark different cloud regions

Performance Considerations

Accurate Results

For most accurate results:

  • Run multiple tests at different times
  • Close other applications during tests
  • Use wired connections when possible
  • Consider server location relative to users

Server Capacity

  • OpenSpeedTest is very lightweight
  • A single instance can handle many simultaneous tests
  • Scale resources if serving many concurrent users

Troubleshooting

Test Won’t Start

  • Clear browser cache and cookies
  • Try a different browser
  • Check that JavaScript is enabled

Inaccurate Results

  • Verify no other applications are using bandwidth
  • Check for VPN or proxy interference
  • Test at different times of day

Page Not Loading

  • Verify deployment is running
  • Check Klutch.sh logs for errors
  • Confirm port configuration is correct

Additional Resources

Conclusion

Deploying OpenSpeedTest on Klutch.sh gives you a private, reliable speed testing solution without third-party data collection. Whether you’re verifying ISP speeds, testing internal network performance, or providing customers with a branded speed test, OpenSpeedTest on Klutch.sh delivers accurate results with minimal setup. The lightweight nature of the application means excellent performance even with limited resources.