-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Description
Problem Description
Currently, users managing Nginx Proxy Manager have no visibility into the host system's health without leaving the web UI. If a proxy starts lagging or the system becomes unresponsive, users must manually SSH into the server to run htop, top, or docker stats.
While advanced users use Zabbix, Netdata, or Grafana, many NPM users run lightweight "homelab" setups where those tools are too heavy or complex to configure.
Proposed Solution - version 1.
I propose adding a "System Monitor" tab to the Admin UI. This would provide a real-time, lightweight overview of the system resources directly in the dashboard. Default status OFF.
Key Features:
Live Metrics: Real-time CPU usage, Memory consumption, and Disk I/O.
Network Throughput: Visualising current traffic spikes.
Top Processes: A simplified list of the top 5-10 processes (equivalent to htop) to identify if Nginx or another service is hogging resources.
Uptime & OS Info: Quick glance at how long the container/host has been running.
Technical Implementation (Draft)
Backend: Utilize the systeminformation Node.js library. It is robust, supports Linux/Docker environments well, and is already widely used in the industry for this purpose.
Communication: Leverage the existing Socket.io implementation in NPM to stream updates to the frontend every 2–5 seconds (configurable) to ensure the UI feels "live" without over-polling the CPU.
Frontend: Integrate with the existing Tabler UI components. Use simple sparklines for historical trends and a clean table for process management.
Performance & Security Considerations
Opt-in Feature: This could be disabled by default in the settings to ensure zero overhead for users who don't want it.
Read-Only: The initial version will be read-only (monitoring). It will not allow "killing" processes to prevent accidental system instability via the Web UI.
Permission-based: Only Admin-level users would have access to this tab.
Goal
To make NPM a more "all-in-one" management solution for self-hosters, reducing the friction between managing proxies and monitoring the hardware they run on.
I don't have time now to add it, but if there is an interest in such a feature, I can make the time for it as my #5109 was accepted several hours ago.