FreeBSD Bhyve Web Administration Software

Overview

BVCP Application (Bhyve Virtual-Machine Control Panel)

Current Version: 1.2-Release

In Nutshell

BVCP is a graphical and secure webcontrol panel for FreeBSD Bhyve's Virtual Machines. BVCP is made with love and for enterprise use, 24/7 NON-STOP operation, tested on production enterprise-class area. Unlike many others, BVCP is just a native application/software for FreeBSD with a one-click-install feature. BVCP is shall not interfere or modify your system settings it can be run at most of environments. BVCP can handle more physical hosts with one interface without clustering. Fun Fact: The software made within 4 months.

Introduction

This is a personal project from the author of nPulse.net, Viktor Hlavaji (DaVieS). nPulse.net is always willing to share knowledge and resources with others, and I have 10+ experience of making industry-class / enterprise-class softwares.

It does have a Graphical user Interface via webinterface and also a CLI and an API. The software provides webGUI to let you manage Virtual Machines remotely.

The software is uses our framework "Kinga Framework" which is used in various enterprise-class products already since 2017. Mostly written in C/C++. The software has its components:

  • Frontend (Web Interface)
  • Backend (Worker)
  • Helper
  • Utils

Please refer to the website for more informations: bhyve.npulse.net

ScreenShots

API CLI Interface Login Area Running Windows VM GUI Looklike Running Linux VM Dashboard

Bhyve

Bhyve is a hypervisor of FreeBSD, this software requires that and FreeBSD 12+.

License: Community Free-Of-Charge Edition

  • You can download, install and use the BVCP Application for without any charges and limitations including commercial.
  • You can not modify the binaries, disassemble the binaries, resell the software, redistribute the software, etc..
  • You are allowed to upload screenshots and videos from the application itself in purpose of documentation, tutorial, HOWTOs
  • Please refer to the LICENSE for more informations.

Installation

Minimum Requirements

  • At least a FreeBSD 12+ installed onto your target machine with virtualisation capable amd64 architecture.
  • Minimum 250MB of free space on /var/lib for the binaries
  • Network interface

1) Log in to your FreeBSD Box and bring-up a root shell

root@vmhost:~ #

2) Download the latest release

fetch https://bhyve.npulse.net/release.tgz or download manually from (this) github page

3) Extract the archive you have downloaded

tar -xzvf release.tgz

  x bhyve-webadmin/
  x bhyve-webadmin/utils/
  x bhyve-webadmin/API/
  x bhyve-webadmin/install.sh
  x bhyve-webadmin/Frontend/
  x bhyve-webadmin/.git/
  x bhyve-webadmin/Backend/
  x bhyve-webadmin/update.sh
  x bhyve-webadmin/Helper/
  x bhyve-webadmin/Helper/vmctl
  ...

4) Enter bhyve-webadmin and run install.sh

root@vmhost:~# cd bhyve-webadmin && ./install.sh

  Installing BVCP into your FreeBSD Installation within seconds ...

  Press [CTRL] + [C] to Abort !
  ...

          ██████╗ ██╗   ██╗ ██████╗██████╗
          ██╔══██╗██║   ██║██╔════╝██╔══██╗
          ██████╔╝██║   ██║██║     ██████╔╝
          ██╔══██╗╚██╗ ██╔╝██║     ██╔═══╝
          ██████╔╝ ╚████╔╝ ╚██████╗██║
          ╚═════╝   ╚═══╝   ╚═════╝╚═╝

  Bhyve Virtual-Machine Control Panel under FreeBSD
  [N] 2021-06-26 22:16:56 | application/vmserver/main.c | Initialising bhyve VM Server Application

  (+) The Software is producing pseudo filesystem scheme for virtual machines using symlinks
  Where to create metadata, iso_images, database, config, logs: (Does not need much space), default: [/vms]_>

5) Enter a path (default: /vms) where some misc data placed, but not for storing virtual disks!!

    ...
        (!) Admin Credentials recreated,
        - User: admin
        - Password: AXN3jtPt
            
    [N] 2021-06-26 22:28:00 | SW | Program exited gracefully...
    Installation Finished!
    Navigate: https://[your-ip]:8086

6) Installation is should be done, please write down your initial credentials and try access at https://[your-ip]:8086

7) Please log-in and manage your account settings, before creation of any VM, please ensure you have added Storage and Network for the VM.

API Interface

General


  ██████╗ ██╗   ██╗ ██████╗██████╗
  ██╔══██╗██║   ██║██╔════╝██╔══██╗
  ██████╔╝██║   ██║██║     ██████╔╝
  ██╔══██╗╚██╗ ██╔╝██║     ██╔═══╝
  ██████╔╝ ╚████╔╝ ╚██████╗██║
  ╚═════╝   ╚═══╝   ╚═════╝╚═╝

Bhyve Virtual-Machine Control Panel under FreeBSD

[N] 2021-06-28 03:04:17 | application/vmserver/main.c | Initialising bhyve VM Server Application
Error: / ERR / invalid_parameter
Available Commands:
+ vm      | Virtual Machine Management
+ storage | Storage Management
+ switch  | Virtual Switch Management
+ user    | Built-in User Management
+ vminfo  | SysInfo
+ config  | Internal Storage

more details:  vm
cmd example:  vm list ALL
Note: type exit to Quit

_>

VM Submenu

  _> vm
  * [vm] Available Commands:
    [Start/Stop Commands]
    + start [prefix]                                                          | Start virtual machine
    + check [prefix]                                                          | Check virtual machine
    + shutdown [prefix]                                                       | ACPI Shutdown
    + user [user]                                                             | Add user to the VM
    + log [prefix] [max_entries]                                              | Fetch VM Journal
    + kill [prefix]                                                           | Kill virtual machine
    + stop [prefix]                                                           | Stop virtual machine
    + list {prefix}                                                           | List virtual machine
    + destroy {prefix}                                                        | Destroy virtual machine
    + restart [prefix]                                                        | Restart virtual machine
 
    [Management Commands]
    + create [prefix] [description]                                           | New virtual machine
    + desc [prefix] [new_description]                                         | Modify virtual machine
    + note [prefix] {new_note}                                                | Add/Get note
    + clear [prefix]                                                          | Clear config (debug purpose)
    + set [prefix] [key] [value]                                              | Set core variables
      - keys: cpu.socket, cpu.core, memory, sys[linux,win,bsd] arch[intel,amd]
      - keys: auto.boot, vnc.wait
    - destroy [prefix]                                                        | Destroy virtual machine
    + list                                                                    | List virtual machine
 
    [Disk Management Commands]
    + disk create [prefix] [storage] [name] [size]                            | Create new disk
    + disk attach [prefix] [file] [desc] [slot] [ahci/virtio]                 | Attach Disk into VM
    + disk detach [prefix] [file]                                             | Detach Disk from VM
    + disk destroy [prefix] [ID/file]                                         | Delete Disk
    + disk resize [prefix] [file] [new_size]                                  | Resize Disk
    + disk list [prefix]                                                      | List Disks
 
    [CDROM Commands]
    + cdrom attach [prefix] [iso_file]                                        | Attach ISO file as CD-ROM
    + cdrom detach [prefix] [iso_file]                                        | Detach ISO
    + cdrom list [prefix]                                                     | List ISO Images
 
    [Network Commands]
    + nic add_virtio [prefix] [switch] {mac_addr}                             | Add VirtIO/NIC bound to switch
    + nic add_legacy [prefix] [switch] {mac_addr}                             | Add Intel/NIC bound to switch
    + nic change [prefix] [NIC] [switch]                                      | Change Switch
    + nic enable [prefix] [NIC]                                               | Enable NIC
    + nic disable [prefix] [NIC]                                              | Disable NIC
    + nic remove [prefix] [NIC]                                               | Remove NIC
    + nic list [prefix]                                                       | List Interfaces

Storage Submenu

  _> storage
  * [storage] Available Commands:
  [Basic Commands]
  + list {active}                               | List Storages
  + create [mountpoint] [description]           | Enable new storage
  + modify [mountpoint] [desc] {enable/disable} | Modify existing storage
  + destroy [mountpoint]                        | Destroy Storage

Switch Submenu

  _> switch
  * [switch] Available Commands:
  [Basic Commands]
  + create [prefix] [description]                                                       | Create new vSwitch
  + destroy [prefix]                                                                    | Destroy vSwitch
  + desc [prefix] [description]                                                         | Rename vSwitch
  + reload                                                                              | Reload Configuration
  + cleanup                                                                             | Clear OS configuration
  + bound [prefix] [iface]                                                              | Bound to network interface
  + unbound [prefix]                                                                    | UnBound from network interface
  + list                                                                                | List vSwitch
  + listDevs                                                                            | List Network Cards

