Server Control Panel for the Web with libvirt-vm controls
Find a file
2025-03-01 02:57:31 +01:00
.password_hash_gen added checks 2025-02-28 21:39:49 +01:00
core made all apis token secured 2025-02-27 23:42:00 +01:00
pages fixed loop error 2025-02-28 22:01:38 +01:00
public initial commit 2025-02-26 09:38:06 +01:00
server added checks 2025-02-28 21:39:49 +01:00
types initial commit 2025-02-26 09:38:06 +01:00
util added auth 2025-02-27 02:56:21 +01:00
app.vue initial commit 2025-02-26 09:38:06 +01:00
ecosystem.config.js changed ecosystem.config.js 2025-02-27 11:06:57 +01:00
nuxt.config.ts initial commit 2025-02-26 09:38:06 +01:00
package.json added checks 2025-02-28 21:39:49 +01:00
panel.config.ts fixed loop error 2025-02-28 22:02:04 +01:00
README.md Update README.md 2025-03-01 02:57:31 +01:00
tailwind.config.js initial commit 2025-02-26 09:38:06 +01:00
tsconfig.json initial commit 2025-02-26 09:38:06 +01:00

Server Control Panel

WebStorm TypeScript Nuxt.js DaisyUI Tailwind CSS

Overview

Server Control Panel is a web-based interface for monitoring and managing QEMU virtual machines and system services. Built with Nuxt.js and styled using DaisyUI, this panel provides real-time system information using the systeminformation NPM package.

Features

  • Display OS, CPU, and Memory Information
  • Manage QEMU Virtual Machines (Start/Shutdown)
  • View and Control System Services (Start/Stop functionality removed in the latest version)
  • Clean and modern UI

Technologies Used

  • Nuxt.js - Vue.js-based framework for SSR and static site generation
  • DaisyUI - Tailwind CSS component library for styling
  • systeminformation - Node.js library for retrieving system and hardware details

Installation

Prerequisites

Steps

  1. Clone the repository:
    git clone https://github.com/WeeXnes/server_panel.git
    cd server_panel
    
  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

Author

Developed by WeeXnes