mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2026-04-25 01:15:51 +03:00
[GH-ISSUE #5138] [RFC] Integrated System Resource Monitor Dashboard (htop-style) #3124
Labels
No labels
awaiting feedback
bug
cannot reproduce
dns provider request
duplicate
enhancement
enhancement
enhancement
good first issue
help wanted
invalid
need more info
no certbot plugin available
product-support
pull-request
question
stale
troll
upstream issue
v2
v2
v2
v3
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/nginx-proxy-manager-NginxProxyManager#3124
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @piotrfx on GitHub (Jan 13, 2026).
Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/5138
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.