<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Documentation on Cloudmin — Virtual Machine Management for Linux</title><link>https://cloudmin.com/docs/</link><description>Recent content in Documentation on Cloudmin — Virtual Machine Management for Linux</description><generator>Hugo -- 0.168.0</generator><language>en-us</language><lastBuildDate>Sun, 01 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://cloudmin.com/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>FAQ</title><link>https://cloudmin.com/docs/faq/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/faq/</guid><description>&lt;h2 id="faq"&gt;FAQ&lt;/h2&gt;
&lt;h3 id="general"&gt;General&lt;/h3&gt;
&lt;blockquote&gt;
&lt;h5 id="what-is-cloudmin-10"&gt;What is Cloudmin 10?&lt;/h5&gt;
&lt;/blockquote&gt;
&lt;p&gt;A rewrite of Cloudmin around libvirt, the standard Linux API for managing virtual machines. It manages QEMU/KVM guests on a Linux host from inside Webmin, and adds images, templates, jobs, permissions, consoles, snapshots, clones and backups on top of libvirt. See &lt;a href="https://cloudmin.com/docs/getting-started/what-is-cloudmin-10/"&gt;What is Cloudmin 10&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h5 id="is-cloudmin-10-released"&gt;Is Cloudmin 10 released?&lt;/h5&gt;
&lt;/blockquote&gt;
&lt;p&gt;Not yet. It is in development, and the installer uses the &lt;code&gt;unstable&lt;/code&gt; channel. The &lt;a href="https://cloudmin.com/docs/roadmap/"&gt;feature status&lt;/a&gt; page lists what is implemented and what is still planned.&lt;/p&gt;</description></item><item><title>OS Support</title><link>https://cloudmin.com/docs/os-support/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/os-support/</guid><description>&lt;p&gt;Cloudmin runs on top of Webmin and manages virtual machines through libvirt, so it needs a Linux host with KVM, systemd and the distribution&amp;rsquo;s libvirt and QEMU packages. The automated installer and the host configuration are tested on a small set of current systems.&lt;/p&gt;
&lt;h3 id="supported-host-systems"&gt;Supported host systems&lt;/h3&gt;
&lt;p&gt;Cloudmin 10 installs on these hosts, on x86-64 or ARM64, with CPU virtualization extensions enabled and a working &lt;code&gt;/dev/kvm&lt;/code&gt;:&lt;/p&gt;
&lt;h4 id="enterprise-linux-and-derivatives"&gt;Enterprise Linux and derivatives&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Rocky Linux 10 on x86_64 and aarch64&lt;/li&gt;
&lt;li&gt;AlmaLinux 10 on x86_64 and aarch64&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Rocky Linux and AlmaLinux also use EPEL and CRB for dependencies, which the installer enables.&lt;/p&gt;</description></item><item><title>Professional Features</title><link>https://cloudmin.com/docs/professional-features/</link><pubDate>Thu, 29 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/professional-features/</guid><description>&lt;p&gt;Cloudmin GPL manages the host it runs on, with an unlimited number of virtual machines. Cloudmin Pro adds features for that host. Cloudmin Connect GPL and Pro are separate planned products for managing a fleet of Cloudmin hosts.&lt;/p&gt;
&lt;p&gt;GPL and Pro share the same API, libvirt adapter and UI. Pro implementations install under &lt;code&gt;server-manager/pro&lt;/code&gt;. Security fixes, safe cold migration, data export and restore are never Pro-only.&lt;/p&gt;
&lt;h3 id="available-host-features"&gt;Available host features&lt;/h3&gt;
&lt;h4 id="setup-scripts"&gt;Custom setup scripts&lt;/h4&gt;
&lt;p&gt;&lt;span class="badge badge-pill badge-pro" title="Available with the Cloudmin Pro extension"&gt;Pro&lt;/span&gt;
Preparation and final setup scripts run inside a new guest, before and after its software installation. Scripts can be entered directly or read from an allowed host file. Guest packages and Virtualmin GPL/Pro installation remain available in Cloudmin GPL. See &lt;a href="https://cloudmin.com/docs/virtual-machines/templates-and-plans/"&gt;Templates and plans&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Feature Status and Roadmap</title><link>https://cloudmin.com/docs/roadmap/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/roadmap/</guid><description>&lt;p&gt;Cloudmin 10 is developed in the open and is not released yet. This page lists what works today and what is still planned, so the rest of the documentation can be read in context. Items marked &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
are design targets, not available features.&lt;/p&gt;
&lt;h3 id="implemented"&gt;Implemented&lt;/h3&gt;
&lt;h4 id="host"&gt;Host&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Automated installer for Rocky Linux 10, AlmaLinux 10, Debian 13 and Ubuntu 26.04 on x86-64 and ARM64, with repository setup, package groups, managed swap and a readiness report.&lt;/li&gt;
&lt;li&gt;Cloudmin-Config prepares KVM, modular or monolithic libvirt, a default storage pool, a persistent NAT network, EFI firmware, Webmin, nftables and Fail2ban, and boots an isolated KVM appliance to verify the host.&lt;/li&gt;
&lt;li&gt;Host readiness checks with actionable errors, shown on the overview.&lt;/li&gt;
&lt;li&gt;Direct libvirt discovery through &lt;code&gt;Sys::Virt&lt;/code&gt;, without parsing &lt;code&gt;virsh&lt;/code&gt; output.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="images"&gt;Images&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Catalogue of AlmaLinux, Alpine, Arch, CentOS Stream, Debian, Fedora, openSUSE, Rocky Linux and Ubuntu cloud images for the host architecture, verified against the publishers&amp;rsquo; SHA-256 or SHA-512 checksums.&lt;/li&gt;
&lt;li&gt;Background imports from HTTPS URLs, browser uploads and host files into directory, filesystem and NFS pools, with progress pages, batch downloads, bulk deletion and custom catalogue entries.&lt;/li&gt;
&lt;li&gt;Installer ISOs, with an empty system disk and the ISO in a read-only CD/DVD drive. Experimental.&lt;/li&gt;
&lt;li&gt;Image capture from an existing Linux guest, in Cloudmin Pro.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="virtual-machines"&gt;Virtual machines&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Creation from cloud images or ISOs with firmware selection, independent disks and recoverable jobs; cloud-init account setup, SSH keys, DHCP or static IPv4 and IPv6 including on-link gateways.&lt;/li&gt;
&lt;li&gt;Machine templates and resource plans, including Default Template, Default Plan and Virtualmin GPL and Pro templates.&lt;/li&gt;
&lt;li&gt;Guest packages and Virtualmin GPL/Pro installation run inside the guest after cloud-init. Preparation and final setup scripts require Cloudmin Pro. &lt;span class="badge badge-pill badge-pro" title="Available with the Cloudmin Pro extension"&gt;Pro&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;Power controls, pause and resume, confirmed hard reset, autostart, live CPU and balloon memory changes, offline resource maximums and boot settings.&lt;/li&gt;
&lt;li&gt;Disk and network interface changes, disk growth, ISO insertion and ejection, and deletion with explicit disk selection and shared-storage checks.&lt;/li&gt;
&lt;li&gt;Guest password reset through the QEMU Guest Agent.&lt;/li&gt;
&lt;li&gt;Disk snapshots with creation, restore, deletion, per-machine history, a host overview and guest-agent preparation.&lt;/li&gt;
&lt;li&gt;Full clones from stopped or running guests with fresh identities, or unchanged copies left stopped.&lt;/li&gt;
&lt;li&gt;Full backups and restore with hourly to yearly schedules and retention, to local, SSH and S3 destinations, plus cloud destinations in Pro.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="access"&gt;Access&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Browser SSH terminals with pinned host keys, host-managed per-guest keys, remembered ports and optional automatic connection.&lt;/li&gt;
&lt;li&gt;Serial consoles with recorded output replay and graphical VNC consoles that work during boot.&lt;/li&gt;
&lt;li&gt;Guest Webmin through the host&amp;rsquo;s Servers Index proxy for Virtualmin guests behind NAT, root-only and behind a trust warning.&lt;/li&gt;
&lt;li&gt;Delegation of individual virtual machines to Webmin users with separate grants; read-only mode blocks changes and consoles.&lt;/li&gt;
&lt;li&gt;Live status over authenticated WebSockets: power state, guest agent, SSH reachability, resource usage and guest filesystem usage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="networking-and-storage"&gt;Networking and storage&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;NAT, routed and isolated virtual networks, and guided host bridge creation through NetworkManager, Netplan or ifupdown with connectivity confirmation and automatic rollback.&lt;/li&gt;
&lt;li&gt;Storage pool and volume inventory; directory, filesystem and NFS pools for creation, cloning, backups and imports; registered LVM volume groups and thin pools for creation, cloning, backups, restore and native snapshots, with raw guest disks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="platform"&gt;Platform&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Durable jobs with reservations, progress, cancellation and recovery after a controller restart.&lt;/li&gt;
&lt;li&gt;One versioned JSON API shared by the UI, the &lt;code&gt;api.pl&lt;/code&gt; command line and remote clients.&lt;/li&gt;
&lt;li&gt;Isolated systemd workers without root for downloads, inspection, seeds, consoles and relays.&lt;/li&gt;
&lt;li&gt;Compatibility wrappers for frame-based themes and older Cloudmin function names.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="planned"&gt;Planned&lt;/h3&gt;
&lt;h4 id="first-supported-release"&gt;First supported release&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Clean-install validation across the full host matrix, including physical ARM64. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;One fully tested shared storage path, such as NFS on every supported host. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;VLAN tags on guest interfaces and anti-spoofing through libvirt network filters. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;Scheduled snapshots. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;Adopting guests defined outside Cloudmin. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;Machine-readable API schema and generated API documentation. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;Catalogue signature verification, an update schedule and an end-of-life policy. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;Legacy Cloudmin 9 KVM import with a per-machine report, cutover and rollback. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;A stable Cloudmin 10 package repository. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="cloudmin-pro"&gt;Cloudmin Pro&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Projects, quotas, self-service creation, usage tracking and automation credentials. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="cloudmin-connect-gpl"&gt;Cloudmin Connect GPL&lt;/h4&gt;
&lt;p&gt;Cloudmin Connect is a separate planned fleet product. GPL will add host registration, combined inventory and search, consoles and terminals, resource views, safe cold moves and host backup/restore actions. It will have host and fleet VM limits; the numbers are not decided. Existing guests remain visible and recoverable after a limit is exceeded. &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
&lt;/p&gt;</description></item><item><title>License Manager</title><link>https://cloudmin.com/docs/getting-started/license-manager/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/getting-started/license-manager/</guid><description>&lt;p&gt;Open &lt;strong&gt;System → Settings → License Manager&lt;/strong&gt; to view, recheck, replace or deregister a Cloudmin Pro license. GPL does not require a license. Host administrators can change licenses; read-only users can view their status.&lt;/p&gt;
&lt;h3 id="renewing-or-changing-a-license"&gt;Renewing or changing a license&lt;/h3&gt;
&lt;p&gt;Renew through your &lt;a href="https://www.virtualmin.com/account/"&gt;Virtualmin account&lt;/a&gt;, then select &lt;strong&gt;Recheck License&lt;/strong&gt;. To use another license, enter its serial number and key. Cloudmin validates the replacement before saving it and updating existing Cloudmin package repository credentials. Credentials are stored in &lt;code&gt;/etc/cloudmin-license&lt;/code&gt;. Administrators who can change the license can see its saved key; read-only users cannot.&lt;/p&gt;</description></item><item><title>Automated Installation</title><link>https://cloudmin.com/docs/installation/automated/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/installation/automated/</guid><description>&lt;h3 id="recommended-host-specifications"&gt;Recommended host specifications&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A freshly installed &lt;a href="https://cloudmin.com/docs/os-support/"&gt;supported OS&lt;/a&gt; with CPU virtualization extensions and a working &lt;code&gt;/dev/kvm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Enough memory for the host plus the guests you plan to run; the installer can add managed swap&lt;/li&gt;
&lt;li&gt;Local disk space for images and guest disks, or an NFS mount you intend to use as a pool&lt;/li&gt;
&lt;li&gt;A fully qualified host name if you plan to install Virtualmin inside guests and reach them by name&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="installation"&gt;Installation&lt;/h3&gt;
&lt;p&gt;Install Cloudmin with the automated &lt;code&gt;cloudmin-install.sh&lt;/code&gt; script. It is the only supported installation method; there is no manual package walkthrough yet. If you haven&amp;rsquo;t already, read the &lt;a href="https://cloudmin.com/download/"&gt;Download&lt;/a&gt; page first, as it covers the steps most installations need.&lt;/p&gt;</description></item><item><title>Host Requirements</title><link>https://cloudmin.com/docs/installation/host-requirements/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/installation/host-requirements/</guid><description>&lt;p&gt;The installer satisfies these requirements on a supported host. This page explains what they are, so readiness failures and optional features make sense.&lt;/p&gt;
&lt;h3 id="core"&gt;Core&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;KVM.&lt;/strong&gt; CPU virtualization extensions enabled in firmware and a working &lt;code&gt;/dev/kvm&lt;/code&gt;. Inside another hypervisor, nested virtualization must be enabled. Installation readiness boots a real isolated KVM appliance rather than only checking that &lt;code&gt;/dev/kvm&lt;/code&gt; exists.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;systemd 247 or later&lt;/strong&gt; with &lt;code&gt;systemd-run&lt;/code&gt; and working &lt;code&gt;nss-systemd&lt;/code&gt; user lookup. Cloudmin&amp;rsquo;s isolated workers and console relays depend on it; if a worker cannot start with its restrictions, the operation fails rather than running the tool as root.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;libvirt and QEMU&lt;/strong&gt; from the distribution, with the Perl &lt;code&gt;Sys::Virt&lt;/code&gt; bindings. Cloudmin connects as root to the system connection (&lt;code&gt;qemu:///system&lt;/code&gt;). Distribution socket permissions are kept. Rocky Linux and AlmaLinux also use EPEL for dependencies; Debian supplies &lt;code&gt;libsys-virt-perl&lt;/code&gt; in main and Ubuntu in universe.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Webmin&lt;/strong&gt; at the version released with Cloudmin 10. Cloudmin uses Webmin&amp;rsquo;s authentication, permissions, UI widgets and HTTP APIs, and development installations need current Webmin sources for widgets such as &lt;code&gt;ui_action_button&lt;/code&gt; and grouped image choices.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EFI firmware&lt;/strong&gt; packages for UEFI guests, and the system CA certificate bundle for catalogue downloads.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="optional-tools"&gt;Optional tools&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Requires&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Custom cloud image inspection&lt;/td&gt;
&lt;td&gt;libguestfs and its Perl bindings, YAML::XS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloning and prepared clones&lt;/td&gt;
&lt;td&gt;libguestfs, its Perl bindings, bsdtar, YAML::XS; access to &lt;code&gt;/dev/kvm&lt;/code&gt; through the &lt;code&gt;kvm&lt;/code&gt; group and the running kernel and modules for the appliance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image capture (Pro)&lt;/td&gt;
&lt;td&gt;libguestfs, its Perl bindings, YAML::XS 0.69 or later, bsdtar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSH terminal&lt;/td&gt;
&lt;td&gt;Webmin&amp;rsquo;s Terminal module, &lt;code&gt;Net::WebSocket::Server&lt;/code&gt;, OpenSSH, Python 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Graphical and serial consoles&lt;/td&gt;
&lt;td&gt;Webmin&amp;rsquo;s Terminal module, &lt;code&gt;Net::WebSocket::Server&lt;/code&gt;, Python 3; a VNC display for the graphical console&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serial output recording&lt;/td&gt;
&lt;td&gt;&lt;code&gt;virtlogd&lt;/code&gt; with &lt;code&gt;stdio_handler = &amp;quot;logd&amp;quot;&lt;/code&gt;, a positive &lt;code&gt;max_size&lt;/code&gt; and 1–32 backups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Host bridges on ifupdown&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bridge-utils&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backup archives&lt;/td&gt;
&lt;td&gt;&lt;code&gt;qemu-img&lt;/code&gt;, Python 3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The root controller supplies a private kernel copy to each libguestfs worker; host kernel permissions stay unchanged.&lt;/p&gt;</description></item><item><title>What Is Cloudmin 10</title><link>https://cloudmin.com/docs/getting-started/what-is-cloudmin-10/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/getting-started/what-is-cloudmin-10/</guid><description>&lt;p&gt;Cloudmin 10 is a rewrite of Cloudmin around libvirt, the standard Linux API for managing virtual machines. It supports QEMU/KVM and runs as a module inside Webmin, using Webmin&amp;rsquo;s authentication, navigation, permissions and UI widgets.&lt;/p&gt;
&lt;p&gt;The goal is simple: install Cloudmin on a supported Linux system, choose or supply an image, and get a safe, manageable KVM virtual machine without manual host setup. Cloudmin is useful on its own and integrates with Virtualmin for people who run hosting inside their guests.&lt;/p&gt;</description></item><item><title>How to Create a Virtual Machine</title><link>https://cloudmin.com/docs/getting-started/how-to-create-a-virtual-machine/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/getting-started/how-to-create-a-virtual-machine/</guid><description>&lt;p&gt;This guide walks through creating a KVM virtual machine from a cloud image on a freshly installed Cloudmin host.&lt;/p&gt;
&lt;h3 id="before-you-start"&gt;Before you start&lt;/h3&gt;
&lt;p&gt;Log in to Webmin as a host administrator and open &lt;strong&gt;Cloudmin&lt;/strong&gt;. The overview shows the host checks; fix any failed requirement first. Nothing else is needed: the installer already prepared a default storage pool, a NAT network and the EFI firmware, and the image catalogue is built in.&lt;/p&gt;</description></item><item><title>How to Delegate Access</title><link>https://cloudmin.com/docs/getting-started/how-to-delegate-access/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/getting-started/how-to-delegate-access/</guid><description>&lt;p&gt;Cloudmin uses Webmin users and module permissions. A host administrator sees and manages everything; a delegated user sees only the virtual machines assigned to them, with the actions you grant.&lt;/p&gt;
&lt;h3 id="host-administrators"&gt;Host administrators&lt;/h3&gt;
&lt;p&gt;Granting the Cloudmin module to a Webmin user gives host administrator access by default, and existing users without saved Cloudmin permissions keep it. Creation, cloning, hardware editing, deletion, snapshots, backups, jobs, images, storage, networking and Module Configuration all require a host administrator.&lt;/p&gt;</description></item><item><title>Templates and Plans</title><link>https://cloudmin.com/docs/virtual-machines/templates-and-plans/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/virtual-machines/templates-and-plans/</guid><description>&lt;p&gt;Machine templates and resource plans are the presets behind the creation form. A template saves image, storage, network, guest access, software and boot defaults. A plan saves CPU, memory and system disk size. Both fill the form, where administrators can still change every value for one creation.&lt;/p&gt;
&lt;h3 id="where-to-find-them"&gt;Where to find them&lt;/h3&gt;
&lt;p&gt;Both pages are under &lt;strong&gt;System Settings&lt;/strong&gt; in the Cloudmin menu. The template editor uses a section selector with Previous, Next and Save and Next controls; resource plans use a collapsible Basic plan details section. Both use Webmin&amp;rsquo;s standard form widgets, Webmin configuration files, host access controls, form tokens, locking and audit logging. Reading presets never creates configuration files.&lt;/p&gt;</description></item><item><title>Virtualmin Templates and Guest Software</title><link>https://cloudmin.com/docs/virtual-machines/virtualmin-templates/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/virtual-machines/virtualmin-templates/</guid><description>&lt;p&gt;The Software section of a template or creation request can install packages, run scripts and install Virtualmin inside a new guest. Cloudmin tracks the work from the host and keeps the virtual machine if setup fails.&lt;/p&gt;
&lt;h3 id="guest-software-setup"&gt;Guest software setup&lt;/h3&gt;
&lt;p&gt;Guest setup requires a cloud image and &lt;strong&gt;Start after creation&lt;/strong&gt;. After cloud-init finishes, a dormant helper service inside the guest runs as root in this order: the preparation script, package installation, the optional Virtualmin installation, and the final setup script. Scripts use &lt;code&gt;/bin/sh -e&lt;/code&gt; and can switch users for application work. A failed or interrupted step stops without repeating scripts and keeps the virtual machine, with the error naming the log location inside the guest.&lt;/p&gt;</description></item><item><title>Managing Virtual Machines</title><link>https://cloudmin.com/docs/virtual-machines/managing-virtual-machines/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/virtual-machines/managing-virtual-machines/</guid><description>&lt;p&gt;Select a virtual machine from the guest selector to open its details, actions and Remote Access above the host-wide navigation links. Everything below is also available through the &lt;a href="https://cloudmin.com/docs/development/virtual-machine-api/"&gt;API and command line&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="details-and-live-status"&gt;Details and live status&lt;/h3&gt;
&lt;p&gt;The details page shows power state, guest agent status, SSH reachability, addresses, individual disks, guest filesystems, network interfaces, and disk and network transfer rates. Power state and inventory update through libvirt events over an authenticated WebSocket; browsers do not poll. CPU usage is normalized to the assigned CPUs, and memory usage comes from ten-second balloon reports and excludes reclaimable cache. Filesystem usage and guest OS details require the QEMU Guest Agent and refresh about once a minute.&lt;/p&gt;</description></item><item><title>Installer ISOs</title><link>https://cloudmin.com/docs/virtual-machines/installer-iso/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/virtual-machines/installer-iso/</guid><description>&lt;p&gt;Besides cloud images, Cloudmin can create a virtual machine that boots an installer ISO so you can install an operating system the traditional way.&lt;/p&gt;
&lt;div class="alert alert-warning"&gt;
&lt;i class="wm wm-fw wm-sm wm-exclamation-triangle"&gt;&lt;/i&gt; &lt;strong&gt;Experimental&lt;/strong&gt;&lt;br&gt;
Installer ISO support is experimental. Alpine 3.24.2 ARM64 has passed a full installation and boot with the ISO ejected. Other installers still need testing.
&lt;/div&gt;
&lt;h3 id="import-the-iso"&gt;Import the ISO&lt;/h3&gt;
&lt;p&gt;Open &lt;strong&gt;Image Manager&lt;/strong&gt; and import the ISO from an HTTPS URL, a browser upload or a file on the host. Imports accept installer ISOs alongside standalone QCOW2 and raw disk images. A host-file import must be readable without root; use a browser upload for a private file.&lt;/p&gt;</description></item><item><title>Cloning</title><link>https://cloudmin.com/docs/virtual-machines/cloning/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/virtual-machines/cloning/</guid><description>&lt;p&gt;Cloning copies a virtual machine&amp;rsquo;s private writable disks into a new, independent machine. Choose &lt;strong&gt;Clone virtual machine&lt;/strong&gt; from a guest&amp;rsquo;s action menu or &lt;strong&gt;Clone Virtual Machine&lt;/strong&gt; on &lt;strong&gt;Edit Virtual Machine&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="requirements"&gt;Requirements&lt;/h3&gt;
&lt;p&gt;Cloning works into directory, filesystem, NFS, LVM and LVM-thin pools; copies placed in an LVM pool become raw logical volumes. It requires libguestfs and its Perl bindings, bsdtar, and exactly one Linux installation that libguestfs can inspect. Prepared clones also require YAML::XS, enabled cloud-init inside the guest and one network interface.&lt;/p&gt;</description></item><item><title>Snapshots</title><link>https://cloudmin.com/docs/virtual-machines/snapshots/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/virtual-machines/snapshots/</guid><description>&lt;p&gt;Disk snapshots save the state of a virtual machine&amp;rsquo;s disks so you can return to it later. Open &lt;strong&gt;Snapshots&lt;/strong&gt; from a guest&amp;rsquo;s menu for its history, or the host overview to see snapshots across all virtual machines.&lt;/p&gt;
&lt;h3 id="creating-a-snapshot"&gt;Creating a snapshot&lt;/h3&gt;
&lt;p&gt;Snapshots cover private raw or QCOW2 file disks and managed LVM disks. On a running guest, Cloudmin asks the QEMU Guest Agent to freeze filesystem writes before the snapshot and thaws it afterwards, so the copy is filesystem-consistent. When the agent is not available you can choose an explicit clean shutdown first, or take an unprepared snapshot of the running disks. Filesystem freezing does not guarantee database consistency.&lt;/p&gt;</description></item><item><title>Image Manager</title><link>https://cloudmin.com/docs/images/image-manager/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/images/image-manager/</guid><description>&lt;p&gt;Image Manager holds the disk images that virtual machines are created from: catalogue cloud images, your own imports and installer ISOs. Importing an image does not create a virtual machine; use &lt;strong&gt;Create Virtual Machine&lt;/strong&gt; to choose a catalogue image or an existing import.&lt;/p&gt;
&lt;h3 id="the-catalogue"&gt;The catalogue&lt;/h3&gt;
&lt;p&gt;The built-in catalogue lists cloud images of AlmaLinux, Alpine, Arch, CentOS Stream, Debian, Fedora, openSUSE, Rocky Linux and Ubuntu for the host&amp;rsquo;s architecture. Each entry records a stable ID, name, operating system, architecture, disk format, download size, minimum disk capacity, firmware and guest capabilities, release and support dates, and source URL. Catalogue downloads use HTTPS and are verified against the publisher&amp;rsquo;s SHA-256 or SHA-512 checksum manifest before import. Detached signature verification is &lt;span class="badge badge-pill badge-warning badge-planned" title="Not implemented yet in Cloudmin 10"&gt;Planned&lt;/span&gt;
.&lt;/p&gt;</description></item><item><title>Creating Images from Virtual Machines</title><link>https://cloudmin.com/docs/images/creating-images-from-virtual-machines/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/images/creating-images-from-virtual-machines/</guid><description>&lt;p&gt;&lt;span class="badge badge-pill badge-pro" title="Available with the Cloudmin Pro extension"&gt;Pro&lt;/span&gt;
&lt;strong&gt;Create Image&lt;/strong&gt; turns an existing virtual machine&amp;rsquo;s system disk into a reusable image in Image Manager. It is part of the Cloudmin Pro extension; the shared module rejects capture when the extension is absent, including direct API requests.&lt;/p&gt;
&lt;h3 id="capturing-an-image"&gt;Capturing an image&lt;/h3&gt;
&lt;p&gt;Choose &lt;strong&gt;Create image&lt;/strong&gt; from a guest&amp;rsquo;s action menu or &lt;strong&gt;Create Image&lt;/strong&gt; on &lt;strong&gt;Edit Virtual Machine&lt;/strong&gt;. Enter an image name and a destination file pool (directory, filesystem or NFS), choose whether to remove login credentials for all local accounts, then choose whether to keep the source running with guest-agent preparation or shut it down cleanly before copying. Capture reuses the clone preparation, recovery and isolated guest preparation code, and requires libguestfs with its Perl bindings, YAML::XS 0.69 or later and bsdtar on the host. Host administrator access is required, and read-only sessions cannot submit a capture.&lt;/p&gt;</description></item><item><title>SSH Terminal</title><link>https://cloudmin.com/docs/remote-access/ssh-terminal/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/remote-access/ssh-terminal/</guid><description>&lt;p&gt;Open &lt;strong&gt;Remote Access → SSH terminal&lt;/strong&gt; on a running virtual machine to connect from your browser using its host-managed key or a guest password. The terminal requires Webmin&amp;rsquo;s Terminal module, &lt;code&gt;Net::WebSocket::Server&lt;/code&gt;, OpenSSH, Python 3 and systemd with &lt;code&gt;systemd-run&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="connecting"&gt;Connecting&lt;/h3&gt;
&lt;p&gt;The connection form offers the guest&amp;rsquo;s current IP addresses, the SSH port, the username and the authentication method. The default username comes from the virtual machine&amp;rsquo;s creation settings when available, and the &lt;strong&gt;SSH service&lt;/strong&gt; card shows whether SSH answers on the saved port before you connect. Choose the host SSH key created for this virtual machine or password login; passwords are typed into the terminal and are never saved or logged by Cloudmin.&lt;/p&gt;</description></item><item><title>Serial and Graphical Consoles</title><link>https://cloudmin.com/docs/remote-access/consoles/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/remote-access/consoles/</guid><description>&lt;p&gt;The serial and graphical consoles reach a local virtual machine without a guest network, SSH service or guest agent. Both require the virtual machine&amp;rsquo;s console permission, a local libvirt connection, Webmin&amp;rsquo;s Terminal module, &lt;code&gt;Net::WebSocket::Server&lt;/code&gt;, Python 3 and systemd with &lt;code&gt;systemd-run&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="graphical-console"&gt;Graphical console&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Remote Access → Graphical console&lt;/strong&gt; shows the guest&amp;rsquo;s screen and lets you use its keyboard and mouse, including during boot and OS installation. It requires a VNC display on the guest. Webmin authenticates the connection and libvirt opens the display directly, so VNC passwords stay on the host and no public VNC port is needed. Use &lt;strong&gt;Fullscreen&lt;/strong&gt; for a larger view and the keyboard menu to send shortcuts such as &lt;strong&gt;Ctrl+Alt+Delete&lt;/strong&gt; or &lt;strong&gt;Ctrl+Alt+F1&lt;/strong&gt;; their effect depends on the guest. Select the tab again after a connection closes.&lt;/p&gt;</description></item><item><title>Webmin Access</title><link>https://cloudmin.com/docs/remote-access/webmin-access/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/remote-access/webmin-access/</guid><description>&lt;p&gt;The &lt;strong&gt;Webmin&lt;/strong&gt; tab in Remote Access opens a Virtualmin guest&amp;rsquo;s Webmin from the host, either directly in a new tab or embedded through the host&amp;rsquo;s Webmin Servers Index proxy. The embedded view works for guests on private NAT networks that your browser cannot reach.&lt;/p&gt;
&lt;h3 id="who-can-use-it"&gt;Who can use it&lt;/h3&gt;
&lt;p&gt;Only the host&amp;rsquo;s &lt;code&gt;root&lt;/code&gt; Webmin login can register guests or use the Webmin tab, and Servers Index permissions apply on top, including read-only restrictions. Other users with creation permission can create virtual machines, but registration is skipped and their Remote Access page has no Webmin tab.&lt;/p&gt;</description></item><item><title>Virtual Networks and Bridges</title><link>https://cloudmin.com/docs/networking/virtual-networks-and-bridges/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/networking/virtual-networks-and-bridges/</guid><description>&lt;p&gt;Open &lt;strong&gt;Networking&lt;/strong&gt; to see libvirt networks, host bridges, their addressing and the virtual machines attached to each. Cloudmin uses libvirt to manage virtual networks and guest interfaces, and Webmin&amp;rsquo;s network backends to create host bridges.&lt;/p&gt;
&lt;h3 id="virtual-networks"&gt;Virtual networks&lt;/h3&gt;
&lt;p&gt;The installer creates a persistent default NAT network after checking host routes, without changing the host&amp;rsquo;s management interface. On the Networking page you can create more NAT, routed and isolated networks. Networks referenced by stopped or running guests are protected from deletion.&lt;/p&gt;</description></item><item><title>Storage Pools</title><link>https://cloudmin.com/docs/storage/storage-pools/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/storage/storage-pools/</guid><description>&lt;p&gt;Storage in Cloudmin is a set of named libvirt pools. &lt;strong&gt;Storage&lt;/strong&gt; lists each pool with its type, state, capacity, free space and volumes, and Module Configuration chooses the columns shown for pools and volumes.&lt;/p&gt;
&lt;h3 id="supported-pools-today"&gt;Supported pools today&lt;/h3&gt;
&lt;p&gt;The installer prepares a default directory pool and tests it with a volume creation and deletion. Virtual machine creation, extra disks, cloning, snapshots, backups and restore work with directory, filesystem and NFS pools, using QCOW2 or raw files, and with LVM and LVM-thin pools, using raw logical volumes. Imported images, installation media, captured images and copied UEFI variable files always live in a file pool, so keep at least one directory, filesystem or NFS pool active. Mount NFS storage before using it as a pool, and mount remote storage before using a directory on it as a backup destination.&lt;/p&gt;</description></item><item><title>Backups and Restore</title><link>https://cloudmin.com/docs/backup-and-migration/backups-and-restore/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/backup-and-migration/backups-and-restore/</guid><description>&lt;p&gt;Open &lt;strong&gt;Backups and Restore&lt;/strong&gt; from the Cloudmin menu, or choose &lt;strong&gt;Back up virtual machines&lt;/strong&gt; from a machine&amp;rsquo;s actions. Each selected machine gets a separate full archive whose filename includes the guest name, the UTC date and the job ID.&lt;/p&gt;
&lt;h3 id="what-a-backup-contains"&gt;What a backup contains&lt;/h3&gt;
&lt;p&gt;A full backup archives the virtual machine&amp;rsquo;s managed disks, whether QCOW2 or raw files or LVM logical volumes, its libvirt definition, UEFI variables for firmware-backed guests and a manifest with checksums. Backups use the same source preparation and recovery as &lt;a href="https://cloudmin.com/docs/virtual-machines/cloning/"&gt;cloning&lt;/a&gt;: a stopped source is archived directly, and a running source is frozen through the guest agent and snapshotted, through temporary overlays for file disks or native snapshots with a brief pause for LVM disks, or shut down cleanly if you prefer. A running source with both file and LVM disks needs the clean shutdown. Unlike clones, backups preserve the guest identity and license credentials.&lt;/p&gt;</description></item><item><title>Migrating from Cloudmin 9</title><link>https://cloudmin.com/docs/backup-and-migration/migrating-from-cloudmin-9/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/backup-and-migration/migrating-from-cloudmin-9/</guid><description>&lt;div class="alert alert-warning"&gt;
&lt;i class="wm wm-fw wm-sm wm-exclamation-triangle"&gt;&lt;/i&gt; &lt;strong&gt;Planned feature&lt;/strong&gt;&lt;br&gt;
The legacy import tool described here is a design target and is not available yet. Cloudmin 10 does not upgrade a Cloudmin 9 host in place, and a package upgrade never imports existing virtual machines.
&lt;/div&gt;
&lt;h3 id="why-import-is-explicit"&gt;Why import is explicit&lt;/h3&gt;
&lt;p&gt;Cloudmin 10 breaks internal compatibility with Cloudmin 9 on purpose, but it must not break user data. Existing KVM installations get a visible, tested import and rollback path, and Cloudmin 9 stays available and maintained for Xen users while the KVM line matures.&lt;/p&gt;</description></item><item><title>Virtual Machine API and CLI</title><link>https://cloudmin.com/docs/development/virtual-machine-api/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/virtual-machine-api/</guid><description>&lt;p&gt;The web interface, the command line and remote clients share one versioned API for virtual machine creation, power controls, management, cloning, backups, restore and host storage. The UI calls it internally; &lt;code&gt;api.cgi&lt;/code&gt; exposes it over HTTP. The &lt;code&gt;cloudmin&lt;/code&gt; command uses the same API on the host.&lt;/p&gt;
&lt;h3 id="requests-and-responses"&gt;Requests and responses&lt;/h3&gt;
&lt;p&gt;Send a JSON object or form fields with an &lt;code&gt;action&lt;/code&gt;. Responses are JSON with &lt;code&gt;version: 1&lt;/code&gt; and either &lt;code&gt;result&lt;/code&gt; or &lt;code&gt;error&lt;/code&gt;. Always check the &lt;code&gt;error&lt;/code&gt; field: Webmin&amp;rsquo;s CGI server returns HTTP 200 for JSON responses. Actions that make changes require POST and a signed &lt;code&gt;token&lt;/code&gt; returned by the &lt;code&gt;options&lt;/code&gt; action, which also lists the images, pools, networks, templates and plans available to the caller.&lt;/p&gt;</description></item><item><title>Command Line API</title><link>https://cloudmin.com/docs/development/command-line/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/command-line/</guid><description>&lt;p&gt;Run &lt;code&gt;cloudmin&lt;/code&gt; as root on the Cloudmin host. Lists use tables by default; &lt;code&gt;--multiline&lt;/code&gt; shows details. &lt;code&gt;--json&lt;/code&gt; returns an object with &lt;code&gt;command&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt; and &lt;code&gt;data&lt;/code&gt; fields; &lt;code&gt;data&lt;/code&gt; holds the API result. Success exits 0, operation failures exit 1, and usage errors exit 2.&lt;/p&gt;
&lt;p&gt;Commands wait for jobs by default; &lt;code&gt;--no-wait&lt;/code&gt; returns the job ID immediately. Passwords and license credentials are read from files or standard input.&lt;/p&gt;
&lt;p&gt;Each command has its own page with syntax, options and examples. &lt;code&gt;cloudmin help COMMAND&lt;/code&gt; shows the same text on the host, and &lt;code&gt;cloudmin COMMAND --help&lt;/code&gt; shows the syntax alone.&lt;/p&gt;</description></item><item><title>Privilege Separation</title><link>https://cloudmin.com/docs/development/privilege-separation/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/privilege-separation/</guid><description>&lt;p&gt;Cloudmin&amp;rsquo;s page handlers run as root, like other Webmin modules, but the risky work does not. Image and provisioning tools, consoles and relays run as separate processes without root privileges, even when the administrator is logged into Webmin as root.&lt;/p&gt;
&lt;h3 id="what-runs-as-root"&gt;What runs as root&lt;/h3&gt;
&lt;p&gt;Webmin, Cloudmin&amp;rsquo;s CGI scripts, the command line, the status collector and the controller jobs. They use normal Webmin initialization, authentication and permission checks, validate form tokens and input, record progress and make the libvirt changes. The module never installs host packages from a page request; &lt;code&gt;cloudmin-install&lt;/code&gt; and Cloudmin-Config prepare the host.&lt;/p&gt;</description></item><item><title>list-systems</title><link>https://cloudmin.com/docs/development/api-programs/list-systems/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-systems/</guid><description>&lt;h3 id="lists-the-virtual-machines-on-this-host"&gt;Lists the virtual machines on this host&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-systems [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name name]*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--id uuid]*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--state running|stopped|paused]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--template ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--plan ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;With no filters, lists the virtual machines visible to the caller, ordered by name. The default table shows each machine&amp;rsquo;s name, power state, CPU count, memory allocation and known IP addresses.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt; to select exact names or UUIDs. Repeat either option to select several machines. Multiple values of the same option are alternatives; different filters must all match. For example, two &lt;code&gt;--name&lt;/code&gt; options with &lt;code&gt;--state running&lt;/code&gt; show only the named machines that are running. An empty result means no machines matched.&lt;/p&gt;</description></item><item><title>get-system</title><link>https://cloudmin.com/docs/development/api-programs/get-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/get-system/</guid><description>&lt;h3 id="shows-a-virtual-machine-and-its-saved-settings"&gt;Shows a virtual machine and its saved settings&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin get-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Select one virtual machine with &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. The result combines its inventory summary with its saved configuration, including resources, disks, network interfaces and boot settings. Use &lt;code&gt;list-systems&lt;/code&gt; to find its name or UUID.&lt;/p&gt;
&lt;p&gt;For a running machine, the result also includes running resource settings and any differences from the saved settings. Pending changes take effect after a full shutdown and start; an operating system reboot may not apply them. Use &lt;code&gt;restart-system&lt;/code&gt; to perform that full restart.&lt;/p&gt;</description></item><item><title>start-system</title><link>https://cloudmin.com/docs/development/api-programs/start-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/start-system/</guid><description>&lt;h3 id="starts-a-stopped-virtual-machine"&gt;Starts a stopped virtual machine&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin start-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Select a stopped virtual machine with &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. It starts with its saved hardware configuration, applying settings that were waiting for the next start. This command does not change whether the machine starts automatically when the host boots; use &lt;code&gt;modify-system --autostart yes&lt;/code&gt; for that.&lt;/p&gt;
&lt;p&gt;By default, waits up to two minutes for the host to report the machine running. That state does not mean the guest operating system, network, cloud-init or software installation is ready. &lt;code&gt;--no-wait&lt;/code&gt; returns once the start request is accepted. It does not return a background job ID.&lt;/p&gt;</description></item><item><title>shutdown-system</title><link>https://cloudmin.com/docs/development/api-programs/shutdown-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/shutdown-system/</guid><description>&lt;h3 id="shuts-down-a-virtual-machine-cleanly"&gt;Shuts down a virtual machine cleanly&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin shutdown-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Requests a clean shutdown of the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. The guest operating system must respond to the shutdown request. Its disks, saved hardware settings and automatic startup setting are retained.&lt;/p&gt;
&lt;p&gt;By default, waits up to two minutes for the host to report the machine stopped. A timeout fails the command but does not cancel the shutdown request: the guest can still stop later. Cloudmin never turns a timed-out clean shutdown into a forced power-off.&lt;/p&gt;</description></item><item><title>reboot-system</title><link>https://cloudmin.com/docs/development/api-programs/reboot-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/reboot-system/</guid><description>&lt;h3 id="requests-a-guest-operating-system-reboot"&gt;Requests a guest operating system reboot&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin reboot-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Requests an operating system reboot of the running machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. This is a clean reboot request; the guest must respond to it. The command returns when libvirt accepts the request, without waiting for the guest to reboot or its services to become ready.&lt;/p&gt;
&lt;p&gt;An operating system reboot does not guarantee that pending CPU, memory or boot configuration changes take effect. Use &lt;code&gt;restart-system&lt;/code&gt; for a complete shutdown and start with the saved hardware configuration. Use &lt;code&gt;reset-system&lt;/code&gt; only when an immediate hardware reset is intended.&lt;/p&gt;</description></item><item><title>pause-system</title><link>https://cloudmin.com/docs/development/api-programs/pause-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/pause-system/</guid><description>&lt;h3 id="pauses-a-running-virtual-machine"&gt;Pauses a running virtual machine&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin pause-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pauses execution of a running machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. Its memory and virtual devices remain allocated on the host. This is not a saved state on disk and does not survive stopping the machine or shutting down the host.&lt;/p&gt;
&lt;p&gt;The guest cannot process requests while paused. Network connections and application operations may time out. Resume execution with &lt;code&gt;unpause-system&lt;/code&gt;; use &lt;code&gt;shutdown-system&lt;/code&gt; when the goal is to stop the operating system cleanly and release its resources.&lt;/p&gt;</description></item><item><title>unpause-system</title><link>https://cloudmin.com/docs/development/api-programs/unpause-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/unpause-system/</guid><description>&lt;h3 id="resumes-a-paused-virtual-machine"&gt;Resumes a paused virtual machine&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin unpause-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Resumes execution of a paused machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;, using its existing memory and running hardware state. It does not boot the operating system again or apply settings saved for the next start.&lt;/p&gt;
&lt;p&gt;By default, waits for the host to report the machine running. &lt;code&gt;--no-wait&lt;/code&gt; returns after the resume request is accepted. Applications may need to reconnect after the pause, so a running state does not prove that all services have recovered.&lt;/p&gt;</description></item><item><title>restart-system</title><link>https://cloudmin.com/docs/development/api-programs/restart-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/restart-system/</guid><description>&lt;h3 id="shuts-down-and-starts-with-the-saved-settings"&gt;Shuts down and starts with the saved settings&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin restart-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Performs a full shutdown and start of the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. Use this to apply saved CPU, memory or boot settings that &lt;code&gt;get-system&lt;/code&gt; shows as pending. A guest operating system reboot alone may leave those changes pending.&lt;/p&gt;
&lt;p&gt;The operation runs as a background job. If the machine is running, the worker requests a clean shutdown and waits up to two minutes. A timeout fails the job without forcing the guest off or starting it again. A delayed guest shutdown may still finish after the job reports failure.&lt;/p&gt;</description></item><item><title>reset-system</title><link>https://cloudmin.com/docs/development/api-programs/reset-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/reset-system/</guid><description>&lt;h3 id="resets-virtual-hardware-immediately"&gt;Resets virtual hardware immediately&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin reset-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Immediately resets the virtual hardware of the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. The guest has no opportunity to stop applications or flush pending writes. Unsaved data can be lost. &lt;code&gt;--yes&lt;/code&gt; is required to confirm this operation.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;reboot-system&lt;/code&gt; for a clean operating system reboot. A hardware reset does not guarantee that pending saved hardware changes are applied; use a full shutdown and start for those changes.&lt;/p&gt;</description></item><item><title>poweroff-system</title><link>https://cloudmin.com/docs/development/api-programs/poweroff-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/poweroff-system/</guid><description>&lt;h3 id="powers-off-immediately-without-a-clean-shutdown"&gt;Powers off immediately without a clean shutdown&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin poweroff-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Immediately stops the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;, without asking the guest operating system to shut down. Unsaved data can be lost. &lt;code&gt;--yes&lt;/code&gt; is required. Use &lt;code&gt;shutdown-system&lt;/code&gt; when the guest can shut down cleanly.&lt;/p&gt;
&lt;p&gt;The machine definition, disks and automatic startup setting are retained. Use &lt;code&gt;start-system&lt;/code&gt; to start the machine again.&lt;/p&gt;</description></item><item><title>modify-system</title><link>https://cloudmin.com/docs/development/api-programs/modify-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/modify-system/</guid><description>&lt;h3 id="changes-saved-resources-boot-settings-or-automatic-startup"&gt;Changes saved resources, boot settings or automatic startup&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin modify-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--autostart yes|no]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--boot value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--bootmenu yes|no]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--changes-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--cpu-limit number]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--cpus number]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--desc value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--enable-live]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--memory size]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--memory-limit size]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Changes selected settings of the machine identified by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. Omitted fields keep their existing values. The command reads the current configuration revision before submitting the update, so a conflicting concurrent edit can still cause the request to fail.&lt;/p&gt;</description></item><item><title>passwd-system</title><link>https://cloudmin.com/docs/development/api-programs/passwd-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/passwd-system/</guid><description>&lt;h3 id="changes-an-existing-guest-account-password-through-its-agent"&gt;Changes an existing guest account password through its agent&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin passwd-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --password-file file|-
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --user value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Changes the login password of an existing account inside the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. &lt;code&gt;--user&lt;/code&gt; names the guest account, not a Webmin user. The machine must be running with a responding QEMU guest agent. This command cannot create an account or reset a password in a stopped guest.&lt;/p&gt;</description></item><item><title>create-system</title><link>https://cloudmin.com/docs/development/api-programs/create-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/create-system/</guid><description>&lt;h3 id="creates-a-virtual-machine-from-a-cloud-image-or-installer-iso"&gt;Creates a virtual machine from a cloud image or installer ISO&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin create-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--address-mode dhcp|static]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--after-script-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--after-script-mode none|file|inline]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--after-script-path value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--auth-type keys|password|both]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--autostart | --no-autostart]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--before-script-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--before-script-mode none|file|inline]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--before-script-path value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--cpus number]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--desc value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--disk size]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dns value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--firmware auto|efi|bios]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--gateway4 value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--gateway6 value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--host-ssh-key | --no-host-ssh-key]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--hostname value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--image ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--install-source cloud|iso]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--ipv4 value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--ipv6 value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--license-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--license-serial-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--mac value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--memory size]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--network ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--packages value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--password-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--plan ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--pool ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--require-fqdn | --no-require-fqdn]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--review]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--software none|virtualmin-gpl|virtualmin-pro]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--ssh-key value]*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--ssh-keys-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--start | --no-start]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--template ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--username value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--virtualmin-bundle LAMP|LEMP]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--virtualmin-postgres | --no-virtualmin-postgres]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--virtualmin-ssl | --no-virtualmin-ssl]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--virtualmin-type full|mini]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--webmin-register | --no-webmin-register]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Creates a new virtual machine named by &lt;code&gt;--name&lt;/code&gt;. This name must be unused on the host. The operation runs as a background job; by default the command waits for creation and any selected software setup to finish. &lt;code&gt;--no-wait&lt;/code&gt; returns the job ID instead.&lt;/p&gt;</description></item><item><title>clone-system</title><link>https://cloudmin.com/docs/development/api-programs/clone-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/clone-system/</guid><description>&lt;h3 id="copies-a-virtual-machine-to-independent-disks"&gt;Copies a virtual machine to independent disks&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin clone-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--address-mode dhcp|static]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--auth-type keys|password|both]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--autostart | --no-autostart]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--confirm-license]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--confirm-unchanged]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--cpus number]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--desc value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--disk size]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dns value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--gateway4 value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--gateway6 value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--host-ssh-key | --no-host-ssh-key]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--hostname value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--ipv4 value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--ipv6 value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--mac value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--memory size]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--mode prepared|unchanged]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--network ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --new-name value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--nvram-mode fresh|copy]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--password-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--plan ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--pool ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--require-fqdn | --no-require-fqdn]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--shutdown]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--ssh-key value]*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--ssh-keys-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--start | --no-start]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--template ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--username value]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Select the source with &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;, and give the destination an unused &lt;code&gt;--new-name&lt;/code&gt;. Writable disks are copied to independent volumes with no backing files. The copy includes the source&amp;rsquo;s applications and data.&lt;/p&gt;</description></item><item><title>delete-system</title><link>https://cloudmin.com/docs/development/api-programs/delete-system/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/delete-system/</guid><description>&lt;h3 id="deletes-a-virtual-machine-and-only-the-selected-disk-targets"&gt;Deletes a virtual machine and only the selected disk targets&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin delete-system [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--disk value]*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--shutdown]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Removes the definition of the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. &lt;code&gt;--yes&lt;/code&gt; is required. Disk deletion is a separate choice: with no &lt;code&gt;--disk&lt;/code&gt; options, every disk is kept, including the cloud-init seed. Repeat &lt;code&gt;--disk&lt;/code&gt; with attached target names such as &lt;code&gt;vda&lt;/code&gt; to permanently delete only those disks. Use &lt;code&gt;list-disks&lt;/code&gt; to inspect the targets first.&lt;/p&gt;</description></item><item><title>list-disks</title><link>https://cloudmin.com/docs/development/api-programs/list-disks/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-disks/</guid><description>&lt;h3 id="lists-a-virtual-machines-disks-and-removable-drives"&gt;Lists a virtual machine&amp;rsquo;s disks and removable drives&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-disks [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lists saved disk and removable-drive attachments for the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. The default table shows the target, device type, role, format and path. Use it to distinguish writable disks, cloud-init seed media and CD/DVD drives before changing storage.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;--target&lt;/code&gt; in disk commands refers to a guest device such as &lt;code&gt;vda&lt;/code&gt; or &lt;code&gt;sda&lt;/code&gt;, not a pool volume name, image ID or host path. &lt;code&gt;--multiline&lt;/code&gt; or &lt;code&gt;--json&lt;/code&gt; includes available volume details. &lt;code&gt;--name-only&lt;/code&gt; and &lt;code&gt;--id-only&lt;/code&gt; both print attachment targets, one per line.&lt;/p&gt;</description></item><item><title>create-disk</title><link>https://cloudmin.com/docs/development/api-programs/create-disk/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/create-disk/</guid><description>&lt;h3 id="creates-and-attaches-a-disk"&gt;Creates and attaches a disk&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin create-disk [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--disk size]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--image ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --pool ID|name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Creates a disk in &lt;code&gt;--pool&lt;/code&gt; and attaches it to the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. Specify &lt;code&gt;--disk&lt;/code&gt; for an empty disk, or &lt;code&gt;--image&lt;/code&gt; for an independent copy of a ready imported image. File pools use QCOW2; LVM and LVM-thin pools use raw logical volumes. Catalogue entries must be imported before they can be used as additional disks.&lt;/p&gt;</description></item><item><title>attach-disk</title><link>https://cloudmin.com/docs/development/api-programs/attach-disk/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/attach-disk/</guid><description>&lt;h3 id="attaches-an-unused-storage-volume"&gt;Attaches an unused storage volume&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin attach-disk [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --pool ID|name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --volume value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Attaches an existing unused volume to the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. &lt;code&gt;--pool&lt;/code&gt; identifies its storage pool, and &lt;code&gt;--volume&lt;/code&gt; is the volume&amp;rsquo;s name inside that pool, not a host filesystem path. Use this when reusing a disk kept by &lt;code&gt;detach-disk&lt;/code&gt; or machine deletion.&lt;/p&gt;
&lt;p&gt;The volume must be a supported raw or QCOW2 disk and pass ownership and dependency checks. Cloudmin protects imported images and disks referenced by other machines or storage. To create a separate copy of an imported image, use &lt;code&gt;create-disk --image&lt;/code&gt; instead.&lt;/p&gt;</description></item><item><title>detach-disk</title><link>https://cloudmin.com/docs/development/api-programs/detach-disk/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/detach-disk/</guid><description>&lt;h3 id="detaches-a-disk-while-keeping-its-data"&gt;Detaches a disk while keeping its data&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin detach-disk [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --target value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Removes an attachment from the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt; while keeping the storage volume and its data. &lt;code&gt;--target&lt;/code&gt; is an attached device name from &lt;code&gt;list-disks&lt;/code&gt;, such as &lt;code&gt;vdb&lt;/code&gt;. This is different from &lt;code&gt;delete-disk&lt;/code&gt;, which also removes the volume permanently.&lt;/p&gt;
&lt;p&gt;Before detaching a disk in use, stop the guest applications using it and unmount it. For live removal, Cloudmin waits for the device to disappear from libvirt&amp;rsquo;s running definition before updating the saved configuration. If the guest does not acknowledge removal, the job can fail and require recovery.&lt;/p&gt;</description></item><item><title>delete-disk</title><link>https://cloudmin.com/docs/development/api-programs/delete-disk/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/delete-disk/</guid><description>&lt;h3 id="detaches-and-permanently-deletes-one-disk"&gt;Detaches and permanently deletes one disk&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin delete-disk [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --target value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Detaches and permanently deletes one managed disk from the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. &lt;code&gt;--target&lt;/code&gt; must be an attached disk target from &lt;code&gt;list-disks&lt;/code&gt;. &lt;code&gt;--yes&lt;/code&gt; confirms deletion. Other disks and the machine itself are retained.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;detach-disk&lt;/code&gt; when the data should be kept. Deletion cannot be undone by job recovery. Imported images, shared disks and disks with protected dependencies are refused. Snapshot or checkpoint history can also block the operation.&lt;/p&gt;</description></item><item><title>resize-disk</title><link>https://cloudmin.com/docs/development/api-programs/resize-disk/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/resize-disk/</guid><description>&lt;h3 id="grows-a-disk-to-the-specified-total-capacity"&gt;Grows a disk to the specified total capacity&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin resize-disk [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --disk size
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --target value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Grows an attached disk on the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. &lt;code&gt;--target&lt;/code&gt; identifies the disk, and &lt;code&gt;--disk&lt;/code&gt; is its new total capacity, not the amount to add. Bare sizes are GiB; for example, &lt;code&gt;--disk 50G&lt;/code&gt; makes the disk 50 GiB.&lt;/p&gt;
&lt;p&gt;Shrinking is not supported. Snapshots, checkpoints, shared storage or unsupported disk types can block growth. File disks can grow through libvirt while the guest runs. LVM and LVM-thin disks require the guest to be shut down first.&lt;/p&gt;</description></item><item><title>insert-media</title><link>https://cloudmin.com/docs/development/api-programs/insert-media/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/insert-media/</guid><description>&lt;h3 id="inserts-an-iso-in-an-existing-cddvd-drive"&gt;Inserts an ISO in an existing CD/DVD drive&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin insert-media [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --pool ID|name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --target value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --volume value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Inserts an ISO volume into an existing CD/DVD drive on the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. Find the drive target with &lt;code&gt;list-disks&lt;/code&gt;, then supply that &lt;code&gt;--target&lt;/code&gt;, the &lt;code&gt;--pool&lt;/code&gt; containing the ISO and its &lt;code&gt;--volume&lt;/code&gt; name. The volume name is not an image ID or a host path.&lt;/p&gt;</description></item><item><title>eject-media</title><link>https://cloudmin.com/docs/development/api-programs/eject-media/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/eject-media/</guid><description>&lt;h3 id="ejects-media-without-removing-the-drive"&gt;Ejects media without removing the drive&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin eject-media [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --target value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ejects the media from the CD/DVD target on the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. Find the target with &lt;code&gt;list-disks&lt;/code&gt;. The drive stays attached, and the ISO volume remains in its storage pool for later use.&lt;/p&gt;
&lt;p&gt;This does not detach a writable disk or change the saved boot order. Supported guests can eject media while running. The command waits for the hardware job by default; &lt;code&gt;--no-wait&lt;/code&gt; returns the job ID.&lt;/p&gt;</description></item><item><title>list-interfaces</title><link>https://cloudmin.com/docs/development/api-programs/list-interfaces/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-interfaces/</guid><description>&lt;h3 id="lists-a-virtual-machines-network-interfaces"&gt;Lists a virtual machine&amp;rsquo;s network interfaces&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-interfaces [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lists saved network interfaces for the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. The default table shows each MAC address, source type, network or bridge, device model and link state. &lt;code&gt;--multiline&lt;/code&gt; and &lt;code&gt;--json&lt;/code&gt; include available bandwidth and other interface settings.&lt;/p&gt;
&lt;p&gt;Interface commands identify an existing interface by its MAC address, not a guest name such as &lt;code&gt;eth0&lt;/code&gt;. &lt;code&gt;--name-only&lt;/code&gt; and &lt;code&gt;--id-only&lt;/code&gt; therefore both print MAC addresses. Use &lt;code&gt;list-networks&lt;/code&gt; to find network choices for adding or moving an interface.&lt;/p&gt;</description></item><item><title>add-interface</title><link>https://cloudmin.com/docs/development/api-programs/add-interface/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/add-interface/</guid><description>&lt;h3 id="adds-a-virtio-network-interface"&gt;Adds a virtio network interface&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin add-interface [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--mac value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --network ID|name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Adds a virtio network interface to the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. &lt;code&gt;--network&lt;/code&gt; selects an available virtual network or host bridge from &lt;code&gt;list-networks&lt;/code&gt;. It accepts a network key, UUID, unambiguous name or &lt;code&gt;bridge:NAME&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Cloudmin generates a MAC address unless &lt;code&gt;--mac&lt;/code&gt; supplies one. The new interface can be attached live when the guest and host support it. The guest may need network configuration for the new device; this command does not rewrite its cloud-init seed or assign an IP address inside it.&lt;/p&gt;</description></item><item><title>modify-interface</title><link>https://cloudmin.com/docs/development/api-programs/modify-interface/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/modify-interface/</guid><description>&lt;h3 id="changes-an-interfaces-network-link-or-bandwidth"&gt;Changes an interface&amp;rsquo;s network, link or bandwidth&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin modify-interface [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--inbound-kib number]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--link up|down]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --mac value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--network ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--outbound-kib number]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Changes the interface identified by &lt;code&gt;--mac&lt;/code&gt; on the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. Find the MAC address with &lt;code&gt;list-interfaces&lt;/code&gt;. Omitted fields keep their current values; &lt;code&gt;--mac&lt;/code&gt; selects the interface and does not change its address.&lt;/p&gt;</description></item><item><title>delete-interface</title><link>https://cloudmin.com/docs/development/api-programs/delete-interface/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/delete-interface/</guid><description>&lt;h3 id="removes-a-network-interface"&gt;Removes a network interface&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin delete-interface [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --mac value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Removes the interface identified by &lt;code&gt;--mac&lt;/code&gt; from the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. Use &lt;code&gt;list-interfaces&lt;/code&gt; to find its MAC address. This removes the virtual device; it does not delete the host network or bridge.&lt;/p&gt;
&lt;p&gt;Removing an interface can disconnect the guest, including an SSH session using that interface. To disconnect it temporarily while keeping its configuration, use &lt;code&gt;modify-interface --link down&lt;/code&gt; instead. Guest network configuration is not rewritten automatically.&lt;/p&gt;</description></item><item><title>list-snapshots</title><link>https://cloudmin.com/docs/development/api-programs/list-snapshots/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-snapshots/</guid><description>&lt;h3 id="lists-snapshots-for-the-host-or-one-virtual-machine"&gt;Lists snapshots for the host or one virtual machine&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-snapshots [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name name | --id uuid]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;With no machine selector, lists snapshots across the host. Supply &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt; to limit the list to one virtual machine. &lt;code&gt;--id&lt;/code&gt; is the machine UUID; a restore point&amp;rsquo;s own identifier is passed as &lt;code&gt;--snapshot&lt;/code&gt; to restore or delete commands.&lt;/p&gt;
&lt;p&gt;The default table shows snapshot ID, machine, label, state and creation time. &lt;code&gt;--multiline&lt;/code&gt; or &lt;code&gt;--json&lt;/code&gt; provides detailed records. &lt;code&gt;--id-only&lt;/code&gt; and &lt;code&gt;--name-only&lt;/code&gt; both print snapshot IDs, since labels need not be unique.&lt;/p&gt;</description></item><item><title>create-snapshot</title><link>https://cloudmin.com/docs/development/api-programs/create-snapshot/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/create-snapshot/</guid><description>&lt;h3 id="creates-a-disk-snapshot"&gt;Creates a disk snapshot&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin create-snapshot [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--desc value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --label value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--mode prepared|unprepared]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--restart]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--shutdown]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Creates a disk restore point for the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. &lt;code&gt;--label&lt;/code&gt; is required; &lt;code&gt;--desc&lt;/code&gt; adds an optional description. The label describes the restore point, while its generated ID is used for later restore and deletion.&lt;/p&gt;
&lt;p&gt;The default &lt;code&gt;--mode prepared&lt;/code&gt; uses the guest agent to freeze filesystems briefly when the machine is running. &lt;code&gt;--shutdown&lt;/code&gt; permits a clean shutdown when the agent is unavailable. It does not force a shutdown when agent preparation is available. A stopped guest does not need an agent. Add &lt;code&gt;--restart&lt;/code&gt; to start the machine after a successful snapshot if it was stopped for the operation.&lt;/p&gt;</description></item><item><title>restore-snapshot</title><link>https://cloudmin.com/docs/development/api-programs/restore-snapshot/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/restore-snapshot/</guid><description>&lt;h3 id="restores-a-saved-snapshot"&gt;Restores a saved snapshot&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin restore-snapshot [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--restart]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--shutdown]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --snapshot value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Restores the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt; to the restore point identified by &lt;code&gt;--snapshot&lt;/code&gt;. Use &lt;code&gt;list-snapshots&lt;/code&gt; to obtain that ID. &lt;code&gt;--yes&lt;/code&gt; confirms replacing current disk contents and saved hardware settings with the snapshot&amp;rsquo;s state.&lt;/p&gt;
&lt;p&gt;The machine must be stopped, or &lt;code&gt;--shutdown&lt;/code&gt; must permit a clean shutdown first. Add &lt;code&gt;--restart&lt;/code&gt; to start it after a successful restore. Without that flag, it remains stopped. A failed clean shutdown does not become a forced power-off.&lt;/p&gt;</description></item><item><title>delete-snapshot</title><link>https://cloudmin.com/docs/development/api-programs/delete-snapshot/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/delete-snapshot/</guid><description>&lt;h3 id="deletes-a-snapshot-while-keeping-current-disk-data"&gt;Deletes a snapshot while keeping current disk data&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin delete-snapshot [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --snapshot value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Removes the restore point identified by &lt;code&gt;--snapshot&lt;/code&gt; from the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. &lt;code&gt;--yes&lt;/code&gt; is required. Use &lt;code&gt;list-snapshots&lt;/code&gt; to select the snapshot ID, rather than its label.&lt;/p&gt;
&lt;p&gt;Deleting a file snapshot merges its disk layers. Deleting an LVM snapshot removes its saved volumes. Both preserve the machine&amp;rsquo;s current disk contents and hardware settings. The selected restore point is no longer available afterward.&lt;/p&gt;</description></item><item><title>list-backups</title><link>https://cloudmin.com/docs/development/api-programs/list-backups/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-backups/</guid><description>&lt;h3 id="lists-completed-backup-archives"&gt;Lists completed backup archives&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-backups [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lists completed backup archives recorded by this Cloudmin host. The table includes backup job ID, source machine name, creation time, archive size and destination. Use the ID with &lt;code&gt;inspect-backup --backup&lt;/code&gt; before restoring.&lt;/p&gt;
&lt;p&gt;This is the local backup inventory, not a scan of every destination. An archive removed outside Cloudmin can still have a record here; inspection verifies that it is available and usable. Backups created on another host can be inspected by supplying their destination and filename directly.&lt;/p&gt;</description></item><item><title>backup-systems</title><link>https://cloudmin.com/docs/development/api-programs/backup-systems/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/backup-systems/</guid><description>&lt;h3 id="creates-a-full-backup-of-one-virtual-machine"&gt;Creates a full backup of one virtual machine&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin backup-systems [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--compression | --no-compression]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-access-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-account value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-bucket value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-ca-file value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-endpoint value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-host value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-key-file value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --dest-mode local|ssh|s3|gcs|azure|bb|dropbox|drive
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-password-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --dest-path value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-port number]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-project value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-refresh-token-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-region value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-secret-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-session-token-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-subscription value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-user value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--shutdown]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Creates one complete virtual machine backup per command. Select the machine with &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. The archive includes writable disks, the saved hardware definition and supported firmware state. It retains the guest&amp;rsquo;s identity and login settings for restoration.&lt;/p&gt;</description></item><item><title>inspect-backup</title><link>https://cloudmin.com/docs/development/api-programs/inspect-backup/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/inspect-backup/</guid><description>&lt;h3 id="verifies-a-backup-archive-before-restoring-it"&gt;Verifies a backup archive before restoring it&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin inspect-backup [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--backup value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-access-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-account value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-bucket value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-ca-file value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-endpoint value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-host value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-key-file value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-mode local|ssh|s3|gcs|azure|bb|dropbox|drive]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-password-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-path value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-port number]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-project value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-refresh-token-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-region value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-secret-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-session-token-file file|-]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-subscription value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--dest-user value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--filename value]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Retrieves and verifies a backup before restoration. &lt;code&gt;--backup&lt;/code&gt; selects a backup job ID from &lt;code&gt;list-backups&lt;/code&gt; and uses its saved destination. To inspect an archive that is not in this host&amp;rsquo;s inventory, supply destination options and &lt;code&gt;--filename&lt;/code&gt; instead. The filename is the archive&amp;rsquo;s name within the destination, not the destination directory itself.&lt;/p&gt;</description></item><item><title>restore-systems</title><link>https://cloudmin.com/docs/development/api-programs/restore-systems/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/restore-systems/</guid><description>&lt;h3 id="restores-an-inspected-backup-with-its-original-identity"&gt;Restores an inspected backup with its original identity&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin restore-systems [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --inspection value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --pool ID|name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Restores one backup that has already completed &lt;code&gt;inspect-backup&lt;/code&gt;. &lt;code&gt;--inspection&lt;/code&gt; is the inspection job ID, and &lt;code&gt;--pool&lt;/code&gt; selects the destination storage pool. &lt;code&gt;--yes&lt;/code&gt; confirms restoring the archived machine and disks.&lt;/p&gt;
&lt;p&gt;Restoration preserves the original machine name, UUID, MAC addresses, guest credentials and supported firmware state. It refuses a conflicting existing name or UUID even if that machine is stopped. This command is for recovering a machine; use &lt;code&gt;clone-system&lt;/code&gt; when you need another machine with a new identity.&lt;/p&gt;</description></item><item><title>list-images</title><link>https://cloudmin.com/docs/development/api-programs/list-images/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-images/</guid><description>&lt;h3 id="lists-imported-and-catalogue-images"&gt;Lists imported and catalogue images&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-images [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lists ready imported images and available catalogue images that can be selected for machine creation. The default table shows ID, name and format. &lt;code&gt;--multiline&lt;/code&gt; or &lt;code&gt;--json&lt;/code&gt; includes the available image metadata and compatibility information.&lt;/p&gt;
&lt;p&gt;Imported images use their stored image ID. Catalogue entries use &lt;code&gt;catalogue:IMAGE_ID&lt;/code&gt;; &lt;code&gt;create-system&lt;/code&gt; downloads or reuses the selected catalogue image as part of creation. An unambiguous display name is also accepted by image-selection options, but use the ID when names are duplicated.&lt;/p&gt;</description></item><item><title>list-networks</title><link>https://cloudmin.com/docs/development/api-programs/list-networks/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-networks/</guid><description>&lt;h3 id="lists-usable-virtual-networks-and-host-bridges"&gt;Lists usable virtual networks and host bridges&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-networks [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lists available virtual networks and host bridges that Cloudmin offers for guest network interfaces. The default table shows a selection key, name, type and forwarding mode. Use it before &lt;code&gt;create-system&lt;/code&gt;, &lt;code&gt;add-interface&lt;/code&gt; or &lt;code&gt;modify-interface&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A libvirt network key has the form &lt;code&gt;network:UUID&lt;/code&gt;; a host bridge uses &lt;code&gt;bridge:NAME&lt;/code&gt;. &lt;code&gt;--id-only&lt;/code&gt; prints these selection keys, not just bare UUIDs. &lt;code&gt;--name-only&lt;/code&gt; prints display names. Network options also accept a UUID or an unambiguous name.&lt;/p&gt;</description></item><item><title>get-host</title><link>https://cloudmin.com/docs/development/api-programs/get-host/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/get-host/</guid><description>&lt;h3 id="shows-host-capabilities"&gt;Shows host capabilities&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin get-host [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Shows host capabilities reported by Cloudmin, including relevant virtualization and image-handling support. Use this to check the host side of a creation or management requirement before choosing guest settings.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;--multiline&lt;/code&gt; expands the capability fields, and &lt;code&gt;--json&lt;/code&gt; returns structured data for scripts.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;list-pools&lt;/code&gt;, &lt;code&gt;list-networks&lt;/code&gt; and &lt;code&gt;list-images&lt;/code&gt; for selectable resources. &lt;code&gt;cloudmin api options&lt;/code&gt; returns the complete raw options response, including templates and plans, when a script needs those choices.&lt;/p&gt;</description></item><item><title>create-image</title><link>https://cloudmin.com/docs/development/api-programs/create-image/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/create-image/</guid><description>&lt;h3 id="creates-a-reusable-image-from-a-virtual-machine-cloudmin-pro"&gt;Creates a reusable image from a virtual machine (Cloudmin Pro)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin create-image [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--name name | --id uuid)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--clean-credentials yes|no]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --image-name value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --pool ID|name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--shutdown]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Captures a reusable image from the machine selected by &lt;code&gt;--name&lt;/code&gt; or &lt;code&gt;--id&lt;/code&gt;. &lt;code&gt;--image-name&lt;/code&gt; names the new image and &lt;code&gt;--pool&lt;/code&gt; selects its storage pool. This operation requires Cloudmin Pro. Use &lt;code&gt;backup-systems&lt;/code&gt; instead to preserve a complete machine for restoration.&lt;/p&gt;</description></item><item><title>list-jobs</title><link>https://cloudmin.com/docs/development/api-programs/list-jobs/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-jobs/</guid><description>&lt;h3 id="lists-recent-and-unfinished-jobs"&gt;Lists recent and unfinished jobs&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-jobs [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lists recent and unfinished jobs recorded by Cloudmin. Jobs include creation, software setup, hardware changes, cloning, snapshots, image capture and backup operations. The default table shows ID, name, operation, state and phase.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;--multiline&lt;/code&gt; for details, or &lt;code&gt;--json&lt;/code&gt; for scripts. Results exclude private requests, credentials and recovery backups. &lt;code&gt;--id-only&lt;/code&gt; prints job IDs for later &lt;code&gt;get-job&lt;/code&gt;, &lt;code&gt;cancel-job&lt;/code&gt; or &lt;code&gt;recover-job&lt;/code&gt; calls. &lt;code&gt;--name-only&lt;/code&gt; prints job names, which need not be unique.&lt;/p&gt;</description></item><item><title>get-job</title><link>https://cloudmin.com/docs/development/api-programs/get-job/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/get-job/</guid><description>&lt;h3 id="shows-a-jobs-current-progress"&gt;Shows a job&amp;rsquo;s current progress&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin get-job [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --job value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Reads the current public record for &lt;code&gt;--job&lt;/code&gt;. This is a job ID returned by a submitted operation or &lt;code&gt;list-jobs&lt;/code&gt;, not a virtual machine UUID. It reports state, phase, recorded events, errors and available cleanup information.&lt;/p&gt;
&lt;p&gt;The command reads once and returns; it does not keep following the worker. Use it after submitting an operation with &lt;code&gt;--no-wait&lt;/code&gt; or after losing a terminal connection. &lt;code&gt;--multiline&lt;/code&gt; expands details, while &lt;code&gt;--json&lt;/code&gt; is suitable for polling from a script.&lt;/p&gt;</description></item><item><title>cancel-job</title><link>https://cloudmin.com/docs/development/api-programs/cancel-job/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/cancel-job/</guid><description>&lt;h3 id="requests-cancellation-at-the-next-safe-point"&gt;Requests cancellation at the next safe point&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin cancel-job [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--cleanup]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --job value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--yes]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Requests cancellation of the unfinished job identified by &lt;code&gt;--job&lt;/code&gt;. Cancellation takes effect at a safe point in the worker; it is not an immediate process kill. Copying and backup operations may need to restore source disk state before releasing their reservations.&lt;/p&gt;
&lt;p&gt;Started hardware changes cannot be cancelled after their first write. If such a change fails, use &lt;code&gt;recover-job&lt;/code&gt;. Completed, failed or already cancelled jobs cannot receive a new cancellation request.&lt;/p&gt;</description></item><item><title>recover-job</title><link>https://cloudmin.com/docs/development/api-programs/recover-job/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/recover-job/</guid><description>&lt;h3 id="resumes-interrupted-work-or-retries-cleanup"&gt;Resumes interrupted work or retries cleanup&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin recover-job [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --job value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Reattaches or restarts work for the job identified by &lt;code&gt;--job&lt;/code&gt;, including retrying cleanup marked as pending. It uses the original job&amp;rsquo;s recorded operation and resource identities rather than submitting a new request.&lt;/p&gt;
&lt;p&gt;The result depends on the operation. Recovery can finish an interrupted hardware write, restore a source after copying, or remove incomplete creation resources. It checks the recorded state before proceeding and refuses unrelated changes. It cannot shrink a disk back after growth or recover data that was permanently deleted.&lt;/p&gt;</description></item><item><title>discard-job</title><link>https://cloudmin.com/docs/development/api-programs/discard-job/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/discard-job/</guid><description>&lt;h3 id="keeps-completed-disk-growth-and-discards-the-remaining-failed-edits"&gt;Keeps completed disk growth and discards the remaining failed edits&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin discard-job [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --job value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Abandons the remaining edits of an eligible failed settings-update job while keeping disk growth that already completed. &lt;code&gt;--job&lt;/code&gt; identifies that update. Use this only when you want to stop recovery of the remaining edits; &lt;code&gt;recover-job&lt;/code&gt; attempts to finish them instead.&lt;/p&gt;
&lt;p&gt;Cloudmin first checks that the original hardware definition is unchanged. It removes new disks allocated by the job only after verifying their identity and that nothing uses them. Completed disk growth remains because it cannot be undone safely.&lt;/p&gt;</description></item><item><title>list-pools</title><link>https://cloudmin.com/docs/development/api-programs/list-pools/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-pools/</guid><description>&lt;h3 id="lists-active-and-inactive-storage-pools"&gt;Lists active and inactive storage pools&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-pools [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lists all registered storage pools, including stopped pools and LVM-thin destinations. The table shows each pool&amp;rsquo;s name, UUID, backend, active state and available space. Free space is unavailable for inactive pools.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;--multiline&lt;/code&gt; for pool settings, volumes and references, or &lt;code&gt;--json&lt;/code&gt; for the full records. &lt;code&gt;--name-only&lt;/code&gt; and &lt;code&gt;--id-only&lt;/code&gt; print one name or UUID per line. Creating a virtual machine requires an active pool with a supported backend.&lt;/p&gt;</description></item><item><title>list-volumes</title><link>https://cloudmin.com/docs/development/api-programs/list-volumes/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-volumes/</guid><description>&lt;h3 id="lists-storage-volumes-and-their-owners"&gt;Lists storage volumes and their owners&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-volumes [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--pool ID|name]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lists volumes from active storage pools, with their pool, capacity, allocated space and owners. &lt;code&gt;--pool&lt;/code&gt; accepts a UUID or a name that identifies exactly one pool, including LVM-thin destinations such as &lt;code&gt;guests/thin&lt;/code&gt;. Omit it to list volumes across pools. Stopped pools cannot report their volumes.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;--multiline&lt;/code&gt; and &lt;code&gt;--json&lt;/code&gt; include ownership records and any reason deletion is blocked. A stopped virtual machine, imported image, snapshot or dependent disk can keep a volume in use. Cloudmin also blocks deletion when it cannot check these references. Listing volumes does not change storage.&lt;/p&gt;</description></item><item><title>list-volume-groups</title><link>https://cloudmin.com/docs/development/api-programs/list-volume-groups/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-volume-groups/</guid><description>&lt;h3 id="lists-lvm-volume-groups-available-for-registration"&gt;Lists LVM volume groups available for registration&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-volume-groups [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lists existing local LVM volume groups that have no libvirt registration. Groups already registered are excluded even when their pool is stopped. Thin pools appear as storage destinations after their parent group is registered.&lt;/p&gt;
&lt;p&gt;Create and extend groups with Webmin&amp;rsquo;s Logical Volume Management module or the LVM tools. This command lists groups without allocating or formatting disks. If discovery fails, it reports an error.&lt;/p&gt;</description></item><item><title>create-pool</title><link>https://cloudmin.com/docs/development/api-programs/create-pool/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/create-pool/</guid><description>&lt;h3 id="registers-a-directory-or-an-existing-lvm-volume-group"&gt;Registers a directory or an existing LVM volume group&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin create-pool [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--autostart | --no-autostart]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--group value]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--path value]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Registers a storage destination and starts it immediately. Supply a unique &lt;code&gt;--name&lt;/code&gt; and exactly one of &lt;code&gt;--path&lt;/code&gt; or &lt;code&gt;--group&lt;/code&gt;. Directory paths must be absolute, have an existing parent and not overlap another pool. A missing directory is created; existing files and permissions are preserved.&lt;/p&gt;</description></item><item><title>start-pool</title><link>https://cloudmin.com/docs/development/api-programs/start-pool/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/start-pool/</guid><description>&lt;h3 id="starts-a-directory-pool"&gt;Starts a directory pool&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin start-pool [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --pool ID|name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Starts a stopped local directory pool with a saved registration. &lt;code&gt;--pool&lt;/code&gt; accepts its UUID or a name that identifies exactly one pool. This includes pools unavailable for machine creation. The command reads the pool&amp;rsquo;s revision before starting it. If its settings change in the meantime, run the command again.&lt;/p&gt;
&lt;p&gt;Starting does not create or format the directory or change its start-at-boot setting. This command does not start LVM pools.&lt;/p&gt;</description></item><item><title>stop-pool</title><link>https://cloudmin.com/docs/development/api-programs/stop-pool/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/stop-pool/</guid><description>&lt;h3 id="stops-a-directory-pool-without-deleting-its-files"&gt;Stops a directory pool without deleting its files&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin stop-pool [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --pool ID|name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Stops a local directory pool while keeping its saved registration and all files. Stop virtual machines using the pool and finish or cancel pending operations and image imports first. Start the pool again before using it for new storage operations.&lt;/p&gt;
&lt;p&gt;The command checks the current revision and finishes before returning. It does not stop LVM pools. Use &lt;code&gt;unregister-pool --stop&lt;/code&gt; to stop an unused LVM pool and remove its registration after checking for host and guest use.&lt;/p&gt;</description></item><item><title>set-pool-autostart</title><link>https://cloudmin.com/docs/development/api-programs/set-pool-autostart/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/set-pool-autostart/</guid><description>&lt;h3 id="changes-whether-a-directory-pool-starts-at-boot"&gt;Changes whether a directory pool starts at boot&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin set-pool-autostart [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --enabled yes|no
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --pool ID|name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Changes whether a local directory pool with a saved registration starts with the host. Supply &lt;code&gt;--pool&lt;/code&gt; as a UUID or unambiguous name and &lt;code&gt;--enabled yes&lt;/code&gt; or &lt;code&gt;--enabled no&lt;/code&gt;. This setting does not immediately start or stop the pool.&lt;/p&gt;
&lt;p&gt;The command reads and checks the current revision before saving. LVM registrations receive their start-at-boot setting during &lt;code&gt;create-pool&lt;/code&gt;; this command manages directory pools only.&lt;/p&gt;</description></item><item><title>delete-volume</title><link>https://cloudmin.com/docs/development/api-programs/delete-volume/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/delete-volume/</guid><description>&lt;h3 id="deletes-an-unused-storage-volume-after-a-review"&gt;Deletes an unused storage volume after a review&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin delete-volume [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--review | --yes)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --pool ID|name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --volume value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Permanently deletes one unused volume from an active local directory or LVM destination. Supply &lt;code&gt;--pool&lt;/code&gt; and the exact &lt;code&gt;--volume&lt;/code&gt; name. &lt;code&gt;--review&lt;/code&gt; shows owners and any refusal reason without changing anything or requiring &lt;code&gt;--yes&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Deletion requires &lt;code&gt;--yes&lt;/code&gt;. The command reviews the volume, then sends its revision for a final check under the host storage lock. A replaced volume, new reference or pending operation prevents deletion. Host mounts, swap and Cloudmin snapshots also block deletion. Deleting the volume destroys its data and cannot be undone.&lt;/p&gt;</description></item><item><title>unregister-pool</title><link>https://cloudmin.com/docs/development/api-programs/unregister-pool/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/unregister-pool/</guid><description>&lt;h3 id="removes-a-pool-registration-and-keeps-its-data"&gt;Removes a pool registration and keeps its data&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin unregister-pool [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (--review | --yes)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --pool ID|name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--stop]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Removes the saved libvirt registration for a local directory or LVM pool. Files, logical volumes, volume groups and thin pools are preserved. Supply the parent pool&amp;rsquo;s UUID or unambiguous name with &lt;code&gt;--pool&lt;/code&gt;. LVM-thin destinations cannot be unregistered separately.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;--review&lt;/code&gt; shows references and any reason removal is blocked without requiring &lt;code&gt;--yes&lt;/code&gt;. Removing the registration requires &lt;code&gt;--yes&lt;/code&gt; and repeats the revision and reference checks. References from running or stopped guests, images, snapshots and dependent disks block removal, as do pending operations. Other inactive pools may need to be started so their references can be checked.&lt;/p&gt;</description></item><item><title>list-bridges</title><link>https://cloudmin.com/docs/development/api-programs/list-bridges/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/list-bridges/</guid><description>&lt;h3 id="lists-host-bridges-outside-libvirt-managed-networks"&gt;Lists host bridges outside libvirt-managed networks&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin list-bridges [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--name-only | --id-only]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lists host bridges outside libvirt-managed virtual networks. These bridges connect guests to the host&amp;rsquo;s existing network. Libvirt-managed NAT or routed bridges belong to their virtual networks and are not removal targets here.&lt;/p&gt;
&lt;p&gt;The default table shows each bridge&amp;rsquo;s name, whether it is active, its addresses and its ports. &lt;code&gt;--multiline&lt;/code&gt; and &lt;code&gt;--json&lt;/code&gt; include saved-configuration and dependency details. &lt;code&gt;--name-only&lt;/code&gt; and &lt;code&gt;--id-only&lt;/code&gt; both print bridge names, such as &lt;code&gt;br0&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>get-bridge-status</title><link>https://cloudmin.com/docs/development/api-programs/get-bridge-status/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/get-bridge-status/</guid><description>&lt;h3 id="shows-the-current-bridge-transaction"&gt;Shows the current bridge transaction&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin get-bridge-status [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--id value]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Shows the current host bridge transaction, including its state and available confirmation or recovery information. Without &lt;code&gt;--id&lt;/code&gt;, selects the current transaction. With &lt;code&gt;--id&lt;/code&gt;, requires that specific transaction so a stale script does not act on a newer change.&lt;/p&gt;
&lt;p&gt;The transaction ID is returned by bridge changes; it is not the bridge name or a normal background job ID. The result can be empty when there is no transaction. &lt;code&gt;--json&lt;/code&gt; returns structured status for scripts, and &lt;code&gt;--multiline&lt;/code&gt; expands human-readable details.&lt;/p&gt;</description></item><item><title>remove-bridge</title><link>https://cloudmin.com/docs/development/api-programs/remove-bridge/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/remove-bridge/</guid><description>&lt;h3 id="moves-the-bridges-network-settings-back-to-its-ethernet-port"&gt;Moves the bridge&amp;rsquo;s network settings back to its Ethernet port&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin remove-bridge [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name value
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--review]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Removes an unused, saved host bridge with one supported Ethernet port. &lt;code&gt;--name&lt;/code&gt; is the bridge name from &lt;code&gt;list-bridges&lt;/code&gt;, not a virtual machine name. The bridge&amp;rsquo;s current addresses, routes and DNS settings move back to its Ethernet port.&lt;/p&gt;
&lt;p&gt;Cloudmin supports bridge removal with NetworkManager, Netplan and Debian ifupdown. It refuses unsupported layouts, bridges used by virtual machines or virtual networks, and VLANs or macvlans attached to the bridge or its port. A virtual machine can block removal even when stopped.&lt;/p&gt;</description></item><item><title>confirm-bridge</title><link>https://cloudmin.com/docs/development/api-programs/confirm-bridge/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/confirm-bridge/</guid><description>&lt;h3 id="keeps-the-new-network-settings-after-checking-connectivity"&gt;Keeps the new network settings after checking connectivity&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin confirm-bridge [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --id value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Keeps the new network settings for the pending bridge transaction identified by &lt;code&gt;--id&lt;/code&gt;. Use the transaction ID returned by the change or &lt;code&gt;get-bridge-status&lt;/code&gt;, not the bridge name. The transaction must still be awaiting confirmation and within its deadline.&lt;/p&gt;
&lt;p&gt;Confirm only after reconnecting and checking the host&amp;rsquo;s network access. Cloudmin performs its connectivity checks before accepting confirmation. A confirmed change no longer rolls back automatically when the original deadline passes.&lt;/p&gt;</description></item><item><title>rollback-bridge</title><link>https://cloudmin.com/docs/development/api-programs/rollback-bridge/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/rollback-bridge/</guid><description>&lt;h3 id="requests-recovery-of-the-previous-network-settings"&gt;Requests recovery of the previous network settings&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin rollback-bridge [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [--no-wait]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --id value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Requests restoration of the previous network settings for the bridge transaction identified by &lt;code&gt;--id&lt;/code&gt;. Use the transaction ID from &lt;code&gt;get-bridge-status&lt;/code&gt;. The transaction must still allow recovery; this is not an undo command for an already confirmed change.&lt;/p&gt;
&lt;p&gt;Recovery runs on the host and can interrupt the SSH connection again as addresses move back. By default, the command waits for the transaction&amp;rsquo;s recovery result. &lt;code&gt;--no-wait&lt;/code&gt; returns immediately; check &lt;code&gt;get-bridge-status&lt;/code&gt; after reconnecting.&lt;/p&gt;</description></item><item><title>get-license</title><link>https://cloudmin.com/docs/development/api-programs/get-license/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/get-license/</guid><description>&lt;h3 id="shows-the-cloudmin-license-status"&gt;Shows the Cloudmin license status&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin get-license [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Shows the Cloudmin license status, expiry and any grace deadline. The license
key is never returned. GPL does not require a license.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin get-license
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>check-license</title><link>https://cloudmin.com/docs/development/api-programs/check-license/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/check-license/</guid><description>&lt;h3 id="rechecks-the-cloudmin-license-with-the-license-server"&gt;Rechecks the Cloudmin license with the license server&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin check-license [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Checks the saved license with &lt;a href="https://www.virtualmin.com"&gt;www.virtualmin.com&lt;/a&gt;. Use this after renewal
or after fixing a connection problem. This command remains available when
license restrictions block other changes.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin check-license
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>change-license</title><link>https://cloudmin.com/docs/development/api-programs/change-license/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/change-license/</guid><description>&lt;h3 id="validates-and-saves-a-cloudmin-pro-license"&gt;Validates and saves a Cloudmin Pro license&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin change-license [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --key-file file|-
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --serial value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Checks a new Cloudmin Pro license before saving it. Read the key from a private
file or standard input. Failed validation leaves the current license in place.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin change-license --serial &lt;span style="color:#ae81ff"&gt;12345&lt;/span&gt; --key-file /root/cloudmin-key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Expiry grace lasts seven days after the expiry date ends in UTC. Migration
grace lasts 21 days from when this host first detects use on too many hosts.
A failed check allows up to 21 days from the last successful check, without
extending expiry or migration deadlines. Existing machines, accepted jobs,
scheduled backups, job recovery and network rollback keep working when new
changes are blocked.&lt;/p&gt;</description></item><item><title>deregister-license</title><link>https://cloudmin.com/docs/development/api-programs/deregister-license/</link><pubDate>Sun, 01 Nov 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/deregister-license/</guid><description>&lt;h3 id="removes-this-hosts-cloudmin-license"&gt;Removes this host&amp;rsquo;s Cloudmin license&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin deregister-license [--multiline | --json]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Removes this host&amp;rsquo;s saved license and repository credentials. Running machines,
scheduled backups and accepted jobs continue. Pro updates and new changes
through Cloudmin require a license again. Deregistration does not cancel your
subscription or immediately remove the host from the license server&amp;rsquo;s count.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin deregister-license --yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--yes&lt;/code&gt;: Confirm this operation.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>api</title><link>https://cloudmin.com/docs/development/api-programs/api/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://cloudmin.com/docs/development/api-programs/api/</guid><description>&lt;h3 id="runs-the-raw-json-api-with-a-request-on-standard-input"&gt;Runs the raw JSON API with a request on standard input&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloudmin api [action] &amp;lt; request.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Runs the raw JSON API entry point. Use &lt;code&gt;cloudmin api ACTION&lt;/code&gt; with a JSON request object on standard input. This is useful for API fields that have no named-command option or for clients that already construct API requests. With no action, it returns &lt;code&gt;options&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The raw response is a JSON object with &lt;code&gt;version&lt;/code&gt; and &lt;code&gt;result&lt;/code&gt; fields. Named commands use &lt;code&gt;command&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt; and &lt;code&gt;data&lt;/code&gt; instead. Raw errors are written to standard error and exit 1. Do not add named-command output flags such as &lt;code&gt;--json&lt;/code&gt; or &lt;code&gt;--multiline&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>