MySpeed: Monitoriza y analiza la velocidad de tu conexión a internet
Software autohospedado para realizar pruebas de velocidad programadas, almacenar histórico y visualizar estadísticas con soporte para múltiples proveedores y notificaciones
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar MySpeed: Monitoriza y analiza la velocidad de tu conexión a internet en el canal GENBYTE:
¿Qué es MySpeed: Monitoriza y analiza la velocidad de tu conexión a internet?
MySpeed es una aplicación open source diseñada para ejecutar pruebas de velocidad de internet de forma automatizada y conservar los resultados durante un periodo de retención configurable. Permite añadir varios servidores de prueba, elegir entre proveedores como Ookla, LibreSpeed y Cloudflare, y generar estadísticas claras de velocidad, latencia y otros parámetros. Incluye sistema de comprobaciones de salud con notificaciones por correo electrónico, Signal, WhatsApp o Telegram, y expone métricas para Prometheus y Grafana. La interfaz web ofrece vistas de lista y estadísticas, selección de servidores y seguimiento en tiempo real de las pruebas.
Características principales
Estadísticas detalladas
Genera gráficos y tablas con velocidad de descarga, subida, ping, jitter y otros indicadores para analizar la calidad de la conexión a lo largo del tiempo.
Programación flexible con Cron
Permite definir la frecuencia de las pruebas mediante expresiones Cron estándar, adaptándose a cualquier necesidad de monitorización.
Múltiples servidores y proveedores
Soporta la adición de varios servidores de prueba y la elección entre Ookla, LibreSpeed y Cloudflare como backends de medición.
Comprobaciones de salud y notificaciones
Configura health checks que avisan por email, Signal, WhatsApp o Telegram ante errores o caídas del servicio.
Retención de datos configurable
Define el periodo de conservación de los resultados, desde unos días hasta almacenamiento indefinido.
Integración con Prometheus y Grafana
Expone métricas en formato Prometheus para su visualización y alerta en Grafana u otras herramientas de observabilidad.
Requisitos del sistema
- Entorno con soporte para contenedores (Docker o Podman)
- Imagen base oven/bun:1 (Bun runtime) para construcción y ejecución
- Volumen persistente para /myspeed/data (base de datos y archivos)
- Puerto 5216 accesible para la interfaz web
- Conexión a internet para descargar dependencias y ejecutar pruebas de velocidad contra servidores externos
Instalación con Docker Compose
Construcción de la imagen Docker
El repositorio incluye un Dockerfile multi-etapa que compila el cliente (frontend) y el servidor (backend) usando Bun. No se proporciona un archivo docker-compose.yml oficial; se puede crear uno propio basándose en la imagen resultante.
Ejecución del contenedor
Lanza el contenedor mapeando el puerto 5216 y montando un volumen para la persistencia de datos en /myspeed/data.
Instalación nativa (Linux/Windows)
La documentación oficial ofrece guías de instalación nativa para Linux y Windows que utilizan Bun directamente sin contenedores.
# Linux: https://docs.myspeed.dev/setup/linux
# Windows: https://docs.myspeed.dev/setup/windows
Acceder al proyecto
Interfaz web
Accede a la interfaz de MySpeed abriendo http://<IP_DEL_HOST>:5216 en un navegador. La aplicación no requiere autenticación inicial según la documentación disponible; la configuración de servidores, programación y notificaciones se realiza desde la propia UI.
Casos de uso
- Monitorización continua de la calidad de la conexión en hogares u oficinas
- Detección de caídas o degradación del servicio ISP con alertas automáticas
- Comparativa histórica entre diferentes proveedores o planes de internet
- Generación de informes de SLA para conexiones críticas
- Integración en dashboards de observabilidad existentes (Prometheus/Grafana)
Configuración avanzada
Variables de entorno relevantes
El Dockerfile establece TZ=Etc/UTC y expone el puerto 5216. Otras variables de configuración (base de datos, proveedores de notificación, claves API) se gestionan desde la interfaz web o archivos de configuración no detallados en la investigación.
EXPOSE 5216
Persistencia de datos
El volumen /myspeed/data almacena la base de datos (SQLite por defecto según dependencias Sequelize/mysql2) y posibles archivos generados. Asegúrate de realizar copias de seguridad de este volumen.
Métricas Prometheus
La dependencia prom-client indica que la aplicación expone un endpoint /metrics compatible con Prometheus. Configura el scraping en prometheus.yml apuntando al puerto 5216.
– job_name: 'myspeed'
static_configs:
– targets: ['host.docker.internal:5216']
Gestión y mantenimiento
Actualización de la imagen
Reconstruye la imagen tras obtener los últimos cambios del repositorio y reinicia el contenedor con el nuevo tag.
docker build -t myspeed:latest .
docker stop myspeed && docker rm myspeed
docker run -d –name myspeed -p 5216:5216 -v myspeed-data:/myspeed/data myspeed:latest
Copia de seguridad de la base de datos
Realiza copias periódicas del volumen myspeed-data o del archivo de base de datos dentro de /myspeed/data.
Visualización de logs
Consulta los logs del contenedor para diagnosticar fallos en las pruebas programadas o en la API.
Stack técnico
- Bun (runtime JavaScript/TypeScript)
- Express.js (servidor web)
- Sequelize (ORM) con soporte SQLite/MySQL
- Prom-client (métricas Prometheus)
- Cron-parser / node-schedule (programación de tareas)
- Satori / @resvg/resvg-js (generación de gráficos/imágenes)
- Docker (contenedorización multi-etapa)
Referencias oficiales
- Repositorio oficial en GitHub: https://github.com/gnmyt/myspeed
- Sitio web del proyecto: https://myspeed.dev
- Documentación oficial (guías de instalación): https://docs.myspeed.dev
- Licencia MIT: https://github.com/gnmyt/myspeed/blob/master/LICENSE
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
