proxflow

Draw the lab. ProxFlow builds it.

A map and lab builder for Proxmox VE. Put a domain controller, Windows and Linux servers, containers and nested ESXi on a canvas, and ProxFlow builds each one from the ISOs, boxes and templates already on your storage. It needs no internet.

Download for Windows

v0.1.1 · 35 MB zip · Node.js inside, nothing to install

AD lab, as built Proxmox node pve1 hosts four machines on the vmbr0 network: dc01, a domain controller from a Windows Server ISO at 192.168.1.200, and ws01, ws02 and linux01, built from templates and a box, at .201 to .203, all joined to lab.internal and ready. PVE1 · PROXMOX VE 8.4 LAB · lab.internal joins lab.internal dc01 domain controller Server 2025 ISO ● ready ws01 windows server template 9001 ● ready ws02 windows server template 9001 ● ready linux01 linux vm box · rocky9 ● ready .200 .201 .202 .203 VMBR0 · 192.168.1.0/24 from share:iso and share:backup AS BUILT 4/4 MACHINES READY PVE1 · PROXMOX VE 8.4 LAB · lab.internal joins lab.internal dc01 ● ready domain controller Server 2025 ISO ws01 ● ready windows server template 9001 ws02 ● ready windows server template 9001 linux01 ● ready linux vm box · rocky9 .200 .201 .202 .203 VMBR0 · 192.168.1.0/24 from share:iso and share:backup AS BUILT 4/4 MACHINES READY
Project
proxflow
Title
AD lab, as built
Rev
0.1.1
Sheet
1 of 1
Scale
NTS
Runtime
Node.js 24.22.2
Drawn
demo mode
Zone
—

What's in the zip

PF-02 · Parts list
ItemPartWhat it isSize
1node\node.exeThe official Node.js 24.22.2 runtime for Windows89.6 MB
2app\proxflow.mjsThe server and every library it uses, in one file2.6 MB
3app\web\The web UI your browser opens0.7 MB
4ProxFlow.cmdStarts ProxFlow and opens your browser1 KB
5ProxFlow-demo.cmdThe same, against a simulated Proxmox1 KB
6README.txt, licensesSetup notes, Node.js license, third-party notices0.3 MB
  1. Right-click the zip, Properties, tick Unblock.
  2. Extract it anywhere. No installer, no admin rights.
  3. Double-click ProxFlow.cmd. Your browser opens ProxFlow.

Windows 10 or Server 2016 and newer, x64, with Edge, Chrome or Firefox. ProxFlow-demo.cmd runs everything against a simulated Proxmox, so you can try a whole lab at home first.

Or from PowerShell:

[Net.ServicePointManager]::SecurityProtocol = 'Tls12'; $ProgressPreference = 'SilentlyContinue'; irm https://github.com/Real-Fruit-Snacks/proxflow/releases/latest/download/proxflow-windows-x64.zip -OutFile proxflow.zip; Expand-Archive proxflow.zip .

Release notes and SHA-256 checksums

How a lab gets built

PF-03 · General notes
  1. Nothing is downloaded unless you ask. Every machine comes from ISOs, boxes (backups and templates) and disk images already on Proxmox storage, local or shared. An official cloud image is a separate, opt-in source and needs internet on the node.
  2. The plan is checked before anything exists: permissions, storage, free addresses, names and passwords. Nothing is created until you press Deploy.
  3. A box stored as a backup is restored once and kept as a template tagged pf-box. The next lab clones it instead of restoring it again.
  4. Settings travel on a small generated CD: an answer file for Windows Setup, a cloud-init seed for Linux, a kickstart file for ESXi. It holds passwords, so it is ejected and deleted once the machine is ready.
  5. Readiness comes from the QEMU guest agent. A box without one is checked over SSH, RDP or LDAP on its static address instead.
  6. Destroy lab removes exactly what the deployment created, and keeps restored boxes for next time.

PF-04 · Equipment schedule

