henrygd/beszel
62.7
Adequate · 6 August 2026
33.8k
lines of production code
Go
with TypeScript
4
measurements over time
What this system is
This is a self-hosted system monitoring platform consisting of a Go-based Hub and lightweight Agents that collect hardware, container, and service metrics. The system aggregates data on CPU, memory, disk, GPU, and S.M.A.R.T. drive health, while also tracking systemd services and container states. It provides a React-based dashboard for real-time visualization, alerting, and configuration, supported by extensive internationalization and cross-platform installation scripts.
Features
Add Hebrew (he) language support
Added the initial Hebrew translation file (he.po) to the site's locale directory, enabling the application to display Hebrew text for UI elements, system information, and settings.
internal/site/src/locales/he · high confidence
Add Korean language support
Users can now interact with the application in Korean. This change introduces a new translation file (ko.po) containing 1933 lines of Korean text, covering UI elements such as system information, alerts, and settings. This enables the interface to display Korean text for all supported features.
internal/site/src/locales/ko · high confidence
Add LHM agent for hardware monitoring
A new C\# agent (beszel\_lhm.cs) has been added to the agent/lhm directory, implementing a console-based interface to the LibreHardwareMonitor library. This agent connects to the system's hardware components (CPU, GPU, memory, etc.) and exposes temperature sensor data via a text-based protocol, filtering out non-temperature sensors and specific noise categories (e.g., limits, warnings).
agent/lhm · high confidence
Add Russian language support
Added the Russian (ru) locale file (ru.po) containing 1933 translated strings for the site interface, enabling users to view the application in Russian.
internal/site/src/locales/ru · high confidence
Add S.M.A.R.T. device data models
Users can now access S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) data for connected storage devices. This change introduces the Go structs and JSON parsing logic required to represent S.M.A.R.T. attributes, device statistics, and raw value formats, enabling downstream components to ingest and display drive health metrics.
internal/entities/smart · high confidence
Add Simplified Chinese (zh-CN) translations
Added the zh-CN locale file containing 1933 lines of Simplified Chinese translations for the site's UI strings, enabling the application to display in Simplified Chinese for users.
internal/site/src/locales/zh-CN · high confidence
Add environment variable helper for hub configuration
A new utility function, GetEnv, has been added to the hub's internal utilities. This function retrieves environment variables with an automatic 'BESZEL\HUB\' prefix fallback, allowing the hub to be configured via prefixed or standard environment variables.
internal/hub/utils · high confidence
Add health check command to the hub CLI
The hub application now includes a new 'health' CLI command that allows users to verify the status of the running hub by making an HTTP request to the /api/health endpoint. This provides a simple way to monitor the health of the service from the command line.
internal/cmd/hub · high confidence
Add initial Helm chart for deploying Beszel Hub on Kubernetes
Users can now install the Beszel Hub application on a Kubernetes cluster using the new \beszel-hub\ Helm chart. The chart provides templates for a Deployment, Service, Ingress, and PersistentVolumeClaim, along with a test hook to verify the endpoint. Configuration is managed via \values.yaml\, allowing users to customize image tags, replica counts, and storage settings.
supplemental/kubernetes, supplemental/kubernetes/beszel-hub/charts/templates · high confidence
Add systemd service monitoring entity
Introduced a new internal entity for monitoring systemd services, defining data structures for service states (active, inactive, failed, etc.) and sub-states, along with logic to calculate and track CPU usage percentages and peaks for individual services.
internal/entities/systemd · high confidence
Add systemd service monitoring table
A new SystemdTable component has been introduced to display a sortable, filterable, and virtualized table of systemd services. The table shows each service's name, state, sub-state, CPU and memory usage (including peak values), and last update time, with color-coded status indicators and a global search filter.
internal/site/src/components/systemd-table · medium confidence
Added Chinese (Traditional) localization for the site
Users can now see the application interface in Traditional Chinese. This change introduces the zh.po translation file containing 1933 lines of localized strings for UI elements, alerts, and system information, enabling the platform to display content in Chinese for users who prefer that language.
internal/site/src/locales/zh · high confidence
Added Danish and Romanian language support
Users can now view the application in Danish and Romanian. The update introduces new translation files (da.po and ro.po) containing localized strings for UI elements, system information, and settings, enabling the interface to be displayed in these languages.
internal/site/src/locales/da · high confidence
Added ExpiryMap for managing time-to-live (TTL) based caching
A new generic ExpiryMap implementation has been added to internal/hub/expirymap. This component provides a thread-safe map that automatically expires entries after a specified duration, supporting both lazy cleanup on access and a configurable background cleaner. It includes methods for setting and retrieving values with TTLs, updating expiration times, and explicitly removing entries. The addition includes comprehensive tests covering basic operations, expiration behavior, lazy cleanup, and generic type support.
internal/hub/expirymap · high confidence
Added Hungarian language support
Users can now interact with the application in Hungarian. This change introduces the initial Hungarian translation file (hu.po), providing localized text for UI elements such as system information, alerts, and settings, enabling a fully translated experience for Hungarian-speaking users.
internal/site/src/locales/hu · high confidence
Added Indonesian (id) locale for the application
Users can now view the interface in Indonesian. The new locale file provides translations for system status indicators, time durations, alert history, and settings pages, enabling Indonesian-speaking users to interact with the platform in their native language.
internal/site/src/locales/id · high confidence
Added Polish language support
Users can now see the interface in Polish. This change adds the initial Polish translation file (pl.po) containing 1933 lines of localized strings for the site's UI, including system status, alerts, settings, and time-related labels.
internal/site/src/locales/pl · high confidence
Added Serbian (Cyrillic) language support
Users can now view the application in Serbian (Cyrillic). A new translation file (sr.po) has been added to the site's locale directory, providing translations for system messages, UI labels, and configuration options, enabling a localized experience for Serbian-speaking users.
internal/site/src/locales/sr · high confidence
Added Slovenian language support
Users can now interact with the application in Slovenian. A new translation file (sl.po) has been added to the site's locale directory, providing translations for UI strings such as navigation labels, system status messages, and settings options.
internal/site/src/locales/sl · high confidence
Added generic DeltaTracker utility for computing value differences over time
Introduced a new \DeltaTracker\ component in the \agent/deltatracker\ package. This generic, thread-safe utility calculates the difference between current and previous numeric values for tracked keys, supporting integer and floating-point types. The implementation includes core methods for setting values, calculating deltas, and cycling intervals, accompanied by comprehensive unit tests.
agent/deltatracker · high confidence
Added self-update mechanism for the Beszel application
A new internal/ghupdate package has been introduced, enabling the application to check for, download, and install updates from GitHub releases. This includes logic to extract archives, replace the current executable, and apply SELinux contexts to the updated binary. Tests are included to verify extraction and SELinux handling.
internal/ghupdate · high confidence
Centralized system monitoring with periodic SMART and systemd service tracking
The system monitoring logic has been refactored into a new \internal/hub/systems\ package, introducing a \SystemManager\ that manages the lifecycle of monitored systems via both WebSocket and SSH transports. This change adds support for periodic background fetching of S.M.A.R.T. disk health data and systemd service status, with intervals configurable by the agent. The \System\ struct now tracks \smartInterval\ and \detailsFetched\ state, and the \ExpiryMap\ is used to manage fetch cooldowns. Additionally, the codebase has been reorganized by moving files from \` to \/internal\ and unifying agent communication through a \Transport\` interface.
internal/hub/systems · high confidence
Croatian (hr) language pack added
A new Croatian (hr) translation file (hr.po) has been added to the site's locale directory. This provides the first complete set of Croatian translations for the application's UI strings, enabling users to interact with the system in Croatian.
internal/site/src/locales/hr · high confidence
Introduce Debian packaging for the Beszel Agent
A new Debian package for the Beszel Agent is now available, enabling installation on Debian-based systems. The package includes a systemd service unit that runs the agent as a dedicated 'beszel' user, and a post-installation script that creates the necessary system user/group, configures the SSH key via debconf, and conditionally adds the user to the docker group if it exists. Cleanup scripts handle service removal and configuration file deletion upon purge.
supplemental/debian · high confidence
Introduce centralized alert and system management libraries
The \internal/site/src/lib\ directory now contains new modules for managing application state and data. \alerts.ts\ defines alert types (CPU, Memory, Disk, GPU, Temperature, Battery, etc.) and provides a manager to sync alert records to the global store. \systemsManager.ts\ handles fetching, subscribing to, and updating system records, while also updating the browser favicon to show the count of down systems. \stores.ts\ defines the global state atoms (e.g., \$allSystemsById\, \$alerts\, \$userSettings\) using Nanostores. \api.ts\ provides the PocketBase client and authentication helpers. \enums.ts\ defines constants for system status, chart types, and connection types. \i18n.ts\ and \languages.ts\ handle locale detection and RTL support. \utils.ts\ includes helper functions for formatting, clipboard, and favicon updates. These changes centralize the logic for displaying system status and alerts.
internal/site/src/lib · high confidence
Major UI overhaul with new components and navigation
The internal site components have been refactored and expanded, introducing a new command palette for quick navigation, a dedicated active alerts display, and an alerts history table. The system addition and editing workflow is now handled by a new dialog component, while the navbar and mobile menus have been updated to support dropdown navigation. Additionally, the application now includes a theme provider that respects the system/browser color scheme preference, and a footer component that displays the current version and any available updates.
internal/site/src/components · high confidence
New Dockerfiles for agent variants and hub, plus user management logic
Added new Dockerfiles for the Beszel agent (default, Alpine, Intel, and NVIDIA variants) and the Hub service, each configured with appropriate base images, dependencies (such as smartmontools and GPU tools), and volume mounts for data persistence. Additionally, introduced the users.go file which implements user role initialization, settings defaults, and a custom API endpoint to create the first user, replacing the previous default user creation flow.
internal · high confidence
New UI component library for the dashboard
The dashboard now includes a comprehensive set of reusable UI components, including dialogs, alerts, badges, buttons, cards, charts, checkboxes, collapsible sections, command palettes, dropdown menus, icons, input fields, labels, OTP inputs, and select menus. These components provide a consistent, accessible, and styled foundation for the interface, supporting features like copy-to-clipboard, tag inputs, and chart tooltips.
internal/site/src/components/ui · high confidence
New alerts management interface and copy functionality
The alerts component has been refactored into a new UI with a sheet-based interface for configuring alerts per system or globally. Users can now copy alert configurations from one system to another, and the interface supports managing alerts across all systems simultaneously. This replaces the previous alert handling with a more robust, tabbed view that includes system-specific and global alert management.
internal/site/src/components/alerts · medium confidence
New automated install and upgrade scripts for Windows, macOS, and Linux
Added new installation and upgrade scripts for the Beszel agent and hub across multiple platforms. For Windows, a new PowerShell script (install-agent.ps1) supports automated installation via Scoop or WinGet, with optional firewall configuration and admin elevation. For macOS, a new Homebrew-based script (install-agent-brew.sh) handles installation and service management. For Linux and other Unix-like systems (including FreeBSD, OpenWrt, Alpine, and glibc-based distros), the new install-agent.sh script provides automated setup with SELinux context management, architecture detection (including mips/mipsle), and support for GitHub mirrors. Additionally, a wrapper script (upgrade-agent-wrapper.ps1) and upgrade script (upgrade-agent.ps1) enable seamless self-upgrades on Windows.
supplemental/scripts · high confidence
New containers table component with sortable columns and filtering
The containers table has been refactored into a new, dedicated component that displays container details including name, system, CPU, memory, network, health status, ports, image, and uptime. The table supports sorting by status, health, and other metrics, and includes a global search filter across all container attributes. The UI now dynamically hides the ports column if no containers have ports, and provides a clear button to reset the search filter.
internal/site/src/components/containers-table · high confidence
New dedicated routes for system details, containers, and S.M.A.R.T. monitoring
The application now provides distinct, dedicated pages for viewing all systems, all containers, and S.M.A.R.T. disk health data. The system detail page has been refactored to use a tabbed interface for core metrics, disk, GPU, containers, and services, while the new routes ensure these sections are accessible via their own URLs.
internal/site/src/components/routes · high confidence
New internal records package for managing and purging historical data
The \internal/records\ package has been introduced to centralize the creation of longer-duration statistical records by averaging shorter ones, and to handle the deletion of stale data. This includes purging old system and container stats based on specific retention periods (e.g., 1 hour for 1m records, 30 days for 480m records), removing expired systemd service and container records, trimming excessive alerts history, and cleaning up passed one-time quiet hours. The implementation includes a \RecordManager\ that processes \system\_stats\ and \container\_stats\ collections, alongside dedicated deletion logic for each data type.
internal/records · high confidence
New login, forgot password, and OTP forms
The login page now features dedicated React components for the main authentication form, password recovery, and one-time password (OTP) workflows. The login form includes a honeypot field to prevent autofill issues, while the forgot password form allows users to request a reset link. Additionally, the system supports OTP-based authentication, allowing users to verify their identity via a one-time code sent to their email.
internal/site/src/components/login · high confidence
New system monitoring charts and tables
The system route now features a comprehensive set of new components for deeper system insights. A new \chart-card\ component provides a reusable wrapper for displaying charts with titles, descriptions, and loading states. The \cpu-sheet\ and \disk-io-sheet\ components have been added to display detailed CPU and disk I/O metrics in expandable panels, including per-core CPU utilization and disk read/write throughput. Network traffic is now visualized with cumulative and real-time charts for upload and download. Additionally, a \smart-table\ component has been introduced to display S.M.A.R.T. device information, including device name, model, capacity, and health status. The \info-bar\ component has been updated to show system details like hostname, kernel, and OS version. These changes collectively enhance the system monitoring capabilities by providing more granular and accessible data visualization.
internal/site/src/components/routes/system · high confidence
Norwegian language translations added
A new Norwegian (no) locale file has been added to the site's internationalization resources, providing translations for UI strings such as system status labels, time units, and navigation items. This enables the application to display its interface in Norwegian for users who have that language selected.
internal/site/src/locales/no · high confidence
Portuguese (pt) localization file added
A new Portuguese translation file (pt.po) has been added to the site's locale directory, providing translations for UI strings such as alerts, system information, and settings. This enables the application to display interface elements in Portuguese for users with that language preference.
internal/site/src/locales/pt · high confidence
Settings page restructured with new features and UI improvements
The settings page has been restructured into a sidebar layout with dedicated sections for General, Notifications, Tokens & Fingerprints, Alert History, Heartbeat, and YAML Configuration. Users can now configure general preferences (language, layout width, chart options, units), manage notification endpoints (email, webhooks, quiet hours), manage system tokens and fingerprints, view and filter alert history with persistent pagination, and configure outbound heartbeat monitoring. The YAML configuration export feature is now available for admins. The UI includes a mobile-friendly select menu for settings navigation, and the alert history table supports bulk deletion and local storage for pagination preferences.
internal/site/src/components/routes/settings · high confidence
Behavioural changes
Agent CLI refactored with new subcommands and flags
The agent command-line interface has been refactored to support subcommands and additional configuration options. A new 'fingerprint' subcommand allows users to view or reset the agent's fingerprint. The 'health' subcommand checks if the agent is running. Command-line flags have been added for 'url' and 'token' to configure the hub connection, and a 'version' flag was added. The 'key' flag now supports public keys for SSH authentication, with fallback to environment variables or key files. The codebase was also reorganized, moving the agent command to 'internal/cmd/agent' and refactoring environment variable handling into a shared utils package.
internal/cmd/agent · high confidence
Agent health check now uses /dev/shm on Linux
The agent's health check mechanism has been updated to store its state file in /dev/shm on Linux systems, falling back to the standard temporary directory for other operating systems. This change improves the reliability of the health check by using a memory-backed filesystem, ensuring the agent is considered healthy only if it has connected within the last 90 seconds. The implementation includes new functions to create, check, and clean up the health file, along with corresponding tests to verify the timeout behavior.
agent/health · medium confidence
Agent refactored to use a unified connection manager and structured data caching
The agent's internal architecture has been restructured to improve reliability and testability. A new ConnectionManager now handles the lifecycle of both WebSocket and SSH connections, automatically switching between them and managing reconnection attempts. Additionally, a structured caching system has been introduced to store and serve combined system data, reducing redundant data collection during the polling interval. These changes provide a more robust foundation for the agent's communication and data collection processes.
agent · high confidence
Centralizes agent utility functions into a shared utils package
The agent's utility functions, including environment variable retrieval (GetEnv), file reading (ReadStringFile, ReadStringFileOK, ReadStringFileLimited, ReadUintFile), path lookup (LookPathHomebrew), and byte conversion helpers, have been consolidated into a new agent/utils package. This refactoring improves code reuse and adds safety checks, such as handling negative byte counts in file reads and supporting Homebrew paths on macOS and Linux.
agent/utils · high confidence
Container monitoring expanded with health status, ports, and image name
The container entity now includes new fields to support enhanced monitoring: the container's health status (starting, healthy, or unhealthy) is tracked alongside the image name and port mappings. Additionally, network statistics are now recorded in bytes rather than megabytes, providing more granular data for CPU and memory usage calculations.
internal/entities/container · high confidence
Initial database migration and application setup
The application now includes a new initial migration script that configures core application settings, such as the application name and log levels, and handles the creation of the superuser account. The migration reads user credentials from environment variables to set up the initial admin user, falling back to a temporary email if none are provided, and optionally creates a regular user account if credentials are supplied.
internal/migrations · high confidence
Introduce structured WebSocket message types for agent communication
The codebase now defines explicit Go types for the hub-agent WebSocket protocol. A new \common-ws.go\ file introduces a \WebSocketAction\ enum and request/response structures (e.g., \HubRequest\, \AgentResponse\) that support retrieving system data, container logs, SMART disk data, and systemd service info. Additionally, \common-ssh.go\ adds default SSH key exchange, MAC, and cipher configurations. These changes standardize how the hub communicates with agents, enabling new monitoring capabilities like system details collection and systemd service monitoring.
internal/common · medium confidence
Migrated frontend styles and entry points to a new CSS and React structure
The frontend styling has been consolidated into a new \index.css\ file that defines a comprehensive set of CSS variables for both light and dark themes, including specific colors for charts, tables, and UI components. Additionally, the application's entry point has been restructured in \main.tsx\ to initialize the React app, manage authentication state, and handle internationalization, while \types.d.ts\ introduces new TypeScript interfaces for system and GPU data.
internal/site/src · high confidence
Redesign of the All Systems table with new columns and filtering
The All Systems table has been rebuilt to include new columns for CPU, memory, and disk usage, along with support for filtering by host and agent version. The component now supports both table and grid view modes, features a clear button for filters, and displays additional system states such as battery charge and agent connection type.
internal/site/src/components/systems-table · medium confidence
Refactored agent communication with a new request manager and handler interface
The WebSocket connection layer has been refactored to support concurrent, tracked requests to agents. A new \RequestManager\ handles request lifecycle, timeouts, and response routing, while a \ResponseHandler\ interface allows flexible processing of agent responses. This change improves reliability by ensuring no nil pointer dereferences on closed connections and provides a more robust foundation for future agent communication features.
internal/hub/ws · high confidence
Refactored battery status reporting with platform-specific implementations
The agent's battery monitoring has been refactored into a new \agent/battery\ package that provides a unified interface for retrieving battery percentage and state across Linux, macOS, and Windows, while providing a stub for unsupported platforms. This change ensures that battery statistics are sent even if some batteries are missing stats, fixes nil pointer errors, and correctly handles multiple batteries by averaging capacity. On Linux, it reads directly from \/sys/class/power\_supply\, and on macOS, it uses \ioreg\ to match the value macOS displays.
agent/battery · high confidence
Refactored chart components with new time selection and hooks
The charts in the internal/site/src/components/charts directory have been refactored into new, modular components: AreaChartDefault and LineChartDefault, which now support features like showing a total line in tooltips, filtering data points, and handling intersection observer-based rendering optimizations. A new ChartTimeSelect component allows users to choose the chart time range, with availability filtered by the system agent version. Additionally, new hooks (useContainerChartConfigs, useYAxisWidth, useContainerDataPoints, useNetworkInterfaces) provide reusable logic for generating chart configurations, managing Y-axis width, and handling container-specific data points and network interfaces.
internal/site/src/components/charts · medium confidence
Refactored hub code structure and added comprehensive tests
Moved agent connection logic into a new \agent\_connect.go\ file and API routes into \api.go\ to improve code organization. Added extensive unit tests for agent connection validation, API route authentication, collection rules, config syncing, and heartbeat functionality.
internal/hub · high confidence
Refactored system charts into dedicated components
The system charts for CPU, memory, disk, network, GPU, sensors, and load average have been refactored into separate, dedicated components (e.g., cpu-charts.tsx, memory-charts.tsx). This change improves code organization and maintainability by isolating each chart's logic and rendering into its own file, while preserving the existing functionality for displaying system metrics.
internal/site/src/components/routes/system/charts · high confidence
Removed legacy database migration for collections snapshot
The database migration file \1720385358\_collections\_snapshot.go\ has been removed. This migration previously defined the schema for the \users\, \systems\, \system\_stats\, and \container\_stats\ collections. Its removal indicates that the application no longer relies on this specific snapshot of the database state, likely because the schema has been updated or managed through a different migration path.
migrations · high confidence
Repository restructured with new build, license, and configuration files
The project has been reorganized with the introduction of a Makefile for build automation, a .goreleaser.yml configuration for automated releases, and a LICENSE file establishing MIT licensing. The repository now includes a .dockerignore file to optimize Docker builds, a .gitattributes file for Git configuration, and a SECURITY.md file outlining vulnerability reporting procedures. Additionally, the main.go entry point has been removed, and a new beszel.go file provides core application constants and version information.
(repo-wide) · high confidence
Restructure alerts package and add in-memory caching for alert state
The alerts package has been restructured into multiple files, including a new in-memory cache (alertsCache) that maintains active alert data in memory to improve performance. The refactoring introduces a new API endpoint for managing user alerts (POST/DELETE /api/beszel/user-alerts) and adds a test notification feature that restricts non-admin users from sending test alerts to internal destinations. Additionally, the system now supports quiet hours to silence alerts during specific time periods, and handles smart device alerts for disk health status changes.
internal/alerts · high confidence
Restructure system data models into Info, Details, and Stats
The system entity model has been refactored to separate frequently accessed data from less common details. The new \Info\ struct now holds core metrics for the systems table, while \Details\ contains static configuration and metadata. A new \Stats\ struct aggregates all dynamic performance metrics, including CPU, memory, disk, network, and GPU data. This change also introduces support for systemd service monitoring and per-core CPU usage tracking.
internal/entities/system · high confidence
Site build tooling and configuration updates
The site's build and development environment has been updated with new configuration files. A Bun lockfile (bun.lock) and Biome linter configuration (biome.json) have been added to manage dependencies and enforce code quality. TypeScript configuration has been modernized with separate tsconfig files for app and node targets, and the deprecated baseUrl property has been removed. Additionally, a .prettierrc file has been added to standardize code formatting, and a .gitignore file has been created to exclude build artifacts and editor files.
internal/site · high confidence
Update French and Swedish translations
The French and Swedish localization files have been updated with new translations, including strings for system information, alerts, and settings. This ensures the application's user interface is fully translated in these languages.
internal/site/src/locales/fr · high confidence
Updated Czech, Italian, Turkish, Ukrainian, Vietnamese, and Traditional Chinese translations
The localized message files for Czech, Italian, Turkish, Ukrainian, Vietnamese, and Traditional Chinese have been updated with new translations. This ensures that users with these language preferences see the latest interface text, including updates to system information, alerts, and settings pages.
(repo-wide) · high confidence
Updated German translations
The German language file (de.po) has been updated with new and revised translations for various UI elements, including system information, alerts, settings, and time-related strings. This ensures that German-speaking users see the latest interface text.
internal/site/src/locales/de · medium confidence
Updated Spanish and Bulgarian translations
The Spanish (es) and Bulgarian (bg) locale files have been updated with new translations, including UI strings for system information, alerts, and settings. This ensures the interface is fully localized for these languages.
internal/site/src/locales/es · high confidence
Updated translations for Arabic, Persian, Japanese, and Dutch
The application's localization files for Arabic (ar), Persian (fa), Japanese (ja), and Dutch (nl) have been updated. These changes refresh the translated strings for various UI components, including system information, alerts, and settings, ensuring the interface displays correctly in these languages.
(repo-wide) · high confidence
Test coverage
Added test infrastructure for API and Hub components
Added new test helper files (api.go, hub.go) in the internal/tests directory to support testing the application's API and Hub functionality. These files provide utilities for creating test applications, users, and records, as well as a test scenario runner for API requests.
internal/tests · high confidence
Dependencies
Update Go dependencies and target framework
Updated the Go module to use Go 1.26.3 and refreshed the dependency graph, including upgrading PocketBase to v0.36.8 and gopsutil to v4.26.3. Additionally, the \beszel\_lhm\ project now targets the .NET Framework 4.8 and uses LibreHardwareMonitorLib v0.9.6.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 64 → 63 (-0.8)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.19) — scores are not directly comparable.
Lenses
- Code Health 90 → 90 (+0.0)
- Architecture 94 → 95 (+0.6)
- Maturity 65 → 62 (-3.3)
- Readiness 65 → 65 (+0.0)
- Security 57 → 57 (+0.0)
- Domain Modelling 70 → 70 (+0.0)
Resolved (8)
- Change coupling: add-system.tsx ↔ logo.tsx (internal/site/src/components/add-system.tsx)
- Change coupling: alerts-history-data-table.tsx ↔ stores.ts (internal/site/src/components/routes/settings/alerts-history-data-table.tsx)
- Change coupling: logo.tsx ↔ main.tsx (internal/site/src/components/logo.tsx)
- Change coupling: system.tsx ↔ enums.ts (internal/site/src/components/routes/system.tsx)
- Change coupling: systems-table.tsx ↔ stores.ts (internal/site/src/components/systems-table/systems-table.tsx)
- Off-boarding risk: anonymized user #1
- misleading comment (agent/lhm/beszel_lhm.cs)
- misleading comment (agent/lhm/beszel_lhm.cs)
New (6)
- Change coupling: 0_collections_snapshot_0_19_0_dev_1.go ↔ types.d.ts (internal/migrations/0_collections_snapshot_0_19_0_dev_1.go)
- Change coupling: lang-toggle.tsx ↔ general.tsx (internal/site/src/components/lang-toggle.tsx)
- Change coupling: system.tsx ↔ chart.tsx (internal/site/src/components/routes/system.tsx)
- Off-boarding risk: anonymized user #1
- misleading comment (agent/lhm/beszel_lhm.cs)
- misleading comment (agent/lhm/beszel_lhm.cs)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
henrygd/beszel was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 6 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit d3a1d61955b0e45fb6b6c76e3ef970cb6518a7e1 — the exact code this score is about.
- Scored under rubric-2026.08.19 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer latest.