Commit Graph

384 Commits

Author SHA1 Message Date
hank
f17a7320d4 New translations en.po (Hungarian)
[ci skip]
2026-09-09 21:45:39 -04:00
hank
815a207509 New translations en.po (Hebrew)
[ci skip]
2026-09-09 21:45:37 -04:00
hank
31dacaff38 New translations en.po (Greek)
[ci skip]
2026-09-09 21:45:36 -04:00
hank
fd4e03de08 New translations en.po (Danish)
[ci skip]
2026-09-09 21:45:35 -04:00
hank
6453869371 New translations en.po (Czech)
[ci skip]
2026-09-09 21:45:33 -04:00
hank
e0de0b3260 New translations en.po (Bulgarian)
[ci skip]
2026-09-09 21:45:32 -04:00
hank
73b9b86cb7 New translations en.po (Spanish)
[ci skip]
2026-09-09 21:45:30 -04:00
hank
8db92a72ef New translations en.po (French)
[ci skip]
2026-09-09 21:45:29 -04:00
henrygd
bb270e02a8 i18n: add translations for new strings and remove source matching translations 2026-09-09 20:53:52 -04:00
hank
312c109138 i18n: New Crowdin updates (#2322) 2026-09-09 20:34:47 -04:00
henrygd
c938368089 i18n: update translation strings 2026-09-09 20:27:22 -04:00
Ani Betts
8d6a5d5f6e feat(agent): report btrfs filesystems as storage pools (#2315)
Co-authored-by: henrygd <hank@henrygd.me>
2026-09-09 19:53:39 -04:00
henrygd
98687be2f2 fix(hub): reject null systemd service entries to prevent hub panic 2026-09-08 10:08:33 -04:00
henrygd
e39e153ca0 fix(hub): prevent readonly users listing tokens of their shared systems via api 2026-09-08 09:57:58 -04:00
Santhi Prakash
5b87f7d7cb fix(hub): always clear auth store when encountring 4xx after token expires (#2310)
Co-authored-by: henrygd <hank@henrygd.me>
2026-09-08 08:21:00 -04:00
hank
9a0aa5a89e fix: prevent possible dns rebinding for alert notifications directing to internal sevices (#2314)
- Validate resolved IPs immediately before connecting.
- Guard Shoutrrr requests during initialization and delivery.
- Require admins for services without HTTP client support.
- Test DNS rebinding, redirects, internal hosts, and authorization.
- Upgrade Shoutrrr to 0.20.0 to support custom dialcontext
2026-09-08 08:05:47 -04:00
henrygd
997adc19bb fix: show idle GPU utilization in systems table (#2312) 2026-09-07 13:13:05 -04:00
Sven van Ginkel
08d813620c Add ZFS pool/dataset utilities (zpool, zfs) to the full and slim nvidia agent images (#2311) 2026-09-07 11:05:02 -04:00
henrygd
6cb302fcf6 fix(hub): bound realtime metric fetching and enforce access control by system
- synchronize realtime subscription state
- prevent overlapping fetches per system
- add realtime worker lifecycle tests
- reject subscriptions without system access
- test access revocation and shared-system permissions
2026-09-06 13:24:53 -04:00
Matthew D'Souza
ad24484caa feat(site): display NVMe data units as human-readable GB/TB (#2303) 2026-09-05 14:44:03 -04:00
henrygd
c157c2026d fix(agent): include root CA certificates in base image (#2291) 2026-09-03 14:32:59 -04:00
Arno
e1d9ebc61d chore: add zfs tools to intel agent image (#2288) 2026-09-03 14:19:49 -04:00
henrygd
ffcdb04167 i18n: update locale files 2026-09-03 11:22:37 -04:00
hank
a8def47018 i18n: New Crowdin updates (#2284) 2026-09-02 18:06:01 -04:00
henrygd
3d8fc39e94 update dev version and finalize migration file for 0.19.0 2026-09-02 18:00:40 -04:00
Santhi Prakash
5790fbecce fix: GPU Power Draw chart renders full-width instead of half-width (#2269) 2026-09-02 17:09:32 -04:00
hank
f9309da9f0 i18n: New Crowdin updates (#2283) 2026-09-02 15:37:11 -04:00
henrygd
7d97b0d23a i18n: update locale files and source strings 2026-09-02 14:57:37 -04:00
henrygd
a1ca51608a fix: add singleDesc back to container alert 2026-09-02 13:09:27 -04:00
henrygd
a4de2e87c4 consolidate migrations and add triggeredDesc for container health alert 2026-09-02 13:02:42 -04:00
Michał Mleczko
5969d36856 feat(alerts): add container health alerts with log excerpt on notifications (#2225)
Add a new "ContainerHealth" alert type that fires when a Docker container's
health check reports unhealthy, and resolves when it recovers. This mirrors
the existing Status (up/down) alert pattern: an alert can be armed per system
and honors the "min minutes" delay before firing.

When the alert fires, the notification (email and any configured webhook,
including Discord via shoutrrr) includes a log excerpt fetched live from the
agent for up to 2 of the unhealthy containers, prioritizing lines containing
"error" or "fatal" (falling back to the log tail if none match), capped to
keep the message well under Discord's size limit.

---------

Co-authored-by: hank <hank@henrygd.me>
2026-09-02 12:46:23 -04:00
henrygd
b1895247ba alerts: defer system info unmarshalling for systemd alerts 2026-09-01 21:49:45 -04:00
Martin Stenröse
097180e8d7 feat(alerts): add alert for failed systemd services (#2173)
Adds a user-configurable "Failed Services" alert that notifies when any
tracked systemd service enters the failed state, and again when all services
recover.

---------

Signed-off-by: Martin Stenröse <martin@stenrose.se>
Co-authored-by: henrygd <hank@henrygd.me>
2026-09-01 20:41:48 -04:00
spatiumstas
ed88e6efae feat(alerts): add CPU state notifications (#2249) 2026-09-01 19:10:31 -04:00
Steven Honson
b670224ed8 ui: hide gpu indicator for host without gpu (#2279) 2026-09-01 18:36:09 -04:00
Tamás Vince
917d069ab3 feat: add ZFS monitoring (#2209)
- track pool capacity, health, I/O, scrub status, and vdev errors
- report dataset usage and correct ZFS filesystem metrics
- add pool charts, detail views, refresh controls, and health alerts
- persist pool details and include ZFS usage in disk alerts
- support configurable detail intervals and legacy agent compatibility

---------

Co-authored-by: hank <hank@henrygd.me>
2026-09-01 12:19:36 -04:00
Sven van Ginkel
b38fb7dafa feat: Add cumulative disk read/write totals to Disk I/O sheet (#2179) 2026-08-30 15:44:18 -04:00
henrygd
8675199e20 fix: preserve battery array encoding with json v2 2026-08-30 14:40:13 -04:00
Aditya Raj Singh
3af6512514 fix(hub): don't read the SSH client after it is closed (#2277)
createSessionWithTimeout checked sys.client for nil and then dereferenced
it again inside the goroutine that calls NewSession. update() runs the
SMART fetch in its own goroutine, so closeSSHConnection can clear the
field between those two reads and the goroutine dereferences a nil
client, panicking the whole hub process.

Make client an atomic.Pointer, load it once before starting the
goroutine, and clear it with Swap so a concurrent close cannot be
observed mid-session-creation. NewSession on an already-closed client
returns an error, which the existing retry path already handles.

Closes #2157
2026-08-30 13:34:32 -04:00
Sven van Ginkel
87620f3251 feat(hub/agent): alphabetical disk ordering and root disk renaming (#2006) 2026-08-30 13:09:04 -04:00
henrygd
467f176713 i18n: add Greek and update locale files 2026-08-27 15:10:05 -04:00
Erkinjon Yusupov
4c8e3c69ba feat: add Uzbek (uz) translation (#2034) 2026-08-27 14:58:21 -04:00
hank
8dfdacb8f5 i18n: New Crowdin updates (#2234) 2026-08-27 14:49:08 -04:00
henrygd
d7256c7af7 fix: widen coverage of internal ip space in isInternalIP 2026-08-26 13:42:29 -04:00
henrygd
6f92b9396d fix(hub): user alerts idor
fixes very unlikely scenario where user guesses another user's 15
character random system id and adds alerts for it
2026-08-21 17:25:09 -04:00
Pavel Artsishevsky
2df1f722e4 fix(agent): use time-based CPU calc for Podman containers (#2131) 2026-08-17 17:08:57 -04:00
henrygd
2054b276a7 fix(release): avoid duplicate ARM archives (#1884) 2026-08-17 16:49:59 -04:00
henrygd
e07f91b920 release 0.18.8 2026-08-17 16:01:51 -04:00
henrygd
218aa8478a update translations 2026-08-17 15:38:22 -04:00
hank
2d01d71f46 New Crowdin updates (#1930) 2026-08-17 15:33:16 -04:00