A modern, web-based dashboard for managing virtual machines and network infrastructure. Built with Node.js, Express, and Socket.IO, featuring a beautiful Tailwind CSS interface.
Watch the demo video above to see IDVE Dashboard in action!
- Create VMs with comprehensive configuration options
- QEMU/KVM integration with full hardware virtualization
- Cloud-init support for automated VM provisioning
- Real-time monitoring via WebSocket connections
- Multiple storage formats (QCOW2, RAW)
- Network configuration with bridge and VLAN support
- MAC address auto-generation with uniqueness validation
- TPM 2.0 emulation for Windows VMs
- VirtIO drivers for optimal performance
- Bridge creation and management with physical interface bonding
- VLAN support for network segmentation
- Real-time network status monitoring
- Interface availability detection
- Persistent configuration with
/etc/network/interfaces
- Multiple storage pools (Local, NFS, etc.)
- ISO image management for VM installation
- Disk image storage and organization
- Shared storage configuration
- Modern dark/light theme with clay-morphism design
- Responsive design for desktop and mobile
- Real-time updates via Socket.IO
- Intuitive navigation with tabbed interface
- Form validation and error handling
- Backend: Node.js, Express.js
- Frontend: HTML5, Tailwind CSS, JavaScript
- Real-time: Socket.IO
- Virtualization: QEMU/KVM
- Network: Linux Bridge, VLAN
- File Upload: Multer
- Node.js 16+
- QEMU/KVM
- Linux Bridge utilities (
brctl) - Systemd networking
- Root access for network configuration
-
Clone the repository
git clone git@repo.indobsd.id:dionipe/idve-dash.git cd idve-dash -
Install dependencies
npm install
-
Start the application
npm start
-
Access the dashboard Open your browser and navigate to
http://localhost:3000
idve-dash/
βββ server.js # Main application server
βββ package.json # Dependencies and scripts
βββ public/ # Frontend assets
β βββ index.html # Main dashboard
β βββ images.html # Storage management
β βββ networks.html # Network management
β βββ storages.html # Storage pools
β βββ script.js # Main JavaScript
β βββ images.js # Storage JavaScript
β βββ networks.js # Network JavaScript
β βββ storages.js # Storage JavaScript
β βββ styles.css # Additional styles
βββ documentations/ # Documentation files
βββ node_modules/ # Dependencies
The application manages network interfaces through /etc/network/interfaces. Ensure the application has root privileges for network operations.
- VM instances:
/var/lib/idve/instances/ - ISO images:
/var/lib/idve/isos/ - Images:
/var/lib/idve/images/
GET /api/instances- List all VM instancesPOST /api/instances- Create new VMDELETE /api/instances/:id- Delete VM
GET /api/networks- List all networksPOST /api/networks- Create new networkPUT /api/networks/:name- Update networkDELETE /api/networks/:name- Delete network
GET /api/storages- List storage poolsPOST /api/storages- Create storage poolPUT /api/storages/:name- Update storage poolDELETE /api/storages/:name- Delete storage pool
- Run with appropriate privileges for system operations
- Configure firewall rules for VM network access
- Monitor system resources for VM operations
- Regular backup of VM configurations
If you find this project helpful, consider supporting the development:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the ISC License - see the LICENSE file for details.
- Dionipe - Initial work - dionipe
- Built with Tailwind CSS
- Icons from Material Symbols
- Real-time communication via Socket.IO
- Virtualization powered by QEMU




