Commit Graph
182 Commits
Author SHA1 Message Date
henrygd 10d853c004 heartbeat: tweaks and tests (#1729) 2026-02-17 16:12:29 -05:00
Amir MoradiandGitHub cdfd116da0 Add outbound heartbeat monitoring (#1729)
* 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)
2026-02-17 15:48:20 -05:00
henrygd 1f1a448aef ui: small refactoring / auto formatting 2026-02-12 18:40:16 -05:00
e816ea143a SMART: add eMMC health via sysfs (#1736)
* 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>
2026-02-12 15:27:42 -05:00
Sven van GinkelandGitHub 8347afd68e feat: add uptime to table (#1719) 2026-02-04 20:18:28 -05:00
henrygd 0f6142e27e 0.18.3 release 2026-02-01 13:48:11 -05:00
henrygd 201d16af05 fix container net chart totals when filter is active 2026-01-31 18:51:51 -05:00
henrygd 83fb67132b update translations 2026-01-31 16:32:27 -05:00
henrygd 3d8db53e52 fix container uptime sorting edge case (#1696) 2026-01-31 15:03:59 -05:00
Sven van GinkelandGitHub 5797f8a6ad Ignore alt key combinations when navigating systems with arrow keys (#1698) 2026-01-31 14:44:43 -05:00
henrygd 79ca31d770 improve container network stats granularity by using bytes instead of MB
Changes container network statistics to use raw byte values instead of converting to megabytes agent-side, providing more accurate measurements for low-bandwidth containers. Maintains backward compatibility with older agents/hubs through fallback logic.

- Agent now sends Bandwidth field as [sent_bytes, recv_bytes] array
- Deprecated NetworkSent/NetworkRecv fields still populated for compatibility
- Hub and frontend fall back to deprecated fields when Bandwidth is zero
- Record averaging correctly handles both old and new formats
- TODO markers added for cleanup in version 0.19+
2026-01-31 14:05:55 -05:00
henrygd 6723ec8ea4 update honeypot field name and autofill ignores (#1011) 2026-01-28 18:16:30 -05:00
Sven van GinkelandGitHub c83d00ccaa Don't force lowercase text for active alerts (#1682) 2026-01-28 13:50:16 -05:00
425c8d2bdf feat: Added tooltips for navbar buttons to clear meaning of each one (#1636)
* feat: Added tooltips for navbar buttons to clear meaning of each one.

* update tooltips and fix linter errors

---------

Co-authored-by: henrygd <hank@henrygd.me>
2026-01-28 13:39:15 -05:00
Sven van GinkelandGitHub afcae025ae Add icon button for mobile use (#1687) 2026-01-26 20:18:17 -05:00
henrygd 031abbfcb3 ui: conditional title attribute and better CJK truncation
- Adds CJK support for system name truncation
- Change tooltip to title attribute and show only if system name is truncated
2026-01-16 18:17:45 -05:00
Fahleen ArifandGitHub b59fcc26e5 feat: add tooltip to system name in systems table for better accessibility (#1640) 2026-01-16 17:43:29 -05:00
henrygd af0c1d3af7 release 0.18.2 2026-01-12 18:26:30 -05:00
henrygd 9ad3cd0ab9 fix: GPU ID collision between Intel and NVIDIA collectors (#1522)
- Prefix Intel GPU ID as i0 to avoid NVML/NVIDIA index IDs like 0
- Update frontend GPU engines chart to select a GPU by id instead of
assuming g[0]
- Adjust tests to use the new Intel GPU id
2026-01-12 17:27:35 -05:00
crimistandGitHub 00def272b0 site: only hide GPU engine graph if entire usage is 0% (#1624) 2026-01-12 17:16:05 -05:00
marmar76GitHubIskandar, Andreas (contracted) <Andreas.Iskandar@contracted.sampoerna.com>
8821fb5dd0 fix: some of indonesia translate (#1625)
Co-authored-by: Iskandar, Andreas (contracted) <Andreas.Iskandar@contracted.sampoerna.com>
2026-01-12 15:56:45 -05:00
henrygd 1f067aad5b release 0.18.1 2026-01-11 19:05:36 -05:00
henrygd 1388711105 fix(hub): prevent clearing all containers when single system update is empty (#1620) 2026-01-11 19:03:42 -05:00
henrygd 42c3ca5db5 release 0.18.0 2026-01-11 17:18:32 -05:00
henrygd 534791776b update translations 2026-01-11 17:09:43 -05:00
henrygd 2cd6d46f7c add option to make universal token permanent (#1097, 1614) 2026-01-11 15:03:33 -05:00
henrygd c333a9fadd update translations 2026-01-11 13:50:11 -05:00
henrygd ba3d1c66f0 refactor(auth): rename honeypot field to avoid autofill (#1011) 2026-01-09 15:12:34 -05:00
henrygd 8b84231042 refactor: update languages data structure 2026-01-09 12:19:43 -05:00
NatxoandGitHub 77da744008 use origin country flags for Spanish and Portuguese languages (#1571) 2026-01-09 12:10:55 -05:00
henrygd 78d742c712 web: refactor gpu code for slighly better perf 2026-01-08 13:15:16 -05:00
crimist 1c97ea3e2c site: only hide GPU power graph if entire timescale is 0W 2026-01-05 19:42:10 -08:00
henrygd 4547ff7b5d refactor: unify agent communication with Transport interface
- Introduce `Transport` interface to abstract WebSocket and SSH
communication
- Add generic `Data` field to `AgentResponse` for streamlined future
endpoints
- Maintain backward compatibility with legacy hubs and agents using
typed fields
- Unify fetch operations (SMART, systemd, containers) under a single
`request` method
- Improve `RequestManager` with deadline awareness and legacy response
support
- Refactor agent response routing into dedicated `agent/response.go`
- Update version to 0.18.0-beta.2
2026-01-05 13:13:55 -05:00
henrygd f6ab5f2af1 refactor: rm diskinfo abstraction from smart-table.tsx 2025-12-21 12:25:12 -05:00
Sven van GinkelandGitHub 7d943633a3 fix capacity sorting in smart table (#1551) 2025-12-21 12:21:44 -05:00
henrygd d3d102516c refactor system.tsx: change null fallback for details 2025-12-19 00:45:15 -05:00
henrygd 32131439f9 fix systemd table visibility after moving os info to system_details
- also update bun.lock
2025-12-19 00:37:46 -05:00
henrygd e59f8eee36 add system_details collection for infrequently updated data
- add includedetails flag to data requests for better efficiency
- integrate docker host info api for better os detection
- pull more OS details as well as cpu arch
- separate info bar component and refactor for new info
2025-12-18 17:26:05 -05:00
David Davis ab0803b2da Upgrade react to address CVE-2025-55182
More info: https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
2025-12-12 07:42:29 -05:00
Zero2A11andGitHub c8d4f7427d fix: When there is no client, LoaderCircle will always transfer (#1511) 2025-12-09 11:01:13 -05:00
henrygd 8d41a797d3 add battery charge to systems table 2025-12-08 18:20:51 -05:00
henrygd 4c9b00a066 add low battery alert (#1507) 2025-12-08 15:19:46 -05:00
henrygd 3a6caeb06e add serbian 2025-12-05 14:21:50 -05:00
henrygd b7a95d5d76 release 0.17.0 2025-12-02 18:52:12 -05:00
henrygd 8aac0a571a update translations 2025-12-02 17:58:55 -05:00
henrygd c506b8b0ad pull translations 2025-12-02 16:57:12 -05:00
henrygd 41a3d9359f add dedicated S.M.A.R.T. page with persistent device storage
- Add /smart route to view SMART data across all systems
- Store SMART devices in new smart_devices collection
- Auto-fetch SMART data when system first comes online
- Add refresh/delete actions per device with realtime updates
- Add navbar and command palette entries
2025-11-30 13:32:37 -05:00
henrygd 5dfc5f247f update extra disk indicators in systems table to display max 3 states 2025-11-30 12:32:16 -05:00
henrygd 9804c8a31a update translation strings 2025-11-29 20:29:07 -05:00
Pavel PiktaandGitHub 4d05bfdff0 feat: add crossorigin attribute to manifest link (#1457)
Signed-off-by: Pavel Pikta <pavel_pikta@epam.com>
2025-11-26 19:41:54 -05:00