Switch Submenu

  _> user
  * [user] Available Commands:
  + ipinfo [ip_addr]                                                  | Show IP Geo Info
  + fetch [userID/mail/ALL]                                           | Get list of user(s)
  + logauth [mail] [TYPE] [IP] [CUID] [EXT]                           | Log Authentication
  + authlog [mail/ALL]                                                | Retrieve Authentication Logs
  + change [mail/ID] [new_name] [new_mail] [new_password (optional)]  | Modify User Settings
  + role [mail/ID] [USER/ADMIN]                                       | Modify User Role
  + create [name] [mail] [passwd]                                     | Create new user account
  + delete [mail/userID]                                              | Dele

Config Submenu

 _> config
    * [config] Available Commands:
    [Basic Commands]
    + set [key] [value]   | Set config variable
    + get [key]           | Get config variable
    + del [key]           | Delete config variable
Comments
  • user cant create a vm

    user cant create a vm

    is it true that a user cant create a vm ? you must be an administrator ? meaning if i had customer A) he cant create a vm ubnless hes an admnin, if hes an admin he cant see everyones vms ?

    opened by outbackdingo 7
  • Linux vm setup in infinite boot loop

    Linux vm setup in infinite boot loop

    I am trying to set up a linux vm with either ubuntu-20.04.3-live-server-amd64.iso or alpine-standard-3.15.0-x86.iso / alpine-virt-3.15.0-x86.iso / alpine-virt-3.15.0-x86_64.iso but none of those will even boot. I tried to create the disks either with SATA/AHCI or Virt/IO and the network with either Intel Pro 100 or Virt/IO but every combination leads to an invinite boot loop.

    Any ideas on this?

    (I also have only empty charts in the "Systm information" menue and somehow my host disk is shown as 138.12GB although it only has 67GB)

    otherwise very cool project!

    opened by bbking78 5
  • upgrade to 1.6 breaks frontend

    upgrade to 1.6 breaks frontend

    I had a 1.4 install running well, and performed the upgrade to 1.6 following the instructions.

    After upgrade to 1.6 backend and helper started correctly, but foreground did not.

    foreground starts, records a pid in the pid file and crashes leaving the vms running, but uncontrollable. Tried rebooting, and various attempts at logging/ troubleshooting. Ended up downgrading to restore the service.

    troubleshooting tips welcome, and I can try again.

    opened by RanceH 5
  • Password change not working

    Password change not working

    Whatever combination of small letters, capital letters, digits and everything you can enter with the keyboard i try in the "change password" account settings i always receive the message "password does not meet the requirements".

    I usually use at least ten characters and usually any (or at least three) of the character types mentioned above.

    i even tried to change just one single character of the created "admin" Password during setup, but even this is rejected.

    I could not find any hint for "the requirements". What am i doing wrong ? :-|

    opened by mayrk 5
  • MTU on tap interface is not adjusted

    MTU on tap interface is not adjusted

    when the physical interface has a mtu != 1500 (9184 in my case) the generated bridge inherits that mtu, but adding the tap interface to the bridge fails, as it has a mtu of 1500. manually adjusting the mtu of the tap interface and adding it to the bridge works.

    ACCEPTED-VALID 
    opened by 0xc0decafe 4
  • NoVNC Console - Stuck on 'Connecting...'?

    NoVNC Console - Stuck on 'Connecting...'?

    So I created new VM, started it up, but NoVNC is stuck on Connecting when I try to launch the console. BVCP says that it is running in web interface so not entirely certain what the issue is.

    This is on a FreeBSD 13.0 AMD64 host with FreeBSD 13.0 AMD64 in the VM.

    opened by HardwareExtreme 4
  • Add Storage - Mounted Devices not showing up in list?

    Add Storage - Mounted Devices not showing up in list?

    Hey is there any specific way that storage devices have to be mounted for BVCP to see them? I am currently trying to add a disk for storage but I cannot add it on the BVCP webpage even though it is mounted on the system and formatted.

    The setup I have is a 200GB zvol attached over iSCSI, formatted as UFS on the BVCP system, I mounted it under /mnt/iscsi-storage1 and /media/iscsi-storage1 but neither show up as being able to add it as storage for BVCP.

    bug ACCEPTED-VALID 
    opened by HardwareExtreme 2
  • Mount points for VM storage

    Mount points for VM storage

    i am playing with the latest release an detected on a test machine that not all mountpoints are available. Is there a limitation of 5 mountpoints or a name pattern which mountpoints are not available ?

    For example on that machine the list of mountpoints contained /, /usr, /var, /tmp and /storage, but not /vm-storage. I unmounted /storage, but /vm-storage was still not available in the list ...

    I am a bit confused about what are valid names for the storage mountpoints ...

    opened by mayrk 2
  • Networking - New network creation.

    Networking - New network creation.

    Hi there, running release 1.2. When creating a new network, seems that PHY interfaces is not added directly after creation, hence I need to edit and select the phy interface again to make it part of the bridge. Also when removing a network, the bridge (in this case was bridge300) is not deleted, needing manual intervention. Best regards and great software.

    opened by tatuzemdp 2
  • Typo on account page

    Typo on account page

    Under changing password it says " Passwords are least 6 characters long, after succesfull operation you must re-login."

    Should be successful, and the more correct way of saying it would be "Password must be at least 6 characters long, after successful operation you must re-login"

    ACCEPTED-VALID 
    opened by Astal4 1
  • parameter 1 has an invalid type 'integer' ; expected: 'string' at bhyve/vm_disk.class.c(238)

    parameter 1 has an invalid type 'integer' ; expected: 'string' at bhyve/vm_disk.class.c(238)

    parameter 1 has an invalid type 'integer' ; expected: 'string' at bhyve/vm_disk.class.c(238) ********************** VM/THREAD INTERNAL ERROR ********************** [*] Stack Traceback: [0] bhyve/vm_disk.class.c(238)::createDisk [1] application/vmserver/api/api/classes/vmManager.class.c(173)::handle [2] application/vmserver/api/api.c(79)::unknown [3] utils/DProtocolServer.class.c(500)::dp_callback [4] utils/connectionManager.class.c(269)::OnData [5] utils/tcpServer.class.c(273)::dispatch [6] utils/tcpServer.class.c(321)::poll [7] utils/DProtocolServer.class.c(704)::poll [8] application/vmserver/api/api.c(93)::thread_main [9] utils/thread.class.c(266)::main


    opened by DaVieS007 1
  • LPC, Serial Port redirection

    LPC, Serial Port redirection

    Would be nice if we have a COM Serial port redirection over network. So I mean BVCP could open a serial port and start a TCP listener or TCP reverse connection bound with VM.

    opened by DaVieS007 0
  • [FEATURE REQUEST] Secure Boot and TPM (2.0, device passthrough or emulation)

    [FEATURE REQUEST] Secure Boot and TPM (2.0, device passthrough or emulation)

    newer Windows guests (like Win11) require TPM 2.0 and Secure boot, but currently it is possible to bypass the checks.

    A Win11 ISO does not check for TPM and Secure Boot in a clean install from the ISO (at least not now, but maybe in the future), when you install it in a VM, but when you upgrade from within Windows , these checks will be done even in a VM. (Need to delete two specific files in the original iso folder "sources" to upgrade without TPM 2.0 and Secure boot ...)

    First, of course, Bhyve needs to be able to emulate TPM if the host does not have any TPM devices ... to integrate a new feature in the GUI ...

    opened by mayrk 1
  • Windows 10 VM - setup reboots vm with virtio disk

    Windows 10 VM - setup reboots vm with virtio disk

    I tried to deploy to windows virtual Machines as described in ==> https://bhyve.npulse.net/deploy_windows <==. I used 21H2 (19044.1266 ISO to be precise) and the (latest ?) Virtio ISO linked in the top of the manual.

    First i attached the virtual system disk as described on VirtIO, but when windows setup loads the driver, the VM reboots immediately.

    With the AHCI Option for the disk the windows installation worked perfect without any issues.

    My FreeBSD System is 14.0-current if that matters for this issue.

    opened by mayrk 7
  • Networking - SRIOV

    Networking - SRIOV

    Hi, it will be great if SRIOV interfaces and Virtual functions can be managed and mapped to VM from the UI itself, without needing to drop into FreeBSD CLI.

    opened by tatuzemdp 0
  • No sources, license, or port

    No sources, license, or port

    Is there a particular reason you chose to distribute prebuilt binaries instead of sources + license? It seems like a really nice new project, but fetching prebuilt binaries is the least-preferred way of installing things in FreeBSD. Might instead I suggest and offer help getting a port built and added to the tree? It's typically a pretty simple process and it's well documented here: https://docs.freebsd.org/en/books/porters-handbook/

    TO-DO ACCEPTED-VALID 
    opened by agrajag9 9
