Prerequisites
- BVCP Installed and running on the machine
- API Interface requires a security key called as `API KEY`. You can always validate your current API key from the config file: `/var/lib/nPulse/BVCP/bvcp.conf`
Please bear in mind, the API key will not changed automatically, disclose the API key gives anyone the privilege to make modifications or even destroy the virtual machines!
security
{
api_key = 208C694F9CBD2BFA47F8E4EC7C0D2A5FB3B29984802E3E049A73A2011CB93BDC
secret = 59DFDCCC370406476578BDB1A42F2E0A05113D161F3F6A931E78564A7D034EC2
}
PHP API Interface
Under /var/lib/nPulse/BVCP/API there is a `cli.php` example PHP program to use the API. To achieve a successfull connection you must edit the header of the file.
$API_KEY = "208C694F9CBD2BFA47F8E4EC7C0D2A5FB3B29984802E3E049A73A2011CB93BDC"; // CHANGE THIS !!
$API_HOST = "localhost";
$API_PORT = "8628";
Built-In API Interface
To invoke built-in API feature just run: `/var/lib/nPulse/BVCP/Backend/vmm cli`
API Reference / Top Level
██████╗ ██╗ ██╗ ██████╗██████╗ ██╔══██╗██║ ██║██╔════╝██╔══██╗ ██████╔╝██║ ██║██║ ██████╔╝ ██╔══██╗╚██╗ ██╔╝██║ ██╔═══╝ ██████╔╝ ╚████╔╝ ╚██████╗██║ ╚═════╝ ╚═══╝ ╚═════╝╚═╝ 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 _>
API Reference / 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
API Reference / 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
API Reference / 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
API Reference / User 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] | Delete user account
API Reference / Config Submenu
_> config
* [config] Available Commands:
[Basic Commands]
+ set [key] [value] | Set config variable
+ get [key] | Get config variable
+ del [key] | Delete config variable