Proxmox VE admin spec

Proxmox VE’s pve-manager is the right comparison shape for Coppice’s operator surface because it makes the same trade we make: one browser-only console, no client install, a single tree on the left and a tabbed workbench on the right. Everything else — guests, storage, networking, snapshots, consoles, tasks, auth, cluster state — is a tab, not a different application. This page is the descriptive spec of that surface; the row-by-row Coppice parity map at /appendix/proxmox-comparison reads against it.

Screenshots below are linked from pve.proxmox.com/pve-docs/ and mirrored under /proxmox/. They are taken from the current Proxmox VE Administration Guide (PVE 9.x) and from the matching wiki chapters; per-image source URLs sit in each <figcaption>. The intent is descriptive, not visual fidelity — Coppice’s /admin does not have to look like Proxmox to behave like Proxmox.

Login and shell

The first thing the operator sees is a small modal with username, password, realm picker, and language. Realms are Proxmox’s pluggable auth backends — pam, pve (built-in), ldap, ad, openid. Selecting a realm changes which directory the credentials hit; everything after login is the same shell.

Proxmox VE login dialog

Login dialog with realm and language pickers. Source: pve-docs/images/screenshot/gui-login-window.png.

The shell after login is four regions: a fixed top header, a left resource tree, the main workbench in the centre/right, and a bottom status panel that the operator can collapse. Every region is the same on every page; what changes is what the workbench renders for the selected resource.

Datacenter summary view

The four-region shell, showing the Datacenter summary tab. Header on top, resource tree on the left, summary panels on the right, task panel collapsed at the bottom. Source: pve-docs/images/screenshot/gui-datacenter-summary.png.

Top chrome

The header bar is fixed. Reading left to right:

controltypenotes
Proxmox logo + versionlinkReturns the workbench to the Datacenter root.
Server view pickercontrolSwitches the resource tree between server view, folder view, storage view, pool view, and tag view. The same physical inventory regrouped by axis. Coppice’s /admin would benefit from this — it is one of the most distinctive Proxmox affordances.
DocumentationlinkOpens a context-sensitive help drawer or the bundled HTML admin guide.
Create VMactionOpens the Create VM wizard. Action is always available, target node is selected inside the wizard.
Create CTactionSame shape, LXC container. Coppice has one create-machine wizard rather than two; the type column inside it does the same job.
SearchcontrolCluster-wide search across nodes, guests, storage, pools, tags, IDs. Returns a flat hit list with type/name/node/status columns.
User / realm menucontrolLogged-in identity, password, TFA, language, theme, my-settings, logout. my-settings exposes per-user dashboard layout, xterm.js options, and confirmation toggles.
Datacenter cluster-wide search

Cluster-wide search hit list. Same workbench, the search tab fans out matches across every resource type. Source: pve-docs/images/screenshot/gui-datacenter-search.png.

My Settings dialog

My Settings — per-user UI preferences (xterm.js, dashboard storage, layout, confirmations). Source: pve-docs/images/screenshot/gui-my-settings.png.

Resource tree (left)

The tree is the operator’s spatial map of the cluster. Top of the tree is always Datacenter. Below it sit nodes; below each node sit guests, storage entries that exist on that node, and local resources. Templates appear as italicized guest rows. SDN and Pools are nominally datacenter-scoped, but they are reachable as their own subtrees too.

The same inventory can be regrouped by:

A small filter input above the tree narrows visible rows by name, ID, or tag. The tree is virtualised so a 5,000-guest cluster is fine.

Datacenter view

Selecting Datacenter loads a tab strip across the top of the workbench. Each tab below is a distinct page; the strip is what makes Proxmox’s surface feel tabbed.

tabrolewhat it shows
SummaryreadCluster-wide health, node count, guest count, aggregate CPU/RAM/storage usage, version.
ClustereditCluster create / join, node list, corosync ring info, join-info clipboard. Single-node Coppice is a degenerate case of this.
CepheditCluster-wide Ceph install/monitors. Out of scope for Coppice.
OptionseditCluster-wide defaults — keyboard layout, console viewer, email, MAC prefix, migration network, HA shutdown policy, tag style, U2F/WebAuthn config, SDN flag, next-free VMID.
StorageeditDatacenter-level storage definitions. Add exposes a dropdown of backends — dir, lvm, lvmthin, zfs, nfs, cifs, iscsi, cephfs, rbd, pbs, glusterfs, btrfs. Per-row edits include content types (images, iso, vztmpl, backup, rootdir, snippets), nodes, max-backups, shared flag.
BackupeditBackup jobs — schedule (cron-style), source guests / pools / all, target storage, retention policy (keep-last/daily/weekly/monthly/yearly), notes template, mode (snapshot/suspend/stop), bandwidth, mailto, repeat-missed.
ReplicationeditZFS storage replication jobs between nodes. Source guest, target node, schedule, rate-limit, comment.
PermissionseditUsers, API tokens, two-factor, groups, pools, roles, ACL entries, realms (PAM, PVE, LDAP, AD, OpenID). Each subtab is its own grid + editor dialog.
HAeditHigh-availability resources, groups, fencing status. Out of scope for single-node Coppice but the table shape is what the cluster-overlay sketch will eventually echo.
ACMEeditACME accounts, plugins, challenge configurations for automated TLS.
FirewalleditDatacenter-level firewall: rules, security groups, aliases, IPSets, options. Inheritable into nodes and guests.
Metric ServereditExternal time-series sinks — InfluxDB and Graphite. Coppice’s tracing/Prometheus answer is the equivalent role.
NotificationseditTargets (gotify, sendmail, smtp, webhook), matchers, notification mode per backup job, default mail-from.
Support / SubscriptionreadSubscription key, level, support links. Self-hosted Coppice has no upstream meter.
SDNeditSoftware-defined networking — see the SDN section below.
Datacenter Options panel

Datacenter → Options. Cluster-wide defaults rendered as a single key/value grid with double-click-to-edit cells. Source: pve-docs/images/screenshot/gui-datacenter-options.png.

Cluster create dialog

Datacenter → Cluster → Create Cluster. The minimal join shape: cluster name, link addresses, redundancy. Source: pve-docs/images/screenshot/gui-cluster-create.png.

Backup jobs grid

Datacenter → Backup. Job grid with add/edit/run-now/show-log actions; one row per scheduled backup job. Source: pve-docs/images/screenshot/gui-cluster-backup-overview.png.

Backup edit, General tab

Backup job editor — General tab: node, storage, schedule, mode, selection mode, mail. Source: pve-docs/images/screenshot/gui-cluster-backup-edit-01-general.png.

Backup edit, Retention tab

Backup job editor — Retention tab: keep-last / hourly / daily / weekly / monthly / yearly. Source: pve-docs/images/screenshot/gui-cluster-backup-edit-02-retention.png.

HA manager status

Datacenter → HA. Manager status: quorum, master node, LRM state per node, managed services and their current/requested state. Source: pve-docs/images/screenshot/gui-ha-manager-status.png.

HA add resource dialog

HA → add resource. Pick a guest, request-state, max relocate/restart, group, comment. Source: pve-docs/images/screenshot/gui-ha-manager-add-resource.png.

Node view

Selecting a node loads a node-scoped tab strip. The tabs are the host operator’s view: hardware, OS state, services, packages, certs, time, DNS, syslog, plus per-node analogues of the cluster-wide tabs.

Node summary view

Node → Summary. Host CPU/RAM/IO load history, package version, uptime, swap, KSM, repository status. Hover to read a sample. Source: pve-docs/images/screenshot/gui-node-summary.png.

