125 lines
3.5 KiB
Markdown
125 lines
3.5 KiB
Markdown
# Nuvira Control Panel
|
||
|
||
> A lightweight control panel for managing **QEMU/KVM virtual machines** and **system services**, built with Nuxt 3 + DaisyUI.
|
||
|
||
|
||

|
||

|
||

|
||

|
||

|
||
|
||
## 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 <password>
|
||
```
|
||
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 <password>" 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**
|
||
|