Release 2026.6.3
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
/configpage 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,10Mare unified into standard2.5G,1G, and10Mrepresentations, matching the Virtual Switch (OVS) naming scheme.
3. ⏱️ Configurable Request Retries & HTTP 404 Fail-Fast
- Max Request Retries Option: Added a
Max Request Retriesparameter to the General Settings card on the/configpage. Users can adjust how many times the background scraper attempts to poll a switch upon request failure. Setting this to0disables 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.cgion 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.shUsing 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
VERSIONto"2026.6.3". - [app.py]: Configured GET/POST route handlers to support the
max_request_retriesconfiguration setting. - [app.py]: Instantiated switch scrapers with the user-configured
max_retriesvalue in the caching thread loop. - [app.py]: Implemented
unify_speed()helper function insideupdate_cache()to translate raw switch bit speeds to standard formats. - [scraper.py]: Updated
_open_request_with_retryto 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.