Sign inSign up

gatispei/speedketchup

By gatispei

•Updated 7 minutes ago

Image
0

668

gatispei/speedketchup repository overview

⁠SpeedKetchup

Run periodic internet speed test⁠, store, display results with builtin web server.

Source, issues and prebuilt executables for bare metal: github.com/gatispei/speedketchup⁠

⁠Quick start
docker volume create speedketchup
docker run -p 8080:8080 -v speedketchup:/data gatispei/speedketchup

Then open http://localhost:8080⁠. Results are kept in the /data volume as human readable csv.

⁠The image

FROM scratch: one layer holding the statically linked binary and an empty /data, nothing else. No shell, no libc, no base image underneath, around 230k compressed.

Built for linux/amd64, linux/386, linux/arm64 and linux/arm/v6.

⁠Configuration

Every option is an environment variable, and the command line overrides it. Defaults are the values the image ships with.

variabledefaultwhat it does
SPEEDKETCHUP_INTERVAL10test interval in minutes
SPEEDKETCHUP_FILE/data/speedketchup-results.csvfile to store test results in
SPEEDKETCHUP_ADDRESS0.0.0.0address to listen on
SPEEDKETCHUP_PORT8080port to listen on
SPEEDKETCHUP_SERVERspeedtest server to use, empty selects automatically
SPEEDKETCHUP_DOWNLOAD_DURATION10how long to test download speed, 0 disables
SPEEDKETCHUP_UPLOAD_DURATION10how long to test upload speed, 0 disables
SPEEDKETCHUP_DOWNLOAD_CONNECTIONS8parallel connections for download
SPEEDKETCHUP_UPLOAD_CONNECTIONS8parallel connections for upload
SPEEDKETCHUP_INFLUX_URLInfluxDB line protocol write url to also write every result to, http only, eg http://influxdb:8086/api/v2/write?org=home&bucket=speedketchup
SPEEDKETCHUP_INFLUX_TOKENtoken for the influx url, sent as Authorization: Token <token>
SPEEDKETCHUP_MQTTmqtt broker host[:port] to also publish every result to, with Home Assistant discovery, plain mqtt only, port 1883 by default
SPEEDKETCHUP_MQTT_USERuser name for the mqtt broker
SPEEDKETCHUP_MQTT_PASSWORDpassword for the mqtt broker
docker run -p 8080:8080 -v speedketchup:/data -e SPEEDKETCHUP_INTERVAL=30 gatispei/speedketchup
⁠Features
  • automatic speedtest server selection based on latency or run against specific speedtest server
  • uses HTTP protocol for all operations on network
  • results are stored in human readable .csv⁠, and optionally written to InfluxDB⁠ or anything else that takes its line protocol
  • optionally published over MQTT, with Home Assistant⁠ discovery
  • builtin web-server to display results with uPlot⁠ chart
  • prometheus⁠ metrics of the last test at /metrics: download and upload speed, idle and loaded latency, server and isp, test and failure counts
  • all web assets are included in the program binary
  • statically linked with musl⁠, not dependent on system libc⁠
  • acts as a speedtest server itself. Not registered with official speedtest.net, but can be passed as speedtest server to supporting clients

Tag summary

Content type

Image

Digest

sha256:bef465ed9…

Size

241 kB

Last updated

7 minutes ago

docker pull gatispei/speedketchup