diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index 02bfb2f..5c82cb1 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -117,6 +117,7 @@ PROXY_AUTH_LOGOUT_URL=/logout # URL for SSO logout "allowedOrigins": "", // CORS allowed origins (empty = same-origin only) "allowEmbedding": false, // Allow iframe embedding "allowedEmbedOrigins": "", // Comma-separated origins allowed to embed Pulse + "temperatureMonitoringEnabled": true,// Global temperature polling toggle (Settings → Proxmox → Edit node → Advanced monitoring) "backendPort": 3000, // Internal API listen port (not normally changed) "frontendPort": 7655, // Public port exposed by the service "logLevel": "info", // Log level: debug, info, warn, error @@ -388,6 +389,7 @@ These env vars override system.json values. When set, the UI will show a warning - `ADAPTIVE_POLLING_MAX_INTERVAL` - Override the maximum cadence (Go duration or seconds). Values ≤`15s` engage the low-latency backoff profile. - `ENABLE_BACKUP_POLLING` - Set to `false` to disable polling of Proxmox backup/snapshot APIs (default: true) - `BACKUP_POLLING_INTERVAL` - Override the backup polling cadence. Accepts Go duration syntax (e.g. `30m`, `6h`) or seconds. Use `0` for Pulse's default (~90s) cadence. +- `ENABLE_TEMPERATURE_MONITORING` - Force-enable or disable SSH temperature polling for all nodes (`true`/`false`) - `PULSE_PUBLIC_URL` - Full URL to access Pulse (e.g., `http://192.168.1.100:7655`) - **Auto-detected** if not set (except inside Docker where detection is disabled) - Used in webhook notifications for "View in Pulse" links diff --git a/docs/TEMPERATURE_MONITORING.md b/docs/TEMPERATURE_MONITORING.md index 5031d1f..24926da 100644 --- a/docs/TEMPERATURE_MONITORING.md +++ b/docs/TEMPERATURE_MONITORING.md @@ -12,6 +12,19 @@ Pulse can display real-time CPU and NVMe temperatures directly in your dashboard - Yellow: 60-80°C (warm) - Red: > 80°C (hot) +## Disable Temperature Monitoring + +Don't need the sensor data? Open **Settings → Proxmox**, edit any node, and scroll to the **Advanced monitoring** section. The temperature toggle there controls collection for all nodes: + +- When disabled, Pulse skips every SSH/proxy request for temperature data. +- CPU and NVMe readings disappear from dashboards and node tables. +- You can re-enable it later without re-running the setup scripts. + +For scripted environments, set either: + +- `temperatureMonitoringEnabled: false` in `/etc/pulse/system.json`, or +- `ENABLE_TEMPERATURE_MONITORING=false` in the environment (locks the UI toggle until removed). + ## How It Works ### Secure Architecture (v4.24.0+) diff --git a/frontend-modern/src/components/Settings/NodeModal.tsx b/frontend-modern/src/components/Settings/NodeModal.tsx index 552a33b..e75ee20 100644 --- a/frontend-modern/src/components/Settings/NodeModal.tsx +++ b/frontend-modern/src/components/Settings/NodeModal.tsx @@ -15,6 +15,7 @@ import { formCheckbox, } from '@/components/shared/Form'; import { logger } from '@/utils/logger'; +import { TogglePrimitive } from '@/components/shared/Toggle'; interface NodeModalProps { isOpen: boolean; @@ -26,6 +27,10 @@ interface NodeModalProps { showBackToDiscovery?: boolean; onBackToDiscovery?: () => void; securityStatus?: Partial; + temperatureMonitoringEnabled?: boolean; + temperatureMonitoringLocked?: boolean; + savingTemperatureSetting?: boolean; + onToggleTemperatureMonitoring?: (enabled: boolean) => Promise | void; } const deriveNameFromHost = (host: string): string => { @@ -1705,28 +1710,68 @@ export const NodeModal: Component = (props) => { {/* Physical Disk Monitoring - PVE only */} -
+
-