nuvira/README.md
2025-06-14 11:42:37 +00:00

125 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 <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**