From 9e661b5eb38924fffcbd0c2258182dcb73507e0d Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Fri, 31 Oct 2025 20:00:50 +0100 Subject: [PATCH] docs(integrations): add beszel and system-usage widget --- docs/integrations/beszel/index.mdx | 34 +++++++++++++++++++ docs/integrations/beszel/index.ts | 8 +++++ docs/widgets/system-usage/img/image.png | Bin 0 -> 10105 bytes docs/widgets/system-usage/index.mdx | 43 ++++++++++++++++++++++++ docs/widgets/system-usage/index.ts | 28 +++++++++++++++ 5 files changed, 113 insertions(+) create mode 100644 docs/integrations/beszel/index.mdx create mode 100644 docs/integrations/beszel/index.ts create mode 100644 docs/widgets/system-usage/img/image.png create mode 100644 docs/widgets/system-usage/index.mdx create mode 100644 docs/widgets/system-usage/index.ts diff --git a/docs/integrations/beszel/index.mdx b/docs/integrations/beszel/index.mdx new file mode 100644 index 00000000..b8ae1750 --- /dev/null +++ b/docs/integrations/beszel/index.mdx @@ -0,0 +1,34 @@ +--- +title: 'Beszel' +description: "Beszel is a simple, lightweight server monitoring tool." +hide_title: true +--- + +import { IntegrationHeader } from '@site/src/components/integrations/header'; +import { IntegrationCapabilites } from '@site/src/components/integrations/widgets'; +import { AddingIntegration } from '@site/src/components/integrations/adding'; +import {IntegrationSecrets} from '@site/src/components/integrations/secrets'; +import { IconAd, IconDeviceGamepad } from "@tabler/icons-react"; +import { beszelIntegration } from '.'; +import { systemUsageWidget } from '@site/docs/widgets/system-usage'; + + + +### Widgets & Capabilities + + +### Adding the integration + + +### Secrets + \ No newline at end of file diff --git a/docs/integrations/beszel/index.ts b/docs/integrations/beszel/index.ts new file mode 100644 index 00000000..a93564b6 --- /dev/null +++ b/docs/integrations/beszel/index.ts @@ -0,0 +1,8 @@ +import { IntegrationDefinition } from '@site/src/types'; + +export const beszelIntegration: IntegrationDefinition = { + name: 'Beszel', + description: 'Simple, lightweight server monitoring tool', + iconUrl: 'https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/beszel.svg', + path: '../../integrations/beszel', +}; diff --git a/docs/widgets/system-usage/img/image.png b/docs/widgets/system-usage/img/image.png new file mode 100644 index 0000000000000000000000000000000000000000..d3d9ef37bc60fc9ce27b5baff49329e6b4dd9e78 GIT binary patch literal 10105 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 literal 0 HcmV?d00001 diff --git a/docs/widgets/system-usage/index.mdx b/docs/widgets/system-usage/index.mdx new file mode 100644 index 00000000..4077eacf --- /dev/null +++ b/docs/widgets/system-usage/index.mdx @@ -0,0 +1,43 @@ +--- +title: 'System Usage' +description: 'CPU, Memory, Disk and other hardware usage of your system.' +hide_title: true +--- + +import { WidgetHeader } from '@site/src/components/widgets/header'; +import { AddingWidget } from '@site/src/components/widgets/adding'; +import { WidgetConfig } from '@site/src/components/widgets/configuration'; +import { WidgetIntegrations } from '@site/src/components/widgets/integrations'; +import { systemUsageWidget } from '.'; +import { dashDotIntegration } from '@site/docs/integrations/dash-dot'; +import { openMediaVaultIntegration } from '@site/docs/integrations/open-media-vault'; +import { proxmoxIntegration } from '@site/docs/integrations/proxmox'; + + + + +Shows percentage usage of system resources like CPU, Memory and Disk. Inspired by Beszel's grid view. + +### Screenshots + +import screenshot from './img/image.png'; +import { beszelIntegration } from '@site/docs/integrations/beszel'; + +system-usage-widget + +### Supported Integrations + + + +### Adding the widget + + + +### Configuration + + \ No newline at end of file diff --git a/docs/widgets/system-usage/index.ts b/docs/widgets/system-usage/index.ts new file mode 100644 index 00000000..63d46111 --- /dev/null +++ b/docs/widgets/system-usage/index.ts @@ -0,0 +1,28 @@ +import { WidgetDefinition } from '@site/src/types'; +import { IconServer } from '@tabler/icons-react'; + +export const systemUsageWidget: WidgetDefinition = { + icon: IconServer, + name: 'System Usage', + description: 'CPU, Memory, Disk and other hardware usage of your system', + path: '../../widgets/system-usage', + configuration: { + items: [ + { + name: 'System', + description: 'Select the system you want to be monitored.', + values: 'One of the systems from Beszel', + defaultValue: '-', + }, + { + name: 'Visible items', + description: 'Select which usage items to display in the widget.', + values: { + type: 'select', + options: ['CPU', 'Memory', 'Disk', 'GPU', 'Load', 'Network', 'Temperature', 'Agent'], + }, + defaultValue: 'All items', + }, + ], + }, +};