Owner
My name is Viktor Hlavaji, Im working as IT specialist.
null
ViMbAdmin project provides a web based virtual mailbox administration system to allow mail administrators to easily manage domains, mailboxes and aliases.

ViMbAdmin project (vim-be-admin) provides a web based virtual mailbox administration system to allow mail administrators to easily manage domains, mailboxes and aliases.

Open Solutions 464 Jan 1, 2023
This plugin allows administrators to apply discounts on orders from the administration panel.

skilldo-discounts This plugin of cms Skilldo This plugin allows administrators to apply discounts in percentage on full orders from the administration

null 3 Nov 13, 2021
Browser Administration for Linux-Based Audio/Video-Player like ODROID or Raspberry Pi

Browser Administration for Linux-Based Audio/Video-Player like ODROID or Raspberry Pi.

Max2Play 41 Apr 23, 2022
:panda_face: Jitamin is a free software written in PHP, intended to handle the project management over the web. QQ群: 656868

Jitamin Jitamin (pronounced /ˈdʒɪtəmɪn/) is a free software written in PHP, intended to handle the project management over the web. Jitamin is inspire

jitamin 916 Dec 14, 2022
A learning management system (LMS) is a software application or web-based technology used to plan, implement and assess a specific learning process.

vidyaprabodhan-gov-php-project A learning management system (LMS) is a software application or web-based technology used to plan, implement and assess

