Skip to content

dionipe/idve-dash

Repository files navigation

IDVE DashWatch the demo video above to see IDVE Dashboard in action!

πŸ“Έ Screenshots

Dashboard Overview

Dashboard

Virtual Machine Instances

Instances

Network Management

Networks

Storage Management

Images

πŸš€ Featuresrd

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.

οΏ½ Demo Video

Watch the demo video above to see IDVE Dashboard in action!

οΏ½πŸš€ Features

Virtual Machine Management

  • 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

Network Management

  • 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

Storage Management

  • Multiple storage pools (Local, NFS, etc.)
  • ISO image management for VM installation
  • Disk image storage and organization
  • Shared storage configuration

User Interface

  • 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

πŸ› οΈ Technology Stack

  • Backend: Node.js, Express.js
  • Frontend: HTML5, Tailwind CSS, JavaScript
  • Real-time: Socket.IO
  • Virtualization: QEMU/KVM
  • Network: Linux Bridge, VLAN
  • File Upload: Multer

πŸ“‹ Prerequisites

  • Node.js 16+
  • QEMU/KVM
  • Linux Bridge utilities (brctl)
  • Systemd networking
  • Root access for network configuration

πŸš€ Installation

  1. Clone the repository

    git clone git@repo.indobsd.id:dionipe/idve-dash.git
    cd idve-dash
  2. Install dependencies

    npm install
  3. Start the application

    npm start
  4. Access the dashboard Open your browser and navigate to http://localhost:3000

πŸ“ Project Structure

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

πŸ”§ Configuration

Network Configuration

The application manages network interfaces through /etc/network/interfaces. Ensure the application has root privileges for network operations.

Storage Paths

  • VM instances: /var/lib/idve/instances/
  • ISO images: /var/lib/idve/isos/
  • Images: /var/lib/idve/images/

πŸ“‘ API Endpoints

Virtual Machines

  • GET /api/instances - List all VM instances
  • POST /api/instances - Create new VM
  • DELETE /api/instances/:id - Delete VM

Networks

  • GET /api/networks - List all networks
  • POST /api/networks - Create new network
  • PUT /api/networks/:name - Update network
  • DELETE /api/networks/:name - Delete network

Storage

  • GET /api/storages - List storage pools
  • POST /api/storages - Create storage pool
  • PUT /api/storages/:name - Update storage pool
  • DELETE /api/storages/:name - Delete storage pool

πŸ”’ Security Considerations

  • 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

πŸ’ Support

If you find this project helpful, consider supporting the development:

Support via Saweria

QR Code for Donations

Saweria QR Code

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the ISC License - see the LICENSE file for details.

πŸ‘₯ Authors

πŸ™ Acknowledgments

About

ID Virtual Environment a.k.a IDVE

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors