Skip to content

Release 2026.6.3

Choose a tag to compare

@byte4geek byte4geek released this 11 Jun 08:41
· 8 commits to main since this release

Release 2026.6.3: Draggable Node Reordering, Unified Port Speeds, & Request Retry Tuning 🚀🔌⏱️

Welcome to Release 2026.6.3 of the Switch Dashboard! This release brings major quality-of-life updates, including drag-and-drop node sequence customization on the configuration page, unified network port speed formatting across all switch types, and customizable HTTP query retries with fast-failing on 404 client errors.


🌟 What's New in v2026.6.3

1. ⠿ Custom Node Reordering via Drag-and-Drop

  • Draggable Nodes: Added the ability to reorder nodes (Switches and Routers) directly on the /config page by grabbing the draggable grab handle .
  • Form Synchronization: Moving a node dynamically recalculates form indexes, hidden field states, and checkboxes in real-time.
  • Persistent Ordering: Submitting the form saves the new node order to config.json. The main index page (/) automatically renders the nodes in the exact sequence you configured.

2. 🔌 Unified Port Speed Formats

  • Cross-Node Normalization: Standardized port speeds across Open vSwitch (OVS), Fritz!Box, and Managed Switches.
  • Visual Alignment: Raw speeds such as 2500M, 1000M, 10M are unified into standard 2.5G, 1G, and 10M representations, matching the Virtual Switch (OVS) naming scheme.

3. ⏱️ Configurable Request Retries & HTTP 404 Fail-Fast

  • Max Request Retries Option: Added a Max Request Retries parameter to the General Settings card on the /config page. Users can adjust how many times the background scraper attempts to poll a switch upon request failure. Setting this to 0 disables retries completely (only tries once).
  • HTTP 404 Fail-Fast: The scraper now instantly raises an exception and aborts further attempts if a remote URL returns HTTP 404 Not Found (such as /dhcp_snooping.cgi on unsupported hardware). This prevents thread-blocking, polling lag, and missing throughput charts caused by retry wait-times.

💾 Installation & Upgrading

Using the Automated Installer (Debian/Ubuntu/RHEL)

To pull the latest release and run the auto-installer:

cd switch-dashboard
git pull
sudo bash install.sh

Using Docker Compose

Simply pull the updated image and recreate the containers:

docker compose pull
docker compose up -d --force-recreate

🛠️ Detailed Changelog

  • [app.py]: Bumped VERSION to "2026.6.3".
  • [app.py]: Configured GET/POST route handlers to support the max_request_retries configuration setting.
  • [app.py]: Instantiated switch scrapers with the user-configured max_retries value in the caching thread loop.
  • [app.py]: Implemented unify_speed() helper function inside update_cache() to translate raw switch bit speeds to standard formats.
  • [scraper.py]: Updated _open_request_with_retry to honor custom retries setting and immediately raise exceptions on HTTP 404 errors.
  • [templates/config.html]: Added "Max Request Retries" number field input to the General Settings card.
  • [templates/config.html]: Integrated HTML5 drag-and-drop reordering with a custom grab indicator handle and active dynamic index recalculation script.
  • [README.md]: Added Release 2026.6.3 entry to the Changelog section.