Narayan Pote 1 Dec 23, 2021
Kanban project management software

Kanboard Kanboard is project management software that focuses on the Kanban methodology. Official website: https://kanboard.org/ List of features Chan

Kanboard 7k Jan 7, 2023
NamelessMC is a free, easy to use & powerful website software for your Minecraft server

NamelessMC - v2 pre-release 10 NamelessMC is a free, easy to use & powerful website software for your Minecraft server, which includes a large range o

NamelessMC 520 Jan 1, 2023
Open source ERP software. Built on modern PHP and bootstrap 4. Easy and powerful.

FacturaScripts Open source ERP software. Built on modern PHP and bootstrap 4. Easy and powerful. Install Clone and deploy with composer and npm (compo

Carlos Garcia 313 Jan 4, 2023
Dolibarr ERP & CRM is a modern software package that helps manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).

Dolibarr ERP CRM is a modern software package to manage your company or foundation activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). It is open source software written in PHP and designed for small and medium businesses, foundations and freelancers. You can freely install, use and distribute it as a standalone application or as a web application to use it from every internet access and media.

Dolibarr ERP & CRM 3.7k Jan 7, 2023
Instagram automation represents the use of third-party software to manage your account, carry out tasks and/or interact with users without a human present. Bulit in Laravel Framework

How to Deploy laravel project to heroku Video Link : https://youtu.be/7Nq_a2QiaHo Home Page Login Page Dashboard Page About Laravel Laravel is a web a

null 1 Dec 3, 2021
Open Source Social Network (OSSN) is a social networking software written in PHP.

Open Source Social Network (OSSN) is a social networking software written in PHP. It allows you to make a social networking website and helps your members build social relationships, with people who share similar professional or personal interests. It is available in 17 international languages.

Open Source Social Network 923 Jan 6, 2023
Akaunting is a free, open source and online accounting software designed for small businesses and freelancers

Akaunting is a free, open source and online accounting software designed for small businesses and freelancers

jahidul alam mishuk 1 Jan 9, 2022
LiveZilla - a help desk software that offers a help desk solution for small companies to large businesses

LiveZilla includes a live chat software with multi-website support, visitor monitoring and a help desk system that allows you to not only integrate emails that you receive from customers but also messages from Twitter and Facebook in your ticket system.

Maher Amara 9 Nov 10, 2022
TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.

Prasath Mani 3.5k Jan 7, 2023
Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses related to services

Kyle Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses relat

Laravelista 36 Jul 15, 2022
Unified sample web app. The easy way to learn web frameworks.

Notejam The easy way to learn web frameworks Do you know framework X and want to try framework Y? The easy way to start with a new framework is to com

Sergey Komar 1.1k Dec 21, 2022
Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable.

Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable. Its main goal is to be an aid for security professionals to test their skills and tools in a legal environment, help web developers better understand the processes of securing web applications and to aid both students & teachers to learn about web application security in a controlled class room environment.

Robin Wood 7k Jan 5, 2023
A web interface for MySQL and MariaDB

phpMyAdmin A web interface for MySQL and MariaDB. https://www.phpmyadmin.net/ Code status Download You can get the newest release at https://www.phpmy

phpMyAdmin 6.3k Jan 2, 2023
Simple web interface to manage Redis databases.

phpRedisAdmin phpRedisAdmin is a simple web interface to manage Redis databases. It is released under the Creative Commons Attribution 3.0 license. Th

Erik Dubbelboer 3k Dec 31, 2022