github i7Gamer/MySpeed v1.1.6
Release 1.1.6

latest releases: v1.7.0, v1.6.1, v1.6.0...
one month ago

Changes since 1.1.5

New

  • Period-over-period comparison on the Statistics page. Each figure now shows how it changed against the immediately preceding period, and the page states the window it is comparing against. Skipped automatically when the previous period has no data to compare with.
  • "All time" everywhere, and a smarter date picker. "All time" is now offered on the Statistics page as well as the Overview. The picker's field names the chosen preset ("Last 7 days") instead of the two dates it happens to resolve to, the calendar can jump a full year at a time, and the Overview's selected range is kept in the URL so a view can be bookmarked and shared. The "all time" export is named for what you asked for rather than the wide stand-in window behind it.
  • Password strength policy. A newly chosen admin password must be at least 8 characters and contain lower- and upper-case letters plus a number or symbol. Existing passwords and restored backups are unaffected; the setup and change dialogs now say exactly which rule was not met.

Fixed

  • Statistics could fail to load on large histories. Ranges holding roughly 125,000+ tests (a year of frequent testing) made the Statistics endpoint error out with a blank page; it now handles any range.
  • Integrations were broken on MySQL. On MySQL-backed instances the active-integrations list, editing an integration, and every outgoing notification (Discord, Telegram, Gotify, ntfy, Pushover, InfluxDB, webhooks, healthchecks) failed. SQLite instances were unaffected.
  • Recommendations stopped updating after a failed test. A single failure among the most recent tests silently froze the recommended optimal values until it aged out; they now read from the most recent successful tests.
  • Speed-test history export dropped the server ID, so restoring a backup reset which server each test used. Exports now carry it.
  • Actions no longer report success when the server refused them. Changing the password, optimal values, test frequency, pause duration, integrations, and importing/exporting/clearing history now surface the actual error instead of showing a green "saved" over a change that did not happen. Importing a corrupt backup file now reports the problem instead of doing nothing.
  • Storage size was under-reported. The "used space" figure ignored the database's write-ahead log, reading a few kilobytes for instances holding hundreds of kilobytes; it now reflects the real footprint.
  • Retention deleted a day late on MySQL. Tests from the cutoff day survived the retention sweep on MySQL-backed instances.
  • Read-only visitors were shown the host's network-interface name. A password-protected dashboard shared in read-only mode no longer discloses the operator's network adapter.
  • The header could not be operated by keyboard. Settings, servers, admin login, and the update notice are now real buttons — focusable, keyboard-activatable, and announced by screen readers.
  • Date picker fixes: the calendar no longer opens on a stale month after you switch ranges, and its popup no longer spills past the screen edges on mobile.
  • Settings dialogs showed defaults over your stored values on read-access instances until re-saved; they now read the stored settings each time they open.
  • Stacked dialogs both reacted to Enter/Escape — one keypress could act on a hidden dialog. Only the top dialog now responds.
  • Adding a server gave no feedback on an empty form or on specific rejections; it now names the reason.
  • Infinite scroll could stall re-fetching a page it had already shown, leaving the rest of the history unreachable.
  • Failed tests now report a clear reason when the configured network interface has no usable address, instead of an opaque error.
  • Jitter of exactly 0 ms is now recorded as a real measurement rather than "not measured."
  • German localization completed — relative-time strings ("… days ago") that had remained in English are now translated.
  • Assorted interface refinements: consistent control sizes in the page toolbar, a clickable instance title for read-only visitors, and a correct fallback for the social-preview image when its logo asset is missing.

Under the hood

  • Restoring a speed-test history is now a single database transaction — much faster on large files, and all-or-nothing rather than partial on failure.
  • The Statistics query reads only the columns it needs, cutting memory use and load time on wide ranges.
  • Dashboard requests now time out instead of hanging indefinitely on a stalled connection, and a node proxy cancels its upstream request when the viewer navigates away.
  • Hardening: bounded redirect handling for CLI downloads, UUID identifiers for integrations, and rejection of invalid configuration keys.

Downloads

Platform x86-64 ARM64
Windows EXE · MSI
Linux Binary Binary
macOS Binary Binary

Source Distribution

  • ZIP Archive (requires Bun runtime)

Docker Images

  • i7gamer/myspeed:latest
  • i7gamer/myspeed:1.1.6

Don't miss a new MySpeed release

NewReleases is sending notifications on new releases.