•
4 min read
One Small Dashboard, One Big Time Saver: My Proxmox Story

proxmoxve-watcher

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.json file 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 opening http://localhost:5000 in 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 opening http://localhost:3000 in 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.