tabrolewhat it shows
SummaryreadLive CPU/RAM/IO/swap/KSM history, package versions, kernel, repo health.
Shelleditxterm.js host shell (root). The tab persists across navigation; closing the shell ends the session.
SystemeditContainer view of services, network interfaces (with bridge/bond editor), DNS, hosts, time, syslog, kernel, RRD graphs.
UpdateseditAvailable package upgrades, refresh-now, upgrade-now (opens an xterm to the apt run), changelogs, history.
RepositorieseditEditable apt sources list, well-known PVE/Ceph/Backports repo toggles, status checks for “no-subscription warnings.”
FirewalleditPer-node firewall rules and options, layered on top of the datacenter ruleset.
DiskseditDisk inventory with SMART, wipe, GPT init. Subtabs for ZFS, LVM, LVM-Thin, Directory, Btrfs — each lets the operator create that backend on a chosen disk.
CepheditPer-node Ceph daemons (monitor / manager / OSD / metadata server / pool view). Out of scope for Coppice.
ReplicationreadPer-node view of cluster-wide replication jobs.
Task HistoryreadAll API tasks scoped to this node, with status, user, time, and a per-row “View” that opens the captured stdout/stderr.
SubscriptioneditPer-node subscription key. Self-hosted Coppice has no equivalent.
CertificateseditPer-node TLS cert lifecycle, ACME order, custom upload, fingerprint.
DNS / Hosts / Timeeditresolv.conf, /etc/hosts, NTP / chrony source — surfaced as forms.
SyslogreadLive tail of journald with filter on unit, severity, since.
Ceph status dashboard

Per-node Ceph dashboard. Shown for completeness — Coppice does not implement Ceph, but the panel layout (status header, per-pool grid, performance series) is the same shape PVE re-uses across storage backends. Source: pve-docs/images/screenshot/gui-ceph-status-dashboard.png.

Guest views (VM and CT)

Guest tabs are the densest part of the surface. A VM (qemu) and a CT (LXC) share most tabs; the differences are noted inline.

VM summary tab

Guest → Summary. Status, IP, uptime, OS, tags, notes, plus miniature CPU/RAM/network/disk-IO history graphs. The lifecycle actions (Start, Shutdown, Stop, Reboot, Pause, Hibernate, Console) sit on the toolbar above this tab. Source: pve-docs/images/screenshot/gui-qemu-summary.png.

Tabs

tabrolewhat it shows / edits
SummaryreadStatus, name, OS, IP via guest agent, uptime, mini-graphs, notes (markdown), tags. The “more like this” landing tab.
ConsoleeditnoVNC, SPICE (via launcher .vv file), or xterm.js (serial). Console-type picker sits in the tab header. Disconnect/reload toolbar on top.
HardwareeditPer-row inventory: Memory, Processors, BIOS, Display, Machine, SCSI Controller, CD/DVD, Hard Disk(s), Network Device(s), serial/USB/PCI passthrough, EFI Disk, TPM, CloudInit, audio, rng, vGPU. Each row is double-click-to-edit. Add dropdown for new hardware. Hot-plug honoured where the type allows.
Cloud-IniteditVM only: user, password, SSH public key, DNS domain/servers, IP config per NIC, cipassword toggle, regenerate ISO. Shown only when a CloudInit drive is attached.
OptionseditBoot order, OS type, ACPI, KVM, freeze CPU at boot, hotplug classes, qemu-guest-agent toggle, protection, SMBIOS/UUID, RTC, hugepages, NUMA, spice enhancements, VNC keymap, start/shutdown automation, VirtIO RNG.
Task HistoryreadPer-guest task list: who did what, when, status, captured output.
MonitoreditVM only: an interactive QEMU monitor / HMP shell exposed in-browser. Type info status, info block, cont. Power-user surface.
BackupeditPer-guest backup history (per-storage), restore wizard (full-restore or single-file extract for PBS), backup-now, retention preview.
ReplicationeditZFS replication jobs that target this guest.
SnapshotseditSnapshot tree (parent / current marker), Take Snapshot dialog with optional include-RAM, Rollback, Edit (rename/description), Delete. Live snapshots include guest memory when the storage backend supports it; otherwise filesystem-only.
FirewalleditPer-guest rules, options (firewall on/off, ndp, dhcp, log_level), aliases, IPSets. Per-NIC subtab for NIC-scoped policy.
PermissionseditACL grid scoped to /vms/<vmid>: subject (user/group/token), role, propagate.

Hardware tab field detail

Worth listing because Coppice’s Hardware tab maps row-for-row.

fieldtypenotes
MemoryeditMiB, plus optional ballooning min. Hot-plug supported when the OS and machine type allow.
ProcessorseditCores, sockets, vCPUs, CPU type (host / kvm64 / x86-64-v2-AES / etc), NUMA, CPU limit, CPU units, flags (pdpe1gb, hv-tlbflush…).
BIOSeditSeaBIOS or OVMF (UEFI). UEFI requires an EFI Disk row.
DisplayeditDefault / std / cirrus / vmware / qxl / serial / virtio / virtio-gl. Memory MiB, freeze toggle.
Machineediti440fx (default) or q35 (PCIe). Pinned version selector.
SCSI ControllereditVirtIO SCSI single (default), VirtIO SCSI, LSI 53C895A, MegaRAID. Choice has perf+hot-plug consequences.
Hard DiskeditPer-disk: bus (IDE/SCSI/SATA/VirtIO), storage backend, size, format (raw/qcow2/vmdk), cache, async-IO, discard, IO-thread, SSD emulation, read-only, snapshot inclusion, replicate, throttling. Resize/move/reassign/detach/remove from the row toolbar.
Network DeviceeditBridge, VLAN tag, model (VirtIO / e1000 / RTL8139 / VMXNET3), MAC, firewall toggle, MTU, multiqueue, rate limit (MB/s), disconnect.
CD/DVD DriveeditISO from storage, physical pass-through, none.
PCI / USB / Serial / AudioeditPassthrough rows. PCI exposes mediated-device and PCIe flag; USB exposes host-port mapping.
CloudInit DriveeditAttached separately so the Cloud-Init tab has a target.
EFI Disk / TPMeditRequired for OVMF / Windows 11; storage backend chooser.

Lifecycle controls

Above the tab strip, the toolbar carries the lifecycle controls. The exact button set is:

buttonactionnotes
StartactionBoot the guest.
ShutdownactionGraceful (ACPI / lxc-stop). Has a per-guest timeout.
StopactionHard kill. Confirmation dialog.
RebootactionGraceful reboot.
Pause / HibernateactionVM only. Pause is in-RAM; Hibernate writes the state to a backing storage and resumes from disk.
ConsoleactionPop the console out into a new browser window (separate from the in-tab Console).
More ▾menuClone (full / linked), Convert to Template, Migrate, Manage HA, Remove, Bulk actions, Edit notes, Edit tags.

Create-VM wizard

The Create-VM wizard is the canonical multi-step Proxmox dialog. Its shape — left rail of step labels, body that swaps content, Next / Back / Confirm at the bottom — is the template every other “Create X” dialog uses (Create CT, Create Backup Job, Create Realm).

Create VM wizard, General step

Step 1 — General: node, VMID, name, resource pool, start at boot, tags. Source: pve-docs/images/screenshot/gui-create-vm-general.png.

Create VM wizard, OS step

Step 2 — OS: ISO image (or “do not use any media”), guest OS family + version. The picker drives sane downstream defaults. Source: pve-docs/images/screenshot/gui-create-vm-os.png.

Create VM wizard, System step

Step 3 — System: graphic card, machine type (i440fx / q35), BIOS (SeaBIOS / OVMF), SCSI controller, qemu-agent, VirtIO RNG, EFI/TPM rows when needed. Source: pve-docs/images/screenshot/gui-create-vm-system.png.

Create VM wizard, CPU step

Step 4 — CPU: sockets, cores, type, NUMA, CPU units, CPU limit, flags. The “type” dropdown carries the migration-compatibility knob. Source: pve-docs/images/screenshot/gui-create-vm-cpu.png.

Create VM wizard, Memory step

Step 5 — Memory: MiB, ballooning min, ballooning device toggle. Source: pve-docs/images/screenshot/gui-create-vm-memory.png.

Create VM wizard, Network step

Step 6 — Network: bridge, VLAN tag, firewall toggle, NIC model, MAC, MTU, rate limit, multiqueue, disconnect. Final step is “Confirm” with a YAML-ish summary. Source: pve-docs/images/screenshot/gui-create-vm-network.png.

