This PHP Laravel Proxmox library allows, to interact with your Proxmox server via API.
You find any errors, typos or you detect that something is not working as expected please open an issue. I'll try to release a fix asap.
You can install the package via composer:
composer require irabbi360/laravel-php-proxmox
You can publish the config file with:
php artisan vendor:publish --tag=proxmox-config
Add this in .env from the proxmox.php config file
PROXMOX_HOST= PROXMOX_USER= PROXMOX_PASSWORD= PROXMOX_REALM= PROXMOX_PORT=
To use the Proxmox functionality, you can call the respective facades in your controller. Import the required facades based on the functionality you need. Here's how you can utilize them:
- For Node-related operations, use the
ProxmoxNodeVM
facade. - For Cluster-related operations, use the
ProxmoxCluster
facade. - For Storage-related operations, use the
ProxmoxStorage
facade.
Make sure to import the corresponding facades into your controller before using them.
use Irabbi360\Proxmox\Facades\ProxmoxNodeVM; public function vmVersion() { return ProxmoxNodeVM::version(); }
use Irabbi360\Proxmox\Facades\ProxmoxCluster; public function cluster() { return ProxmoxCluster::version(); }
use Irabbi360\Proxmox\Facades\ProxmoxStorage; public function storage() { return ProxmoxStorage::version(); }
public function createVm($node, Request $request) { $params = [ 'name' => $request->name, 'cores' => $request->cores, 'sockets' => $request->sockets, 'memory' => $request->memory, 'ostype' => $request->ostype, 'onboot' => 1, 'scsihw' => 'virtio-scsi-pci', 'bootdisk' => 'scsi0', 'net0' => 'virtio,bridge=vmbr0' ]; return ProxmoxNodeVM::createVM($node, $params); }
public function vmStart(string $node, int $vmId) { return ProxmoxNodeVM::startVM($node, $vmId); } public function vmStop(string $node, int $vmId) { return ProxmoxNodeVM::stopVM($node, $vmId); }
ProxmoxAccess::access() ProxmoxAccess::acl() ProxmoxAccess::updateAcl(array $data) ProxmoxAccess::createTicket(array $data)
ProxmoxAccess::domains() ProxmoxAccess::addDomain(array $data) ProxmoxAccess::domainsRealm($realm) ProxmoxAccess::updateDomain($realm, array $data) ProxmoxAccess::deleteDomain($realm)
ProxmoxAccess::groups() ProxmoxAccess::createGroup(array $data) ProxmoxAccess::groupId($groupid) ProxmoxAccess::updateGroup($groupid, array $data) ProxmoxAccess::deleteGroup($groupid)
ProxmoxAccess::roles() ProxmoxAccess::createRole(array $data) ProxmoxAccess::roleId($roleid) ProxmoxAccess::updateRole($roleid, array $data) ProxmoxAccess::deleteRole($roleid)
ProxmoxAccess::users() ProxmoxAccess::createUser(array $data) ProxmoxAccess::getUser($userid) ProxmoxAccess::updateUser($userid, array $data) ProxmoxAccess::deleteUser($userid) ProxmoxAccess::changeUserPassword(array $data)
ProxmoxCluster::cluster() ProxmoxCluster::getClusterLog() ProxmoxCluster::nextVmid($vmid = null) ProxmoxCluster::options() ProxmoxCluster::setOptions(array $data) ProxmoxCluster::resources($type = null) ProxmoxCluster::status() ProxmoxCluster::tasks()
ProxmoxCluster::listBackup() ProxmoxCluster::createBackup(array $data) ProxmoxCluster::backupId($id) ProxmoxCluster::updateBackup($id, array $data) ProxmoxCluster::deleteBackup($id)
ProxmoxCluster::config() ProxmoxCluster::listConfigNodes() ProxmoxCluster::configTotem()
ProxmoxCluster::firewall() ProxmoxCluster::firewallListAliases() ProxmoxCluster::createFirewallAliase(array $data) ProxmoxCluster::getFirewallAliasesName($name) ProxmoxCluster::updateFirewallAliase($name, array $data) ProxmoxCluster::removeFirewallAliase($name) ProxmoxCluster::firewallListGroups() ProxmoxCluster::createFirewallGroup(array $data) ProxmoxCluster::firewallGroupsGroup($group) ProxmoxCluster::createRuleFirewallGroup($group, array $data) ProxmoxCluster::removeFirewallGroup($group) ProxmoxCluster::firewallGroupsGroupPos($group, $pos) ProxmoxCluster::setFirewallGroupPos($group, $pos, array $data) ProxmoxCluster::removeFirewallGroupPos($group, $pos) ProxmoxCluster::firewallListIpset() ProxmoxCluster::createFirewallIpset(array $data) ProxmoxCluster::firewallIpsetName($name) ProxmoxCluster::addFirewallIpsetName($name, array $data) ProxmoxCluster::deleteFirewallIpsetName($name) ProxmoxCluster::firewallListRules() ProxmoxCluster::createFirewallRules(array $data) ProxmoxCluster::firewallRulesPos($pos) ProxmoxCluster::setFirewallRulesPos($pos, array $data) ProxmoxCluster::deleteFirewallRulesPos($pos) ProxmoxCluster::firewallListMacros() ProxmoxCluster::firewallListOptions() ProxmoxCluster::setFirewallOptions(array $data) ProxmoxCluster::firewallListRefs()
ProxmoxCluster::getHaGroups() ProxmoxCluster::HaGroups($group) ProxmoxCluster::getHAResources()
ProxmoxCluster::replication() ProxmoxCluster::createReplication(array $data) ProxmoxCluster::replicationId($id) ProxmoxCluster::updateReplication($id, array $data) ProxmoxCluster::deleteReplication($id)
ProxmoxPools::pools() ProxmoxPools::poolsId($poolid) ProxmoxPools::putPool($poolid, array $data)
ProxmoxStorage::storage($type = null) ProxmoxStorage::createStorage(array $data) ProxmoxStorage::getStorage($storage) ProxmoxStorage::updateStorage($storage, array $data) ProxmoxStorage::deleteStorage($storage)
ProxmoxNode::version() ProxmoxNode::getNodes() ProxmoxNode::apt($node) ProxmoxNode::aplinfo($node) ProxmoxNode::downloadTemplate($node, array $data) ProxmoxNode::dns($node) ProxmoxNode::setDns($node, array $data) ProxmoxNode::execute($node, array $data) ProxmoxNode::migrateAll($node, array $data) ProxmoxNode::netstat($node) ProxmoxNode::report($node) ProxmoxNode::rrd($node, $ds = null, $timeframe = null) ProxmoxNode::rrddata($node, $timeframe = null) ProxmoxNode::spiceShell($node, array, $data) ProxmoxNode::startAll($node, array $data) ProxmoxNode::reboot($node, array, $data) ProxmoxNode::stopAll($node, array $data) ProxmoxNode::subscription($node) ProxmoxNode::updateSubscription($node, array $data) ProxmoxNode::setSubscription($node, $data = array()) ProxmoxNode::syslog($node, $limit = null, $start = null, $since = null, $until = null) ProxmoxNode::time($node) ProxmoxNode::setTime($node, array $data) ProxmoxNode::version($node) ProxmoxNode::createVNCShell($node, array $data) ProxmoxNode::vNCWebSocket($node, $port = null, $vncticket = null)
ProxmoxNode::apt($node) ProxmoxNode::updateApt($node, array $data) ProxmoxNode::aptChangelog($node, $name = null) ProxmoxNode::aptUpdate($node) ProxmoxNode::createAptUpdate(array $data)
ProxmoxNode::ceph($node) ProxmoxNode::cephFlags($node) ProxmoxNode::setCephFlags($node, $flag, array $data) ProxmoxNode::unsetCephFlags($node, $flag) ProxmoxNode::createCephMgr($node, array $data) ProxmoxNode::destroyCephMgr($node, $id) ProxmoxNode::cephMon($node) ProxmoxNode::createCephMon($node, array $data) ProxmoxNode::destroyCephMon($node, $monid) ProxmoxNode::cephOsd($node) ProxmoxNode::createCephOsd($node, array $data) ProxmoxNode::destroyCephOsd($node, $osdid) ProxmoxNode::cephOsdIn($node, $osdid, array $data) ProxmoxNode::cephOsdOut($node, $osdid, array $data) ProxmoxNode::getCephPools($node) ProxmoxNode::createCephPool($node, array $data) ProxmoxNode::destroyCephPool($node) ProxmoxNode::cephConfig($node) ProxmoxNode::cephCrush($node) ProxmoxNode::cephDisks($node) ProxmoxNode::createCephInit($node, array $data) ProxmoxNode::cephLog($node, $limit = null, $start = null) ProxmoxNode::cephRules($node) ProxmoxNode::cephStart($node, array $data) ProxmoxNode::cephStop($node, array $data) ProxmoxNode::cephStatus($node)
ProxmoxNode::getDisks($node) ProxmoxNode::disk($node, array $data) ProxmoxNode::disksList($node) ProxmoxNode::disksSmart($node, $disk = null)
ProxmoxNode::firewall($node) ProxmoxNode::firewallRules($node) ProxmoxNode::createFirewallRule($node, $data = array()) ProxmoxNode::firewallRulesPos($node, $pos) ProxmoxNode::setFirewallRulePos($node, $pos, $data = array()) ProxmoxNode::deleteFirewallRulePos($node, $pos) ProxmoxNode::firewallRulesLog($node) ProxmoxNode::firewallRulesOptions($node) ProxmoxNode::setFirewallRuleOptions($node, $data = array())
ProxmoxNode::lxc($node) ProxmoxNode::createLxc($node, $data = array()) ProxmoxNode::lxcVmid($node, $vmid) ProxmoxNode::deleteLxc($node, $vmid) ProxmoxNode::lxcFirewall($node, $vmid) ProxmoxNode::lxcFirewallAliases($node, $vmid) ProxmoxNode::createLxcFirewallAliase($node, $vmid, $data = array()) ProxmoxNode::lxcFirewallAliasesName($node, $vmid, $name) ProxmoxNode::updateLxcFirewallAliaseName($node, $vmid, $name, $data = array()) ProxmoxNode::deleteLxcFirewallAliaseName($node, $vmid, $name) ProxmoxNode::lxcFirewallIpset($node, $vmid) ProxmoxNode::createLxcFirewallIpset($node, $vmid, $data = array()) ProxmoxNode::lxcFirewallIpsetName($node, $vmid, $name) ProxmoxNode::addLxcFirewallIpsetName($node, $vmid, $name, $data = array()) ProxmoxNode::deleteLxcFirewallIpsetName($node, $vmid, $name) ProxmoxNode::lxcFirewallIpsetNameCidr($node, $vmid, $name, $cidr) ProxmoxNode::updateLxcFirewallIpsetNameCidr($node, $vmid, $name, $cidr, $data = array()) ProxmoxNode::deleteLxcFirewallIpsetNameCidr($node, $vmid, $name, $cidr) ProxmoxNode::lxcFirewallRules($node, $vmid) ProxmoxNode::createLxcFirewallRules($node, $vmid, $data = array()) ProxmoxNode::lxcFirewallRulesPos($node, $vmid, $pos) ProxmoxNode::setLxcFirewallRulesPos($node, $vmid, $pos, $data = array()) ProxmoxNode::deleteLxcFirewallRulesPos($node, $vmid, $pos) ProxmoxNode::lxcFirewallLog($node, $vmid, $limit = null, $start = null) ProxmoxNode::lxcFirewallOptions($node, $vmid) ProxmoxNode::setLxcFirewallOptions($node, $vmid, $data = array()) ProxmoxNode::lxcSnapshot($node, $vmid) ProxmoxNode::createLxcSnapshot($node, $vmid, $data = array()) ProxmoxNode::lxcSnapname($node, $vmid, $snapname) ProxmoxNode::deleteLxcSnapshot($node, $vmid, $snapname) ProxmoxNode::lxcSnapnameConfig($node, $vmid, $snapname) ProxmoxNode::lxcSnapshotConfig($node, $vmid, $snapname, $data = array()) ProxmoxNode::lxcSnapshotRollback($node, $vmid, $snapname, $data = array()) ProxmoxNode::lxcStatus($node, $vmid) ProxmoxNode::lxcCurrent($node, $vmid) ProxmoxNode::lxcResume($node, $vmid, $data = array()) ProxmoxNode::lxcShutdown($node, $vmid, $data = array()) ProxmoxNode::lxcStart($node, $vmid, $data = array()) ProxmoxNode::lxcStop($node, $vmid, $data = array()) ProxmoxNode::lxcReboot($node, $vmid, $data = array()) ProxmoxNode::lxcSuspend($node, $vmid, $data = array()) ProxmoxNode::lxcClone($node, $vmid, $data = array()) ProxmoxNode::lxcConfig($node, $vmid) ProxmoxNode::setLxcConfig($node, $vmid, $data = array()) ProxmoxNode::lxcFeature($node, $vmid) ProxmoxNode::lxcMigrate($node, $vmid, $data = array()) ProxmoxNode::lxcResize($node, $vmid, $data = array()) ProxmoxNode::lxcRrd($node, $vmid, $ds = null, $timeframe = null) ProxmoxNode::lxcRrddata($node, $vmid, $timeframe = null) ProxmoxNode::lxcSpiceproxy($node, $vmid, $data = array()) ProxmoxNode::createLxcTemplate($node, $vmid, $data = array()) ProxmoxNode::createLxcVncproxy($node, $vmid, $data = array()) ProxmoxNode::lxcVncwebsocket($node, $vmid, $port = null, $vncticket = null)
ProxmoxNode::network($node, $type = null) ProxmoxNode::createNetwork($node, $data = array()) ProxmoxNode::revertNetwork($node) ProxmoxNode::networkIface($node, $iface) ProxmoxNode::updateNetworkIface($node, $iface, $data = array()) ProxmoxNode::deleteNetworkIface($node, $iface)
ProxmoxNode::qemu($node) ProxmoxNode::createQemu($node, $data = array()) ProxmoxNode::qemuVmid($node, $vmid) ProxmoxNode::deleteQemu($node, $vmid, $data = array()) ProxmoxNode::qemuFirewall($node, $vmid) ProxmoxNode::qemuFirewallAliases($node, $vmid) ProxmoxNode::createQemuFirewallAliase($node, $vmid, $data = array()) ProxmoxNode::qemuFirewallAliasesName($node, $vmid, $name) ProxmoxNode::updateQemuFirewallAliaseName($node, $vmid, $name, $data = array()) ProxmoxNode::deleteQemuFirewallAliaseName($node, $vmid, $name) ProxmoxNode::qemuFirewallIpset($node, $vmid) ProxmoxNode::createQemuFirewallIpset($node, $vmid, $data = array()) ProxmoxNode::qemuFirewallIpsetName($node, $vmid, $name) ProxmoxNode::addQemuFirewallIpsetName($node, $vmid, $name, $data = array()) ProxmoxNode::deleteQemuFirewallIpsetName($node, $vmid, $name) ProxmoxNode::qemuFirewallIpsetNameCidr($node, $vmid, $name, $cidr) ProxmoxNode::updateQemuFirewallIpsetNameCidr($node, $vmid, $name, $cidr, $data = array()) ProxmoxNode::deleteQemuFirewallIpsetNameCidr($node, $vmid, $name, $cidr) ProxmoxNode::qemuFirewallRules($node, $vmid) ProxmoxNode::createQemuFirewallRules($node, $vmid, $data = array()) ProxmoxNode::qemuFirewallRulesPos($node, $vmid, $pos) ProxmoxNode::updateQemuFirewallRulesPos($node, $vmid, $pos, $data = array()) ProxmoxNode::deleteQemuFirewallRulesPos($node, $vmid, $pos) ProxmoxNode::qemuFirewallLog($node, $vmid, $limit = null, $start = null) ProxmoxNode::qemuFirewallOptions($node, $vmid) ProxmoxNode::setQemuFirewallOptions($node, $vmid, $data = array()) ProxmoxNode::qemuFirewallRefs($node, $vmid) ProxmoxNode::qemuSnapshot($node, $vmid) ProxmoxNode::createQemuSnapshot($node, $vmid, $data = array()) ProxmoxNode::qemuSnapname($node, $vmid, $snapname) ProxmoxNode::deleteQemuSnapshot($node, $vmid, $snapname) ProxmoxNode::qemuSnapnameConfig($node, $vmid, $snapname) ProxmoxNode::updateQemuSnapshotConfig($node, $vmid, $snapname, $data = array()) ProxmoxNode::QemuSnapshotRollback($node, $vmid, $snapname, $data = array()) ProxmoxNode::qemuStatus($node, $vmid) ProxmoxNode::qemuCurrent($node, $vmid) ProxmoxNode::qemuResume($node, $vmid, $data = array()) ProxmoxNode::qemuReset($node, $vmid, $data = array()) ProxmoxNode::qemuShutdown($node, $vmid, $data = array()) ProxmoxNode::qemuStart($node, $vmid, $data = array()) ProxmoxNode::qemuStop($node, $vmid, $data = array()) ProxmoxNode::qemuReboot($node, $vmid, $data = array()) ProxmoxNode::qemuSuspend($node, $vmid, $data = array()) ProxmoxNode::qemuAgent($node, $vmid, $data = array()) ProxmoxNode::qemuAgentExec($node, $vmid, $data = array()) ProxmoxNode::qemuAgentSetUserPassword($node, $vmid, $data = array()) ProxmoxNode::qemuClone($node, $vmid, $data = array()) ProxmoxNode::qemuConfig($node, $vmid) ProxmoxNode::createQemuConfig($node, $vmid, $data = array()) ProxmoxNode::setQemuConfig($node, $vmid, $data = array()) ProxmoxNode::qemuFeature($node, $vmid) ProxmoxNode::qemuMigrate($node, $vmid, $data = array()) ProxmoxNode::qemuMonitor($node, $vmid, $data = array()) ProxmoxNode::qemuMoveDisk($node, $vmid, $data = array()) ProxmoxNode::qemuPending($node, $vmid) ProxmoxNode::qemuResize($node, $vmid, $data = array()) ProxmoxNode::qemuRrd($node, $vmid, $ds = null, $timeframe = null) ProxmoxNode::qemuRrddata($node, $vmid, $timeframe = null) ProxmoxNode::qemuSendkey($node, $vmid, $data = array()) ProxmoxNode::qemuSpiceproxy($node, $vmid, $data = array()) ProxmoxNode::createQemuTemplate($node, $vmid, $data = array()) ProxmoxNode::qemuUnlink($node, $vmid, $data = array()) ProxmoxNode::createQemuVncproxy($node, $vmid, $data = array()) ProxmoxNode::qemuVncwebsocket($node, $vmid, $port = null, $vncticket = null)
ProxmoxNode::replication($node) ProxmoxNode::replicationId($node, $id) ProxmoxNode::replicationLog($node, $id) ProxmoxNode::replicationScheduleNow($node, $id, $data = array()) ProxmoxNode::replicationStatus($node, $id)
ProxmoxNode::scan($node) ProxmoxNode::scanGlusterfs($node) ProxmoxNode::scanIscsi($node) ProxmoxNode::scanLvm($node) ProxmoxNode::scanLvmthin($node) ProxmoxNode::scanUsb($node) ProxmoxNode::scanZfs($node)
ProxmoxNode::Services($node) ProxmoxNode::listService($node, $service) ProxmoxNode::servicesReload($node, $service, $data = array()) ProxmoxNode::servicesRestart($node, $service, $data = array()) ProxmoxNode::servicesStart($node, $service, $data = array()) ProxmoxNode::servicesStop($node, $service, $data = array()) ProxmoxNode::servicesState($node, $service)
ProxmoxNode::storage($node, $content = null, $storage = null, $target = null, $enabled = null) ProxmoxNode::getStorage($node, $storage) ProxmoxNode::listStorageContent($node, $storage) ProxmoxNode::storageContent($node, $storage, $data = array()) ProxmoxNode::storageContentVolume($node, $storage, $volume) ProxmoxNode::copyStorageContentVolume($node, $storage, $volume, $data = array()) ProxmoxNode::deleteStorageContentVolume($node, $storage, $volume) ProxmoxNode::storageRRD($node) ProxmoxNode::storageRRDdata($node) ProxmoxNode::storageStatus($node) ProxmoxNode::storageUpload($node, $data = array())
ProxmoxNode::Tasks($node, $errors = null, $limit = null, $vmid = null, $start = null) ProxmoxNode::tasksUpid($node, $upid) ProxmoxNode::tasksStop($node, $upid) ProxmoxNode::tasksLog($node, $upid, $limit = null, $start = null) ProxmoxNode::tasksStatus($node, $upid)
Nodes::createVzdump($node, $data = array()) Nodes::VzdumpExtractConfig($node)
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.