No description
Find a file
2025-07-03 00:29:27 +02:00
.idea Reset history 2025-07-03 00:29:27 +02:00
.password_hash_gen Reset history 2025-07-03 00:29:27 +02:00
core Reset history 2025-07-03 00:29:27 +02:00
pages Reset history 2025-07-03 00:29:27 +02:00
public Reset history 2025-07-03 00:29:27 +02:00
server Reset history 2025-07-03 00:29:27 +02:00
util Reset history 2025-07-03 00:29:27 +02:00
.gitignore Reset history 2025-07-03 00:29:27 +02:00
app.vue Reset history 2025-07-03 00:29:27 +02:00
ecosystem.config.js Reset history 2025-07-03 00:29:27 +02:00
fruity.config.ts Reset history 2025-07-03 00:29:27 +02:00
LICENSE Reset history 2025-07-03 00:29:27 +02:00
nuxt.config.ts Reset history 2025-07-03 00:29:27 +02:00
package.json Reset history 2025-07-03 00:29:27 +02:00
README.md Reset history 2025-07-03 00:29:27 +02:00
tailwind.config.js Reset history 2025-07-03 00:29:27 +02:00
tsconfig.json Reset history 2025-07-03 00:29:27 +02:00

Nuvira Control Panel

A lightweight control panel for managing QEMU/KVM virtual machines and system services, built with Nuxt 3 + DaisyUI.

WebStorm TypeScript Nuxt.js DaisyUI Tailwind CSS

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 Modern Vue 3 framework
  • DaisyUI Clean UI components on Tailwind
  • systeminformation Fetch live system stats
  • PM2 Process manager (recommended for deployment)

Installation

Prerequisites

Steps

  1. Clone the repository:
    git clone https://github.com/WeeXnes/nuvira.git
    cd nuvira
    
  2. Install dependencies:
    npm install
    
  3. Set the admin password:
    npm run password_gen <password>
    
  4. Build the Panel
    npm run build
    
  5. Start the Server
    pm2 start
    

Configuration

Modify the panel.config.ts file (if needed) to configure VM management and system services settings.

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

Running the Website with SSL

  • Guide coming soon

Author

Developed by WeeXnes