Storage view

A storage entry in the tree is selected to inspect a backend’s contents. The tabs vary slightly with the backend’s allowed content types but the shape is consistent.

Storage summary view

Storage → Summary. Capacity, used / available, content-type breakdown, RRD usage history. Source: pve-docs/images/screenshot/gui-storage-summary-local.png.

tabrolenotes
SummaryreadCapacity, free, type, content, RRD chart.
Backupsread/editPer-guest grouping; per-row restore, show config, file restore (PBS only), prune-now, change protection, change notes.
ISO ImageseditUpload, download-from-URL, remove. The URL importer fetches and verifies a checksum.
CT TemplateseditSame as ISO but for LXC .tar.zst. Includes a one-click “Templates” browser of the upstream registry.
VM Disks / CT Volumes / Snippets / Importsread/editVisible only on backends whose content type list includes them. Disk rows expose owner-VMID, size, format, used, attached/orphan flag.
PermissionseditACL scoped to /storage/<name>.

Pool view

Pool summary view

Pool → Summary. Members table (VMs, CTs, storage), per-member state, plus Permissions and Comment subtabs. Source: pve-docs/images/screenshot/gui-pool-summary-development.png.

Pool create dialog

Datacenter → Permissions → Pools → Create. Just name and comment; membership is added afterwards from each guest’s More menu. Source: pve-docs/images/screenshot/gui-datacenter-pool-window.png.

SDN view

The SDN view is the modern PVE network fabric editor, layered over Linux bridges / OVS / VXLAN / EVPN / FRR. Datacenter → SDN has six subtabs.

SDN fabrics overview

Datacenter → SDN → Fabrics. Tree of OpenFabric / OSPF fabrics, member nodes, link configuration. The same tree-on-the-left, detail-on-the-right shape repeats inside SDN itself. Source: pve-docs/images/screenshot/gui-datacenter-fabrics-overview.png.

subtabrolewhat it edits
ZoneseditNetwork zone definitions: simple (Linux bridge), VLAN, QinQ, VXLAN, EVPN. Per-zone config (controller, MTU, IPAM).
VNetseditVirtual networks bound to a zone. Per-VNet tag, alias, VLAN-aware flag.
SubnetseditCIDRs attached to a VNet, gateway, DHCP range, DNS zone delegation.
ControllerseditEVPN/BGP/iSiSiS controllers — defined per cluster, referenced by zones.
IPAMeditIP address management plugin config. PVE-native or external (phpipam / netbox).
DNSeditDNS plugin config used to register guest IPs back into a DNS zone.
FabricseditOpenFabric / OSPF underlay management for EVPN.

After every SDN edit a banner reminds the operator to hit Apply; SDN config is staged in /etc/pve/sdn/ and applied to /etc/network/interfaces.d/ on demand.

Permissions view

Role create dialog

Datacenter → Permissions → Roles → Add. Name plus a multi-select of privileges (VM.Allocate, VM.Audit, Datastore.Backup, …). Source: pve-docs/images/screenshot/gui-datacenter-role-add.png.

Two-factor configuration

Datacenter → Permissions → Two Factor. TOTP, WebAuthn, recovery keys, Yubico OTP — each is a row with add / remove / regenerate. Source: pve-docs/images/screenshot/gui-datacenter-two-factor.png.

The permissions model is path + role + subject:

This is the model Coppice’s permissions workbench reads against. “Pool” double-purposes as both a resource grouping and an ACL container.

Bottom panel

Always present, collapsible. Two tabs.

The task panel is the most copied piece of Proxmox UX. Coppice’s /admin task explorer is a direct echo: a flat list of gateway tasks, click-through detail, live updates. The PVE shape adds a stop button that actually severs the in-flight job — Coppice has that as a backend gap.

Cross-cutting affordances

Visual / UX notes

Coppice’s /admin trades the light theme for the editorial-dark-monograph palette of the rest of the site, but the structural pattern — tree, tabs, bottom task panel, right-click that mirrors the toolbar — is the one to keep.

Further reading