I built this because I was tired of manually maintaining Excel sheets and Visio diagrams for my homelab documentation.
The core idea is automated discovery via Nmap, but without sending plaintext network data to a hosted backend. It uses strict client-side Zero-Knowledge End-to-End Encryption.
The Architecture:
The Scanner: A lightweight Python agent running locally in a Docker container. It uses Nmap to scan the local subnet.
The Encryption: The payload is encrypted locally before it ever leaves the network. The backend (FastAPI/PostgreSQL) only receives and stores encrypted blobs.
The Frontend: Decryption happens entirely client-side in the browser (Angular), rendering the topology using vis-network.
Technical Hurdles & Limitations I'm currently facing:
Hostname Discovery is a nightmare: Across different vendors, devices handle broadcast differently (mDNS, NetBIOS, pure DNS). The agent catches what it can, but often falls back to raw IPs because reliable local resolution is incredibly inconsistent.
Physical Connections: While Nmap easily discovers the devices and open ports on the subnet, mapping the exact physical connections (which switch port goes where, device types, Wi-Fi details) still requires manual linking in the UI.
I'm curious to hear how you handle automated discovery in your homelabs, especially regarding the hostname resolution issue, or if you spot any flaws in this E2E approach.
The core idea is automated discovery via Nmap, but without sending plaintext network data to a hosted backend. It uses strict client-side Zero-Knowledge End-to-End Encryption.
The Architecture:
The Scanner: A lightweight Python agent running locally in a Docker container. It uses Nmap to scan the local subnet.
The Encryption: The payload is encrypted locally before it ever leaves the network. The backend (FastAPI/PostgreSQL) only receives and stores encrypted blobs.
The Frontend: Decryption happens entirely client-side in the browser (Angular), rendering the topology using vis-network.
Technical Hurdles & Limitations I'm currently facing:
Hostname Discovery is a nightmare: Across different vendors, devices handle broadcast differently (mDNS, NetBIOS, pure DNS). The agent catches what it can, but often falls back to raw IPs because reliable local resolution is incredibly inconsistent.
Physical Connections: While Nmap easily discovers the devices and open ports on the subnet, mapping the exact physical connections (which switch port goes where, device types, Wi-Fi details) still requires manual linking in the UI.
Links:
Live App: https://app.vnetmap.com
GitHub (Docs & Agent Setup): https://github.com/vNetMap/vnetmap-issues
I'm curious to hear how you handle automated discovery in your homelabs, especially regarding the hostname resolution issue, or if you spot any flaws in this E2E approach.