MacRimi 642bd8ecae health_persistence: stop leaking obs counts across NVMe device renames
`get_disks_observation_counts` maps each serial's count to that
serial's "most recent" device_name (so renames like ata8 -> sdh keep
the badge attached). When several physical disks have passed through
the same kernel name across reboots — common with NVMe, the kernel
probes in a different order depending on which slots are populated —
disk_registry keeps a row per (device_name, serial) seen and the
"most recent" device_name for a serial can now be in use by an
entirely different disk.

Concrete case from the wild: serial 211716800490 was nvme0n1 during
the previous boot and earned a real I/O observation. After removing
four of five NVMes, the surviving disk (serial 243332800236) booted
into nvme0n1. The badge layer mirrored 211716800490's count onto
nvme0n1 — which is now a different physical disk — and showed
"1 obs." on the wrong drive, while the modal (which scopes by the
current (device_name, serial) registry row) found nothing and
rendered an empty history.

Only mirror a serial's count onto its device_name when that
device_name is currently owned by the same serial, determined from
the freshest disk_registry row. The serial-keyed entry stays
unconditional so observations remain reachable when the disk is
re-plugged under another device name.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 23:52:11 +02:00
2025-02-16 15:21:03 +01:00
2026-05-31 00:35:02 +00:00
2026-03-18 21:02:42 +01:00
2026-05-30 21:54:32 +02:00
2025-05-30 11:07:26 +02:00
2026-05-31 14:11:14 +02:00
2026-05-20 20:19:39 +02:00
2025-05-30 11:03:54 +02:00

ProxMenux Logo

Latest release Latest beta License GitHub stars Open issues

ProxMenux is a management tool for Proxmox VE that simplifies system administration through an interactive menu, allowing you to execute commands and scripts with ease.


📌 Installation

To install ProxMenux, simply run the following command in your Proxmox server terminal:

bash -c "$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh)"

⚠️ Be careful when copying scripts from the internet. Always remember to check the source!

📄 You can review the source code before execution.

🛡️ All executable links follow our Code of Conduct.


📌 How to Use

Once installed, launch ProxMenux by running:

menu

Then, follow the on-screen options to manage your Proxmox server efficiently.


🖥️ ProxMenux Monitor

ProxMenux Monitor is an integrated web dashboard that provides real-time visibility into your Proxmox infrastructure — accessible from any browser on your network, without needing a terminal.

What it offers:

  • Real-time monitoring of CPU, RAM, disk usage and network traffic
  • Overview of running VMs and LXC containers with status indicators
  • Login authentication to protect access
  • Two-Factor Authentication (2FA) with TOTP support
  • Reverse proxy support (Nginx / Traefik)
  • Designed to work across desktop and mobile devices

Access:

Once installed, the dashboard is available at:

http://<your-proxmox-ip>:8008

The Monitor is installed automatically as part of the standard ProxMenux installation and runs as a systemd service (proxmenux-monitor.service) that starts automatically on boot.

Useful commands:

# Check service status
systemctl status proxmenux-monitor

# View logs
journalctl -u proxmenux-monitor -n 50

# Restart the service
systemctl restart proxmenux-monitor

🧪 Beta Program

Want to try the latest features before the official release and help shape the final version?

The ProxMenux Beta Program gives early access to new functionality — including the newest builds of ProxMenux Monitor — directly from the develop branch. Beta builds may contain bugs or incomplete features. Your feedback is what helps fix them before the stable release.

Install the beta version:

bash -c "$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/develop/install_proxmenux_beta.sh)"

What to expect:

  • You'll get new features and Monitor builds before anyone else
  • Some things may not work perfectly — that's expected and normal
  • When a stable release is published, ProxMenux will notify you on the next menu launch and offer to switch automatically

How to report issues:

Open a GitHub Issue and include:

  • What you did and what you expected to happen
  • Any error messages shown on screen
  • Logs from the Monitor if relevant:
journalctl -u proxmenux-monitor -n 50

💙 Thank you for being part of the beta program. Your help makes ProxMenux better for everyone.


🔧 Dependencies

The following dependencies are installed automatically during setup:

Package Purpose
dialog Interactive terminal menus
curl Downloads and connectivity checks
jq JSON processing
git Repository cloning and updates
python3 + python3-venv Translation support (Translation version only)
googletrans Google Translate library (Translation version only)

🛡️ Security Note / VirusTotal False Positive

If you scan the raw installation URL on VirusTotal, you might see a 1/95 detection by heuristic engines like Chong Lua Dao. This is a known false positive. Because this script uses the standard curl | bash installation pattern and downloads legitimate binaries (like jq from its official GitHub release), overly aggressive scanners flag the behavior. The script is 100% open source and safe to review. You can read more about this in Issue #162.


🤝 Contributing

ProxMenux is an open, collaborative project — contributions of every shape are very welcome, no matter your background. Every PR, bug report, idea, translation or kind word helps move the project forward.

📖 Before sending code, please read the Contributing Guide. It covers the project structure, the UI design policy (the two-phase dialog / whiptail flow), message helpers, translation policy and submission conventions — what reviewers will look for in your PR.

Ways to help:

  • 💻 Code — fix a bug, polish a script, add a feature. Read the Contributing Guide first, then open a pull request.
  • 🐛 Bug reports — found something broken? Open an issue with steps to reproduce, and the Monitor logs if relevant (journalctl -u proxmenux-monitor -n 50).
  • 💡 Ideas & feedback — share suggestions in GitHub Discussions. Every idea is welcome.
  • 🌍 Translations — the documentation site already supports English and Spanish; help expand it to more languages following the translation guide (one page per PR).
  • 🧪 Beta testing — run the beta build and let us know what you find.
  • Spread the word — a GitHub star or a mention in your homelab community helps others discover the project.

Before contributing, please take a moment to read our Code of Conduct.

Contributors

Thanks to everyone who has helped make ProxMenux what it is today.

ProxMenux contributors

Made with contrib.rocks.


Support the Project

If ProxMenux is useful to you, the simplest way to support it is a on GitHub — it really helps others discover the project.

If you want to go a step further, a coffee on Ko-fi keeps development going:

Support on Ko-fi


📈 Star History

Star History Chart

S
Description
No description provided
Readme GPL-3.0 2.1 GiB
Languages
TypeScript 42.2%
Shell 29.4%
Python 28.2%
CSS 0.1%
JavaScript 0.1%