Include probe results in the 1-second realtime WebSocket broadcast so
the frontend can update probe latency/loss every second, matching the
behavior of system and container metrics.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Stats records in the DB contain historical data for all probes including
deleted ones. Now filters stats by active probe keys and clears state
when all probes are removed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rename setInterval to setProbeInterval to avoid shadowing global
- Move probeKey function outside component (pure function)
- Fix probes.length dependency to use probes directly
- Use proper type for stats fetch instead of any
- Fix name column fallback to show target instead of dash
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Lazy-load the NetworkProbes component in both default and tabbed
layouts so the probes table and latency chart appear on the system
detail page.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Displays probe list with protocol badges, latency/loss stats, and
delete functionality. Includes a latency line chart using ChartCard
with data sourced from the network-probe-stats API.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dialog component for adding ICMP/TCP/HTTP network probes with
protocol selection, target, port, interval, and name fields.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- System page tabs display option
- Remove very specific chart components (disk usage, container cpu, etc)
and refactor to use more flexible area and line chart components
- Optimizations around chart handling to decrease mem usage. Charts are
only redrawn now if in view.
- Resolve most of the react dev warnings
Co-authored-by: sveng93 <svenvanginkel@icloud.com>
* feat: add outbound heartbeat monitoring to external endpoints
Allow Beszel hub to periodically ping an external monitoring service
(e.g. BetterStack, Uptime Kuma, Healthchecks.io) with system status
summaries, enabling monitoring without exposing Beszel to the internet.
Configuration via environment variables:
- BESZEL_HUB_HEARTBEAT_URL: endpoint to ping (required to enable)
- BESZEL_HUB_HEARTBEAT_INTERVAL: seconds between pings (default: 60)
- BESZEL_HUB_HEARTBEAT_METHOD: HTTP method - POST/GET/HEAD (default: POST)
* SMART: add eMMC health via sysfs
Read eMMC wear/EOL indicators from /sys/class/block/mmcblk*/device and expose in SMART device list. Includes mocked sysfs tests and UI tweaks for unknown temps.
* small optimizations for emmc scan and parsing
* smart: keep smartctl optional only for Linux hosts with eMMC
* update smart alerts to handle warning state
* refactor: rename binPath to smartctlPath and replace hasSmartctl with smartctlPath checks
---------
Co-authored-by: henrygd <hank@henrygd.me>