henrygd
8e71c8ad97
hub: don't retry update check within cache time if request fails
2026-03-22 18:18:31 -04:00
henrygd
97f3b8c61f
test(hub): add tests for update endpoint
2026-03-22 17:56:27 -04:00
henrygd
0b0b5d16d7
refactor(hub): move api related code from hub.go to api.go
2026-03-22 17:31:06 -04:00
Sven van Ginkel
b2fd50211e
feat(hub): show "update available" notification in hub web UI ( #1830 )
...
* refactor, make opt-in, and deprecate /api/beszel/getkey in favor of /api/beszel/info
---------
Co-authored-by: henrygd <hank@henrygd.me >
2026-03-22 17:23:54 -04:00
Sven van Ginkel
c159eaacd1
fix light flashes when refresh in dark mode ( #1832 )
2026-03-22 13:35:43 -04:00
Sven van Ginkel
441bdd2ec5
fix: correct DST offset handling in daily quiet hours ( #1827 )
2026-03-22 12:50:36 -04:00
henrygd
ff36138229
fix(hub): add onAfterBootstrapAndMigrations to properly queue fns after migrations
...
also remove error return from NewHub and improve comments in hub.go
2026-03-20 19:32:59 -04:00
henrygd
be70840609
test: update tests that use os.Setenv to t.Setenv
2026-03-20 15:00:28 -04:00
henrygd
565162ef5f
refactor(hub): harden/enforce pb api rules and add tests
...
- separate collection related code from hub.go
- ensure hub is bootstrapped and collections updated automatically when
calling NewHub
2026-03-20 14:39:05 -04:00
henrygd
1ff7762c80
test(hub): add status alert tests covering multiple users
2026-03-18 17:44:34 -04:00
henrygd
0ab8a606e0
fix(ui): hooks bug in all systems table disk cell
2026-03-18 17:17:58 -04:00
henrygd
e4e0affbc1
test(hub): add additional tests for all system alerts
2026-03-17 18:48:54 -04:00
henrygd
c3a0e645ee
refactor: variable renaming in alerts package
2026-03-17 18:44:46 -04:00
henrygd
c6c3950fb0
refactor: add alertsCache to maintain active alert data in memory
2026-03-17 18:32:57 -04:00
henrygd
704cb86de8
refactor: change ExpiryMap.store to be a pointer
2026-03-16 17:44:45 -04:00
henrygd
2854ce882f
fix(ui): centralize default layout width and update default setting
2026-03-16 15:23:32 -04:00
henrygd
4ebe869591
ui: virtualize smart table
2026-03-15 15:20:07 -04:00
henrygd
c9bbbe91f2
ui: improve table col widths and hide text showing above header
2026-03-15 14:59:25 -04:00
henrygd
5bfe4f6970
agent: include ip in container port if not 0.0.0.0 or ::
2026-03-15 14:58:21 -04:00
henrygd
380d2b1091
add ports column to containers table ( #1481 )
2026-03-14 19:29:39 -04:00
henrygd
a7f99e7a8c
agent: support new Docker API Health field ( #1475 )
2026-03-14 15:26:44 -04:00
henrygd
8e2316f845
refactor: simplify/improve status alert handling ( #1519 )
...
also adds new functionality to restore any pending down alerts
that were lost by hub restart before creation
2026-03-12 15:53:40 -04:00
Sven van Ginkel
0d3dfcb207
fix(hub): check if status alert is triggered before sending up alert ( #1806 )
2026-03-12 13:38:42 -04:00
henrygd
b386ce5190
hub: add ExpiryMap.UpdateExpiration and sync SMART fetch intervals ( #1800 )
...
- Update smartFetchMap expiration when agent smart interval changes
- Prevent background SMART fetching before initial system details are
loaded
- Add buffer to SMART fetch timing check
- Get rid of unnecessary pointers in expirymap
2026-03-11 16:25:52 -04:00
henrygd
e527534016
ensure deprecated system fields are migrated to newer structures
...
also removes refs to legacy load avg fields (l1, l5, l15) that were
around for a very short period
2026-03-10 18:46:57 -04:00
Victor Eduardo
ec7ad632a9
fix: Use historical records to average disk usage for extra disk alerts ( #1801 )
...
- Introduced a new test file `alerts_disk_test.go` to validate the behavior of disk alerts using historical data for extra filesystems.
- Enhanced the `HandleSystemAlerts` function to correctly calculate disk usage for extra filesystems based on historical records.
- Updated the `SystemAlertStats` struct to include `ExtraFs` for tracking additional filesystem statistics.
2026-03-09 18:32:35 -04:00
henrygd
35d0e792ad
refactor(expirymap): optimize performance and add StopCleaner method
2026-03-08 19:09:41 -04:00
henrygd
654cd06b19
respect SMART_INTERVAL across agent reconnects ( #1800 )
...
Move tracking of the last SMART data fetch from individual System
instances to the SystemManager using a TTL-based ExpiryMap.
This ensures that the SMART_INTERVAL is respected even if an
agent connection is dropped and re-established, preventing
redundant data collection on every reconnect.
2026-03-08 19:03:50 -04:00
henrygd
5e1b028130
refactor(smart): improve perf by skipping ata_device_statistics parsing if unnecessary
2026-03-08 15:19:50 -04:00
henrygd
638e7dc12a
fix(smart): handle negative ATA device statistics values ( #1791 )
2026-03-08 13:34:16 -04:00
henrygd
73c262455d
refactor(agent): move GetEnv to utils package
2026-03-07 14:12:17 -05:00
henrygd
8f23fff1c9
refactor: mdraid comments and organization
...
also hide serial / firmware in smart details if empty, remove a few
unnecessary ops, and add a few more passed state values
2026-02-27 14:23:10 -05:00
ilya
b012df5669
Fix volume path in Docker run command ( #1764 )
2026-02-24 15:47:16 -05:00
henrygd
9e2296452b
fix: compute bandwidth alerts from byte-per-second source ( #1770 )
...
Use Info.BandwidthBytes converted to MB/s with float division so
bandwidth alert checks are based on current data without integer
truncation near thresholds.
2026-02-24 13:07:27 -05:00
henrygd
ac79860d4a
dev: update biome schema and disable assist/source/organizeImports
2026-02-20 15:50:44 -05:00
henrygd
e13a99fdac
ui: add fallback to display language code if no emoji / flag
2026-02-20 15:46:24 -05:00
henrygd
4cfb2a86ad
0.18.4 release
2026-02-20 15:00:15 -05:00
henrygd
191f25f6e0
ui: refactor heartbeat settings page
2026-02-20 14:48:59 -05:00
henrygd
aa8b3711d7
update translations
2026-02-19 19:22:54 -05:00
henrygd
1fb0b25988
testing: improve flaky hub cleanup in agent_connect_test.go
2026-02-19 18:35:31 -05:00
henrygd
04600d83cc
refactor: small go 1.26 updates and go fix changes
2026-02-19 18:04:33 -05:00
henrygd
daac287b9d
ui: fix race issue with meter threshold colors
...
also increase the default container width
2026-02-19 17:37:57 -05:00
henrygd
d526ea61a9
ui: freeze header of smart device details table
2026-02-19 17:35:12 -05:00
henrygd
79616e1662
update translations
2026-02-19 16:21:59 -05:00
Sven van Ginkel
01e8bdf040
feat: allow precise value entry for alerts via text input ( #1718 )
2026-02-19 13:15:12 -05:00
henrygd
311095cfdd
harden against docker api path traversal
...
Validate container IDs (12-64 hex) in hub container endpoints and agent
Docker requests, and build Docker URLs with escaped path segments. Add
regression tests for traversal/malformed container inputs and safe
endpoint construction.
2026-02-18 17:33:00 -05:00
henrygd
4869c834bb
fix(ui): update bandwidth fallback to 0 when data is empty (avoid NaN)
2026-02-18 16:28:18 -05:00
henrygd
10d853c004
heartbeat: tweaks and tests ( #1729 )
2026-02-17 16:12:29 -05:00
Amir Moradi
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
7d6c0caafc
add amdgpu.ids to docker images ( #1569 )
2026-02-13 19:55:02 -05:00