
Hi there 👋
Here, I’d like to share a little story from my own experience.
So, this article came about because my manager often asked:
“bro, which baremetal is the web-server VM on?” or “bro, can you check where the web-server VM is running?”
At that time, I had to manually check each baremetal server one by one to find out where the VM was located. As you can guess, it could be quite time-consuming — especially when there are many baremetals to go through.
So, I thought: why not build a simple web dashboard to quickly show where a VM is hosted? The idea is to save time and make it much easier to answer these questions in seconds instead of minutes.
In this article, I’ll explain the details of the idea, its benefits, and what’s needed to build it.
✨ Benefit
By having this simple dashboard, we can:
- Save time — no more checking each baremetal manually
- Quickly find the location of any VM in our Proxmox environment
- Respond faster when someone asks, “Where’s that VM hosted?”
🎯 Goals
Quickly find out which baremetal a virtual machine is running on
🛠️ Prerequisites
Before starting, make sure you have:
- Basic knowledge of Python, JavaScript, and web development
- Proxmox VE Server (as the hypervisor)
- Python 3.10 or newer (for building the backend / scripts)
- npm and Node.js (for building the frontend dashboard)
- or more check it out
📝 To-Do
-
Clone the ProxmoxVE-Watcher repository from GitHub
git clone https://github.com/nurawiguna/ProxmoxVE-Watcher cd ProxmoxVE-Watcher -
API Setup (with Python Virtual Environment)
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt -
Configure Proxmox Host
# copy file proxmox_hosts.json.example cp proxmox_hosts.json.example backend/proxmox_hosts.json # edit proxmox_hosts.json with your proxmox host details -
Edit the
proxmox_hosts.jsonfile to include your Proxmox host details (IP, username, password, etc.). example bellow:[ { "id": "1", "name": "baremetal_01", "host": "192.168.1.10", "user": "user@pve", "password": "your_password", "verify_ssl": false, "company": "AbcCorp", "site": "Data Center 1" }, { "id": "2", "name": "baremetal_02", "host": "192.168.1.12", "user": "user@pve", "password": "your_password", "verify_ssl":false, "company": "AbcCorp", "site": "Data Center 2" }, { "id": "3", "name": "baremetal_03", "host": "192.168.1.13", "user": "user@pve", "password": "your_password", "verify_ssl":false, "company": "DefCorp", "site": "Data Center 1" } ] -
Run the API server
python3 backend/app.py -
The API server will start running on
http://localhost:5000. You can access the dashboard by openinghttp://localhost:5000in your web browser. -
Frontend Setup & Run
cd web npm install cp .env.example .env npm run dev -
The frontend will start running on
http://localhost:3000. You can access the dashboard by openinghttp://localhost:3000in your web browser.
Bellow the demo access with dummy data: Demo
And that’s it! With this dashboard, you can quickly find out where any VM is running in your Proxmox environment without having to check each baremetal manually. It’s a simple tool that can save you a lot of time and make your life easier when managing VMs.