Repository navigation
Ver 3.0.0
Release Notes for major update for Wadboard Ver 3.0.0
This release consolidates Health monitoring, SSH/WOL improvements, and UI/UX modernization into a single update. It introduces a new public Health page with live host metrics, improves action feedback and authentication behavior, modernizes toolbars with icons, and adds persistent branding support.
Health Page & Host Metrics
A new public Health view is available at /health, designed to work on Termux (Android) and Ubuntu/Linux, showing live host metrics.
Highlights
- New Health button in the toolbar.
- New full-page public view at
GET /health(no admin password required). - New public API endpoint
GET /api/healthreturning host metrics in JSON. - Improved Health layout:
- CPU tile is large (left column).
- System on the right, Memory + Storage stacked below.
- CPU Load moved to the tile footer.
New Routes / Endpoints
Frontend pages
GET /health— Health page (public, full-page)GET /— Home page
Backend API
GET /api/health— Public host metrics (JSON)- Existing:
GET /api/hostinfo(unchanged)
/api/health Payload (Key Fields)
system: hostname, platform, arch, release, uptimeSeccpu:usagePercentloadavg(1 / 5 / 15)coreshint(when usage cannot be read)
memory: total / used / free / usedPercentstorage(aliasdisk): path, mount, total / used / free / usedPercentnetwork: ipv4battery: best-effort +hintif unavailable
Termux / Android Notes
- Storage mount selection priority:
/storage/emulated/0→/storage/emulated→/data/media/0→/data/media→/ - CPU usage:
- Read from
/proc/stat - If restricted, backend attempts
su -c "cat /proc/stat" - On failure,
usagePercent = nullwith explanatoryhint
- Read from
- Battery metrics:
- Uses
termux-battery-status(requirestermux-apipackage + Termux:API app)
- Uses
Ubuntu / Linux Notes
- Battery metrics:
- Uses
upowerif available - Otherwise returns a
hintsuggesting installation
- Uses
Health UI/UX
- CPU ring shows only percentage.
- Load averages shown in footer (
Load 1 / 5 / 15). - Memory/Storage bars keep horizontal layout with footer-aligned text.
- Auto-refresh interval: 10 seconds.
Implementation Notes
- Frontend served as a static SPA:
express.static(frontend/)/and/healthreturnfrontend/index.htmlfor direct navigation
SSH Actions & Notifications
Highlights
- SSH actions now support an optional password.
- Action results/errors are shown as toast notifications with real error details.
- Clear “Wrong admin password” messages in admin prompt and Settings.
- Telegram battery alerts now trigger on each configured threshold (e.g. 30 → 15 → 5).
Added
- SSH password field for WOL SSH actions.
- Toast notification system.
- Backend response field
detailfor richer error reporting.
Changed
- Replaced browser
alert(...)with toast notifications. - SSH execution behavior:
- Uses
sshpasswhen a password is provided. - Falls back to key-based SSH when no password is set.
- Uses
Fixed
- Telegram battery alerts trigger correctly across multiple thresholds, even if values are skipped between polls.
- Admin password errors are now shown inline instead of silently clearing input.
Notes / Requirements
sshpassmust be installed on the backend host to use password-based SSH.- If missing, the UI displays an error toast with details.
Compatibility
sshActionsnow support apassfield.- Existing configurations remain compatible.
UI / UX Modernization & Branding
Highlights
- Toolbars modernized with Bootstrap Icons (theme-aware).
- Health page toolbar behavior aligned with Home.
- Fixed WOL edit UX.
- Added persistent Brand mark text stored server-side.
UI / UX Changes
- Replaced toolbar text buttons (Theme / Refresh / Health / Settings) with icon buttons.
- Replaced Add button with a plus icon.
- Health toolbar order: Theme → Refresh → Home → Settings.
- Refresh buttons now use
aria-busyand a spinning refresh icon. - Replaced Edit/Delete buttons with pencil/trash icons for:
- Services
- Quick Links
- WOL
- Device Maintenance (host actions)
Fixes
- Editing an existing WOL task now correctly restores the saved WOL Type
(Basic / MikroTik / WadESP-PowerSW) and shows the proper fields.
Settings: Brand Mark
- New Brand mark setting:
- Location: between Change admin password and Battery monitoring
- Default:
WELCOME - Limit: 40 characters
- Basic XSS protection (sanitized, rendered via
textContent)
Backend / Persistence
- Brand text moved from
localStorageto server-side storage:- Stored in
backend/wadph-data.jsonasconfig.brandText - New API endpoints:
GET /api/brand-text(public)PUT /api/brand-text(admin only)
- Stored in
Files Changed
backend/server.jsfrontend/index.htmlbackend/wadph-data.json
Compatibility & Degradation
- Works on Termux (Android) and Ubuntu/Linux (best-effort).
- Graceful degradation:
- Missing tools or permissions return
hintfields in API responses. - UI displays hints instead of failing silently.
- Missing tools or permissions return