# Nuvira Control Panel > A lightweight control panel for managing **QEMU/KVM virtual machines** and **system services**, built with Nuxt 3 + DaisyUI. ![WebStorm](https://img.shields.io/badge/WebStorm-000000?style=for-the-badge&logo=WebStorm&logoColor=white) ![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white) ![Nuxt.js](https://img.shields.io/badge/nuxt%20js-00C58E?style=for-the-badge&logo=nuxtdotjs&logoColor=white) ![DaisyUI](https://img.shields.io/badge/daisyUI-1ad1a5?style=for-the-badge&logo=daisyui&logoColor=white) ![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white) ## Overview **Nuvira** is a sleek, self-hosted web interface for monitoring your system and managing virtualization through **libvirt/QEMU**. It offers real-time hardware insights and control over virtual machines and services — ideal for homelabs and lightweight server setups. ## Features - 🖥️ Live system monitoring (CPU, memory, OS, etc.) - 💾 Manage QEMU/KVM virtual machines (Start / Shutdown) - 🔧 View and track systemd services - 💡 Simple configuration via a single `panel.config.ts` file - 🎨 Fully styled using Tailwind + DaisyUI ## Technologies Used - **[Nuxt 3](https://nuxt.com/)** – Modern Vue 3 framework - **[DaisyUI](https://daisyui.com/)** – Clean UI components on Tailwind - **[systeminformation](https://www.npmjs.com/package/systeminformation)** – Fetch live system stats - **[PM2](https://pm2.keymetrics.io/)** – Process manager (recommended for deployment) ## Installation ### Prerequisites - [Node.js](https://nodejs.org/) (v16+) - [NPM](https://www.npmjs.com/) - [QEMU/KVM](https://www.linux-kvm.org/page/Main_Page) (optional but supported) - [PM2](https://pm2.keymetrics.io/) for production ### Steps 1. Clone the repository: ```sh git clone https://github.com/WeeXnes/nuvira.git cd nuvira ``` 2. Install dependencies: ```sh npm install ``` 3. Set the admin password: ```sh npm run password_gen ``` 4. Build the Panel ```sh npm run build ``` 5. Start the Server ```sh pm2 start ``` ## Configuration Modify the `panel.config.ts` file (if needed) to configure VM management and system services settings. ```ts import { reactive } from "vue"; export const settings = reactive({ ignoreCache: true, // Leave empty to scan all interfaces // or change item to "disabled" to disable interface scanning interfaces_to_scan:[ "eth0" ], // enable or disable QEMU controls enable_qemu_controls: true, // list the qemu vm names you want to monitor/scan for qemu_vms: [ { name: "Gameserver", // OS Info has to be declared here due to technical // limitations of not being able to gather vm OS info os: "Ubuntu 24.04" }, { name: "Ubuntu_VM1", os: "Ubuntu 24.04" }, ], //enable or disable systemctl service monitoring enable_services: true, //list systemctl services to monitor/scan for systemctl_services:[ "libvirt", "frp" ], // set the password hash by running "npm run password_gen " before building password_hash: "" }); ``` ## Usage - The dashboard provides an overview of system information. - You can start or shut down virtual machines. - Service monitoring ## Optional (Recommended) ### Running the Website with SSL - Guide coming soon ## Author Developed by **WeeXnes**