Overview
Discover what makes MySpeed powerful
MySpeed is a lightweight, self‑hosted speed‑testing platform that aggregates throughput, latency and packet loss data from multiple providers (Ookla, LibreSpeed, Cloudflare). At its core it orchestrates periodic test runs via cron‑style scheduling, persists the results in a time‑series database, and exposes them through both a web UI and Prometheus metrics. The application is built with Go for the backend, leveraging the Echo framework for HTTP routing and SQLite/PostgreSQL for durable storage. The front end is a single‑page React application that consumes the REST API and renders interactive charts with Chart.js, allowing developers to embed dashboards or extend functionality through custom widgets.
Backend
Databases
Metrics
UI
Overview
MySpeed is a lightweight, self‑hosted speed‑testing platform that aggregates throughput, latency and packet loss data from multiple providers (Ookla, LibreSpeed, Cloudflare). At its core it orchestrates periodic test runs via cron‑style scheduling, persists the results in a time‑series database, and exposes them through both a web UI and Prometheus metrics. The application is built with Go for the backend, leveraging the Echo framework for HTTP routing and SQLite/PostgreSQL for durable storage. The front end is a single‑page React application that consumes the REST API and renders interactive charts with Chart.js, allowing developers to embed dashboards or extend functionality through custom widgets.
Technical Stack
- Backend: Go 1.22, Echo framework, GORM ORM for database access, built‑in cron parser (robfig/cron) for scheduling.
- Databases: Optional SQLite for lightweight deployments or PostgreSQL for production‑grade scalability; data retention is configurable up to 30 days.
- Metrics: Exposes
/metricsendpoint compatible with Prometheus; Grafana dashboards are pre‑configured and can be dropped into an existing monitoring stack. - UI: React 18, TypeScript, Vite build pipeline; uses WebSocket for real‑time test progress updates.
- Notifications: Email (SMTP), Signal, WhatsApp (via Twilio API), Telegram bots; all configurable via environment variables or a secrets file.
Core Capabilities
- Scheduler: Cron expressions drive test frequency; supports per‑server overrides.
- Multi‑Server Management: CRUD API for adding/removing test servers; automatically discovers available Ookla/LibreSpeed endpoints.
- Health Checks: Thresholds for speed, latency and uptime; triggers webhook or messaging alerts when breached.
- Data Retention & Pruning: Automatic cleanup after 30 days; configurable retention window via env vars.
- API & Webhooks: REST endpoints for triggering tests, retrieving results, and subscribing to event hooks; JSON payloads are lightweight and versioned.
Deployment & Infrastructure
MySpeed is container‑ready, with a Dockerfile that builds a statically linked binary and serves the React assets from an embedded filesystem. For production, a multi‑container Docker Compose setup is recommended: one container for MySpeed, another for PostgreSQL, and optional sidecar containers for Prometheus/Grafana. Kubernetes manifests are available in the repo’s deploy/k8s folder, exposing a headless service and Ingress for TLS termination. The application requires minimal resources (≤200 MiB RAM, 1 CPU core) and can run on a Raspberry Pi or an enterprise VM.
Integration & Extensibility
The REST API is fully documented with OpenAPI 3.0, enabling auto‑generated SDKs in any language. Developers can hook into the test lifecycle via webhooks that fire on completion or failure, making it trivial to push metrics to custom dashboards or trigger CI pipelines. The UI is component‑based; custom React components can be added to the dashboard via a simple plugin directory, allowing teams to embed proprietary analytics or compliance checks. Additionally, MySpeed exposes a CLI for ad‑hoc test runs and configuration dumps, useful for scripting in CI/CD workflows.
Developer Experience
Configuration is driven by environment variables and a single config.yaml, with defaults that work out‑of‑the‑box. The documentation is concise yet thorough, covering installation, architecture, and API usage. Community support is active on GitHub Issues, with a permissive MIT license encouraging commercial use without licensing fees. The project’s open source nature means contributors can quickly add new server types or notification channels, and the codebase follows idiomatic Go patterns that are easy to read for seasoned backend developers.
Use Cases
- Network Operations Centers: Continuous monitoring of ISP performance with alerts and Grafana dashboards.
- Managed Service Providers: Automated speed reporting for clients, integrated into billing or SLA verification workflows.
- DevOps Pipelines: Trigger network performance checks before deploying latency‑sensitive services; results can be asserted in tests.
- IoT Edge Devices: Lightweight deployment on edge routers to log connectivity health over time.
Advantages
MySpeed offers a single, cohesive platform that replaces disparate speed‑test tools and manual logging. Its Go implementation ensures low memory footprint and fast execution, while the optional PostgreSQL backend scales to thousands of test points without sharding. The built‑in Prometheus exporter eliminates the need for custom exporters, and the modular notification system supports modern messaging platforms out of the box. Compared to commercial SaaS services, MySpeed provides full data sovereignty, no vendor lock‑in, and zero recurring costs—making it the preferred choice for developers who need reliable, self‑hosted network performance analytics.
Open SourceReady to get started?
Join the community and start self-hosting MySpeed today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Meelo
Self-hosted music server for collectors with flexible browsing and playback
g3proxy
Async Rust forward proxy with TLS, SOCKS5, and reverse‑proxy support
DockSTARTer
Simplify Docker setup and management
Easy!Appointments
Self‑hosted appointment scheduling for any business
HTMLy
Fast, flat‑file PHP blogging platform
OpenStreetMap
Collaborative world map for everyone