MarkMachineBuilt fromSet up byReady when
DCDomain controllerWindows Server 2019, 2022 or 2025 ISOUnattended install, then a new AD forestThe agent reports the domain is up, or LDAP answers
WSWindows ServerThe ISO, or a Windows box or templateUnattended install, or a script sent through the guest agentThe agent reports it joined, or RDP answers
LXLinux VMA box, template or disk imageA cloud-init seed; realmd joins the domaincloud-init reports done, or SSH answers
CTContainerA container template or backupProxmox container settingsProxmox reports its address
EXESXi hostThe ESXi installer ISOA kickstart CD and nested virtualizationHTTPS answers on its address

The app

PF-05 · Details A–D, from demo mode
The Build screen after a deploy: dc01 on top with ws01, ws02 and linux01 joined to its domain, and a panel listing all four machines as ready with their addresses and login lines
Build. The lab on this sheet, in the app: four machines deployed, each with its address and the line to log in with.
The Map: node pve1 with its guests, bridges and local storage, node pve2 beside it, shared storage below, and dc01 selected with its inspector open
Map. Every node, guest, bridge and storage in the cluster. Selecting dc01 traces its network card to vmbr0 and its disk to local-lvm, next to power actions and snapshots.
The Review and deploy dialog: four machines with their VMIDs, addresses and how ProxFlow will know each is ready, the files it will upload or reuse, and a note about realmd for the Linux join
Review and deploy. What will be created, what is reused from storage, and how each machine will be confirmed.
The Connections dialog after Test: the host uses a self-signed certificate; its issuer, names, expiry and SHA-256 fingerprint are shown with a Trust this certificate button
Test connection. A self-signed certificate, with the fingerprint to compare in Proxmox before you pin it.

Connecting to Proxmox

PF-06 · Connection and options
  1. In Proxmox, open Datacenter, Permissions, API Tokens and add one, for example root@pam!proxflow.
  2. Give it PVEAuditor on / for the map. To build labs, add PVEVMAdmin on /, PVEDatastoreAdmin on /storage and, on Proxmox 8 or later, PVESDNUser on /sdn/zones/localnetwork.
  3. In ProxFlow, add the connection and press Test. A wrong port, an unknown name, a rejected token or a missing permission is named, with what to change.
  4. Compare the certificate's fingerprint with the node's System, Certificates page in Proxmox, then trust it. ProxFlow pins that exact certificate.
OptionDoes
--port 8080Serves on another port. The default is 3001, or the next free one.
--host 127.0.0.1Lets only this computer open ProxFlow.
--data-dir <path>Keeps connections and lab history elsewhere. The default is data next to ProxFlow.cmd.
--demoUses the simulated Proxmox.
PVE_URLAdds a host from the environment, with PVE_TOKEN_ID and PVE_TOKEN_SECRET.
PS C:\Tools\proxflow> .\ProxFlow-demo.cmd

  ProxFlow 0.1.1  —  DEMO MODE (simulated Proxmox, nothing real is touched)

  Open:   http://localhost:3001
  Data:   C:\Tools\proxflow\data\demo

  Leave this window open while you use ProxFlow. Press Ctrl+C to stop.

What has been tested

PF-07 · Verification and open items

Verified on

  • Windows 11 Pro, running the release zip with its bundled Node.js 24.22.2.
  • GitHub Actions windows-latest on every release: a fresh extract with no Node.js on PATH, a 10-machine lab, and a read-only install folder.
  • The simulated Proxmox VE 8.4 API in demo mode: an AD forest, Windows and Linux boxes with and without the guest agent, containers, nested ESXi, and 37 connection checks.

Not yet tested on a real Proxmox host. Everything above ran against the simulated API.

Open items

  • Reading the config inside backups, importing disk images (Proxmox 8.3+) and Proxmox 9's guest-agent permission names follow the documentation and haven't met real hardware yet.
  • Nested ESXi types its boot option at the installer menu. If that is missed, press Shift+O in the console and add ks=cdrom:/KS.CFG.
  • The Windows edition list assumes Microsoft's usual image order inside the ISO.
  • A Linux box joins the domain only if realmd, sssd and adcli are already in the image.
  • ProxFlow has no login of its own. On a shared network, start it with --host 127.0.0.1.
RevDateDescription
0.1.12026-11-05Fixes: safer Destroy and snapshot deletes, maps for VM-admin tokens, Windows and Rocky readiness, lab history. Download
0.1.02026-11-05First release: map, connections, lab builder, Windows zip.