henrygd
bc55e249c4
ui: visually truncate public key on tokens settings page
2026-08-14 10:06:24 -04:00
Sven van Ginkel
977826e8f3
feat(hub): show public key in universal token settings ( #2028 )
2026-08-14 10:04:40 -04:00
henrygd
8450b40e0c
fix: tests that were not compatible w/ new pocketbase version
2026-08-14 00:20:45 -04:00
henrygd
ac4436bea3
fix(tests): align error message after merging #2011
2026-08-13 19:27:33 -04:00
Sven van Ginkel
fa5cda83c2
fix(agent): validate HUB_URL host to prevent misleading "lookup api" DNS error ( #2011 )
2026-08-13 19:25:12 -04:00
Sven van Ginkel
35af36fbd2
bug: fix docker memory chart ( #2027 )
2026-08-13 19:21:40 -04:00
Sven van Ginkel
e380ab6917
fix(ui): prevent usage bars from overflowing card border in grid view ( #2064 )
2026-08-13 19:18:43 -04:00
TowyTowy
c3a432101b
fix(hub): re-dial SSH-pull agents when a connection silently dies ( #2126 )
...
The per-system updater reused an SSH client across ticks and ran the data
exchange with no deadline. If a connection went half-open (dead peer that
never sends RST/FIN) or an agent accepted the session but never wrote a
response, the read in fetchDataViaSSH blocked forever. Because
StartUpdater calls update() synchronously on its ticker, a blocked read
froze the whole per-system goroutine: the ticker's subsequent ticks were
dropped, no error was returned so the system stayed "up", and the agent
was never re-dialed until the hub process restarted.
Bound each SSH data exchange with sshOperationTimeout via runWithTimeout:
on timeout the connection is torn down (unwinding the blocked read) and a
retryable error is returned, so the next tick re-dials. Also enable TCP
keep-alive on dialed connections as a backstop for genuine network death.
Fixes #2041
2026-08-13 19:04:38 -04:00
Ryan Chou
98e86b4c9c
fix(agent): treat a backwards container CPU counter as a new baseline ( #2205 )
...
CalculateCpuPercentLinux subtracted the stored previous counters from the
current ones without checking direction. When a stats response is processed
after a newer one for the same container, or an accounting counter resets,
the current total reads lower and the unsigned subtraction wraps to ~2^64
instead of going negative.
On the container counter that surfaces as the reported error, and the sample
is discarded along with the container's network stats:
cpu pct greater than 100: 1.15292150348562e+13
On the system counter it is quieter and worse: the wrapped value inflates the
divisor, so the percentage collapses toward zero and is stored as a healthy
sample rather than rejected. A synthetic rollback measures 2.7e-12 percent.
Both directions are now treated as a new baseline (0% for one sample), which
matches how the function already handles the first-run case.
CalculateCpuPercentWindows had the same unguarded subtraction and is fixed
the same way.
Fixes #2149
Co-authored-by: Ryan Chou <ryanchou1994@users.noreply.github.com >
2026-08-13 18:14:30 -04:00
henrygd
d40372842b
fix(agent): guard against unsigned underflow in memory calculations ( closes #1978 )
...
Extract host memory derivation into calculateHostMemoryUsage and use
saturating subtraction to prevent uint64 underflow caused by race
conditions when reading /proc/meminfo. Also ensure UsedPercent guards
against division by zero.
Co-authored-by: Sven van Ginkel <svenvanginkel@icloud.com >
2026-08-13 17:06:10 -04:00
Rajkumar
c9b6279e61
feat(agent): add arm64 to beszel-agent-nvidia platform matrix ( #2207 )
2026-08-11 18:10:36 -04:00
Sven van Ginkel
9887b662ad
fix(hub): refresh system details on agent reconnect ssh ( #2086 )
2026-08-11 18:08:18 -04:00
Kobi Hikri
71bc6f9b9f
ci: attach provenance and SBOM attestations to the published images ( #2159 )
...
* ci: attach provenance and SBOM attestations to the published images
* ci: restore trailing newline at end of file
2026-08-11 18:04:39 -04:00
dependabot[bot]
87468965dc
chore(deps): bump docker/metadata-action from 5 to 6 ( #2201 )
...
Bumps [docker/metadata-action](https://github.com/docker/metadata-action ) from 5 to 6.
- [Release notes](https://github.com/docker/metadata-action/releases )
- [Commits](https://github.com/docker/metadata-action/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: docker/metadata-action
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 17:56:29 -04:00
dependabot[bot]
db0da58ac8
chore(deps): bump docker/login-action from 3 to 4 ( #2202 )
...
Bumps [docker/login-action](https://github.com/docker/login-action ) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases )
- [Commits](https://github.com/docker/login-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/login-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 17:49:49 -04:00
dependabot[bot]
b9b3a23063
chore(deps): bump actions/setup-dotnet from 4 to 6 ( #2203 )
...
Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet ) from 4 to 6.
- [Release notes](https://github.com/actions/setup-dotnet/releases )
- [Commits](https://github.com/actions/setup-dotnet/compare/v4...v6 )
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 17:49:28 -04:00
dependabot[bot]
ac34e58113
chore(deps): bump actions/checkout from 4 to 7 ( #2200 )
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 4 to 7.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v4...v7 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 17:48:24 -04:00
dependabot[bot]
3c8703d1c0
chore(deps): bump actions/stale from 10 to 11 ( #2199 )
...
Bumps [actions/stale](https://github.com/actions/stale ) from 10 to 11.
- [Release notes](https://github.com/actions/stale/releases )
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/stale/compare/v10...v11 )
---
updated-dependencies:
- dependency-name: actions/stale
dependency-version: '11'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 17:48:11 -04:00
Sven van Ginkel
01efba50a5
fix(agent): remove unsynchronized hubVersions cache causing concurrent map write panic ( #2153 )
2026-08-11 17:14:59 -04:00
henrygd
d0453f1ca6
update go version and packages
2026-08-11 16:53:23 -04:00
Quadrubo
7ffc6e81ce
fix(agent): prevent a malformed Docker response from permanently breaking container stats ( #2066 )
...
decode() reused a single json.Decoder across responses. Once a decode errored on a truncated or malformed body (e.g. a container removed mid-request), the decoder stayed desynced and every subsequent decode failed, silently stopping all container stats until the agent was restarted. Decode the buffered bytes with json.Unmarshal instead, which keeps the reusable read buffer but holds no cross-call state.
Regression from d67d638 .
2026-08-11 16:40:24 -04:00
Pavel Artsishevsky
1aa9fcd31d
Fixes redirect-based OAuth login when OAUTH_DISABLE_POPUP=true is set ( #2171 )
...
Switch to localStorage, which is shared across all tabs/windows of the
same origin. Also clean up the stored entry and strip the callback URL
on both success and failure paths.
2026-08-11 16:33:05 -04:00
Vito Cappello
bd52134558
fix(agent): don't warn on mdraid consistency checks ( #2067 )
2026-08-11 15:50:58 -04:00
Anikesh Thakur
3fac02f0c0
fix: start agent after pfSense reboot ( #2214 )
2026-08-11 15:44:27 -04:00
dependabot[bot]
e4c0522cae
chore(deps): bump github.com/ebitengine/purego from 0.10.0 to 0.10.2 ( #2191 )
...
Bumps [github.com/ebitengine/purego](https://github.com/ebitengine/purego ) from 0.10.0 to 0.10.2.
- [Release notes](https://github.com/ebitengine/purego/releases )
- [Commits](https://github.com/ebitengine/purego/compare/v0.10.0...v0.10.2 )
---
updated-dependencies:
- dependency-name: github.com/ebitengine/purego
dependency-version: 0.10.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 18:30:38 -04:00
dependabot[bot]
f2ccaacecb
chore(deps): bump github.com/shirou/gopsutil/v4 from 4.26.3 to 4.26.7 ( #2189 )
...
Bumps [github.com/shirou/gopsutil/v4](https://github.com/shirou/gopsutil ) from 4.26.3 to 4.26.7.
- [Release notes](https://github.com/shirou/gopsutil/releases )
- [Commits](https://github.com/shirou/gopsutil/compare/v4.26.3...v4.26.7 )
---
updated-dependencies:
- dependency-name: github.com/shirou/gopsutil/v4
dependency-version: 4.26.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 18:30:29 -04:00
dependabot[bot]
a81ce14046
chore(deps): bump docker/setup-qemu-action from 3 to 4 ( #2188 )
...
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action ) from 3 to 4.
- [Release notes](https://github.com/docker/setup-qemu-action/releases )
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 18:29:47 -04:00
dependabot[bot]
6e4a2c8a3d
chore(deps): bump docker/build-push-action from 5 to 7 ( #2190 )
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 5 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v5...v7 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 18:29:36 -04:00
dependabot[bot]
8cf39be6ef
chore(deps): bump github.com/lxzan/gws from 1.9.1 to 1.10.1 ( #2193 )
...
Bumps [github.com/lxzan/gws](https://github.com/lxzan/gws ) from 1.9.1 to 1.10.1.
- [Release notes](https://github.com/lxzan/gws/releases )
- [Commits](https://github.com/lxzan/gws/compare/v1.9.1...v1.10.1 )
---
updated-dependencies:
- dependency-name: github.com/lxzan/gws
dependency-version: 1.10.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 18:28:56 -04:00
dependabot[bot]
146ca4284c
chore(deps): bump actions/setup-go from 5 to 7 ( #2192 )
...
Bumps [actions/setup-go](https://github.com/actions/setup-go ) from 5 to 7.
- [Release notes](https://github.com/actions/setup-go/releases )
- [Commits](https://github.com/actions/setup-go/compare/v5...v7 )
---
updated-dependencies:
- dependency-name: actions/setup-go
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 18:28:35 -04:00
dependabot[bot]
6eae195d9c
chore(deps): bump klaasnicolaas/action-inactivity-lock ( #2194 )
...
Bumps [klaasnicolaas/action-inactivity-lock](https://github.com/klaasnicolaas/action-inactivity-lock ) from 1.1.3 to 2.0.1.
- [Release notes](https://github.com/klaasnicolaas/action-inactivity-lock/releases )
- [Commits](https://github.com/klaasnicolaas/action-inactivity-lock/compare/v1.1.3...v2.0.1 )
---
updated-dependencies:
- dependency-name: klaasnicolaas/action-inactivity-lock
dependency-version: 2.0.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 18:28:22 -04:00
dependabot[bot]
30bf65991b
chore(deps): bump github.com/fxamacker/cbor/v2 from 2.9.0 to 2.9.2 ( #2195 )
...
Bumps [github.com/fxamacker/cbor/v2](https://github.com/fxamacker/cbor ) from 2.9.0 to 2.9.2.
- [Release notes](https://github.com/fxamacker/cbor/releases )
- [Commits](https://github.com/fxamacker/cbor/compare/v2.9.0...v2.9.2 )
---
updated-dependencies:
- dependency-name: github.com/fxamacker/cbor/v2
dependency-version: 2.9.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 18:28:14 -04:00
dependabot[bot]
f57f5883ce
chore(deps): bump goreleaser/goreleaser-action from 6 to 7 ( #2187 )
...
Bumps [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action ) from 6 to 7.
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases )
- [Commits](https://github.com/goreleaser/goreleaser-action/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: goreleaser/goreleaser-action
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 18:26:35 -04:00
Sven van Ginkel
0472343730
chore: add dependabot and update shoutrrr ( #2070 )
...
* chore: update shoutrrr
feat; add dependabot
* Upgrade to shoutrrr 0.16.2
* Dump shoutrrr
2026-08-06 18:24:00 -04:00
henrygd
d3a1d61955
chore: update go version and go mod tidy ( #2043 )
2026-05-28 14:00:27 -04:00
Sven van Ginkel
9708e24fd2
chore: update Go dependencies ( #2043 )
...
* Chore update go depencies
* update crypto package
2026-05-28 13:54:03 -04:00
henrygd
17e910a246
update docker-compose.yml examples
2026-05-19 20:20:13 -04:00
Iriome Santana
0e65a2373f
feat(docker): add healthcheck to hub docker-compose example ( #2001 )
2026-05-19 20:13:29 -04:00
henrygd
c1c1cd1bcb
ui: fix temperature chart filtering
2026-04-20 20:45:16 -04:00
Yvan Wang
cd9ea51039
fix(hub): use rfcEmail validator to allow IDN/Punycode email addresses ( #1935 )
...
valibot's email() action uses a domain-label regex that disallows the
-- sequence, so Punycode ACE labels like xn--mnchen-3ya.de (the ASCII
form of münchen.de) are incorrectly rejected.
Switching to rfcEmail() applies the RFC 5321 domain-label pattern,
which allows hyphens within labels and therefore accepts both standard
and internationalized domain names.
2026-04-18 12:23:14 -04:00
Uğur Tafralı
a71617e058
feat(agent): Add EXIT_ON_DNS_ERROR environment variable ( #1929 )
...
Co-authored-by: henrygd <hank@henrygd.me >
2026-04-17 19:26:11 -04:00
henrygd
e5507fa106
refactor(agent): clean up records package and add tests
2026-04-15 16:24:40 -04:00
Lars Lehtonen
a024c3cfd0
fix(cron): log unhandled records cleanup errors ( #1909 )
2026-04-15 15:33:55 -04:00
henrygd
07466804e7
ui: allow filtering systems by host and agent version ( #163 )
2026-04-14 16:27:38 -04:00
henrygd
981c788d6f
agent: make sure prefixed ALL_PROXY env var works ( #1919 )
2026-04-14 14:46:43 -04:00
Rafael Marmelo
f5576759de
agent: Allow agent to connect to hub via SOCKS5 proxy
2026-04-14 14:46:43 -04:00
Sven van Ginkel
be0b708064
feat(hub): add OAUTH_DISABLE_POPUP env var ( #1900 )
...
Co-authored-by: henrygd <hank@henrygd.me >
2026-04-13 20:00:05 -04:00
amarildo
ab3a3de46c
deps: update shoutrrr to 0.14.3, fixing some matrix issues ( #1906 )
2026-04-10 18:35:20 -04:00
Lars Lehtonen
1556e53926
fix(agent): dropped linux battery error ( #1908 )
2026-04-10 18:33:42 -04:00
henrygd
e3ade3aeb8
hub: optimize System.HasUser check
2026-04-10 18:32:37 -04:00