An interactive canvas-based visualizer for datacenter and lab infrastructure
- Interactive network topology visualization
- Real-time data updates from JSON configuration
- Zero-downtime data validation with UI error warnings
- Physical, traffic flow, and VLAN graph views
The easiest way to run Lab Map — ships with default data so visualizations work immediately:
docker run -d -p 8080:80 --name lab-map ghcr.io/aayusharyan/lab-map:latestAccess at http://localhost:8080
To use your own data, mount a local directory:
docker run -d -p 8080:80 \
-v /path/to/your/config:/app/config \
--name lab-map \
ghcr.io/aayusharyan/lab-map:latestSee docker/README.md for more options and data file format.
- Node.js >= 24 (LTS version)
- pnpm >= 9 (enforced via
package-manager-strict=true)
-
Clone the repository:
git clone https://github.com/aayusharyan/lab-map.git cd lab-map -
Install dependencies:
pnpm install
-
Start the development server:
Start the development server with hot reload:
pnpm devThis runs both the Vite dev server and the data file watcher, which automatically validates configuration files in config/ on changes.
Build for production:
pnpm buildPreview the production build locally:
pnpm previewLab Map uses JSON configuration files in the config/ directory:
physical.json- Physical network topology (nodes, connections)traffic.json- Traffic flow data between nodesvlan.json- VLAN configuration and assignmentssettings.json- Application settings and preferences
Lab Map features zero-downtime data validation. When you modify configuration files, they are automatically validated against strict JSON schemas. If a file contains errors (e.g., a missing required field or wrong data type), the application won't break. Instead, it gracefully continues serving the last valid version of your data while displaying warning banners in the web UI to help you debug and fix the issue.
Note: The public/data/ directory is gitignored — it is generated automatically by the watcher on startup and should not be committed.
- Bug reports: GitHub Issues
- Feature requests: GitHub Issues
- Contributing: CONTRIBUTING.md
- Code of Conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
