Skip to content
Security hardening, live updates and lease fixes
Verlocx

Every VM comes up the same way.And you watch it happen.

Each template picks a workflow that takes its VMs from clone to ready.

Scene by scene
Standard Windows deployment · replay at 6× speed

The portal's deploy panel, replaying the built-in workflow.

Five built-in scenes. One of yours.

The built-in deployment, slowed down — scene 05 is what you add.

  1. Scene 01Proxmox

    Clone

    A full clone of the template. web-2104 becomes VMID 2104 — never silently another id.

    Standard Windows deploymentScene 01 · replay
  2. Scene 02Proxmox

    Boot

    Proxmox starts the VM, then it joins its node's backup job.

    Standard Windows deploymentScene 02 · replay
  3. Scene 03Portal

    Agent

    The Verlocx agent connects out, and the portal waits for it.

    Standard Windows deploymentScene 03 · replay
  4. Scene 04Verlocx agent

    Identity

    Domain join with rename, a reboot, a check — and the owner becomes a local admin.

    Standard Windows deploymentScene 04 · replay
  5. Scene 05Added by you

    Your steps

    Scripts, reboots, waits and idempotent building blocks — whatever your team adds.

    Standard Windows + your stageScene 05 · replay
  6. Scene 06Proxmox HA

    Availability

    Last, an HA rule for its node — so HA ignores the reboots before it.

    Standard Windows deploymentScene 06 · replay
Standard Windows · 9 stepsProxmoxagentportalreboot inside the step
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
Clone, start and backup job by Proxmox; waiting for the agent by the portal; rename, domain join with a reboot inside the step, local admins and verify by the agent; HA rule by Proxmox.

A reboot mid-step isn't a failure.

The agent notes where it is, the portal waits, the run continues.

portal
step running
step running
waiting
step running
step done
agent
online
breadcrumb written
agent offlinestep still running
resumed
online
PortalStep still running — waiting for the agent
Agent · offlineOffline: Windows restarts to apply the join

The connection drops. The step stays open; the portal waits.

The deploy panel at this moment · reboot
3 / 5

22 things a step can do.

Open a row for its parameters.

22 of 22

Proxmox

Proxmox

Via the Proxmox API · 4

  • proxmox.cloneClone template

    Full clone of the VM's template into a new VMID (VMID rules + storage from the template defaults).

    no parameters
  • proxmox.startStart VM

    Power on the cloned VM and wait for the start task.

    no parameters
  • proxmox.backup_jobAssign backup job

    Add the VM to its node's backup job (prefix from the template defaults). Non-fatal by default.

    no parameters
  • proxmox.ha_ruleAdd to HA

    HA resource + node-affinity rule (template defaults). Put it last so HA ignores in-guest reboots.

    no parameters

Settings come from the template's defaults.

Portal

Portal

Handled by the portal · 2

  • portal.waitWait

    Wait a fixed time before the next step (e.g. let a service settle after a change).

    • Seconds
  • portal.wait_agentWait for the agent

    Wait until the guest's Verlocx agent is online (first boot / after a reboot).

    • Timeout (s)

Nothing runs in the guest.

Verlocx agent

Guest (agent)

Run by the agent in the guest · 8

  • agent.renameSet hostname

    Rename the computer (folded into the domain join when one follows). Reboots when renaming alone.

    • Hostname
  • agent.domain_joinJoin domain

    Waits for a DC, joins (rename included), reboots and verifies. Uses the project's domain-join account.

    • Domain
    • OU
  • agent.local_adminsAdd local admins

    Add accounts to local Administrators (by SID S-1-5-32-544, language-independent).

    • Members
  • agent.verifyVerify identity

    Read hostname + domain live and fail if they aren't what the workflow set.

    no parameters
  • agent.scriptRun script

    Run a script in the guest, stream its output, check the result (exit code / text / JSON).

    • Shell
    • Script
    • Timeout (s)
    • Expected exit code
    • Accept any exit code
    • Output must contain
    • Output must not contain
    • JSON output must match
    • Retry until the check passes
    • Reboot afterwards
    reboots when “Reboot afterwards” is set
  • agent.rebootReboot guest

    Restart the guest; the step completes when its agent is back.

    • Delay (s)
  • agent.wait_forWait for condition

    Poll until a service runs, a port opens, a file exists or a check script succeeds.

    • Condition
    • Target
    • Shell (script_ok)
    • Timeout (s)
    • Check every (s)
  • agent.wait_readyWait until Windows is ready

    Hold until setup/OOBE has finished (safe to rename, join, install).

    no parameters

Building blocks

Building block · Windows · agent ≥ 0.0.33

Rendered by the portal, run by the agent · 8

  • module.fileEnsure file (Windows)

    Make sure a file exists with exactly this content (or doesn't exist).

    • Path
    • Content
    • Ensure
  • module.directoryEnsure folder (Windows)

    Make sure a folder exists (or doesn't).

    • Path
    • Ensure
  • module.registryEnsure registry value (Windows)

    Set (or remove) a registry value; the key is created when missing.

    • Key
    • Value name
    • Type
    • Data
    • Ensure
  • module.serviceEnsure service (Windows)

    Bring a Windows service to a state and/or startup type.

    • Service name
    • State
    • Startup type
  • module.windows_featureEnsure Windows feature (Windows)

    Install or remove a Windows (Server) feature / optional feature.

    • Feature name
    • Ensure
  • module.ipv6IPv6 on adapters (Windows)

    Enable or disable the IPv6 binding (ms_tcpip6) on network adapters.

    • IPv6
    • Adapters
  • module.certificateEnsure certificate (Windows)

    Import a certificate (PEM) into a LocalMachine store unless it's already there (by thumbprint).

    • Certificate (PEM)
    • Store
  • module.firewall_ruleEnsure firewall rule (Windows)

    Create, update or remove a Windows Defender Firewall rule (matched by display name).

    • Rule name
    • Direction
    • Protocol
    • Port(s)
    • Action
    • Ensure

Each compares first, then reports ok or changed.

Write it once. Every VM fills it in.

Variables are filled in per VM, when the step runs.

ActionGuest (agent) · agent ≥ 0.0.33

Run a script in the guest, stream its output, check the result (exit code / text / JSON).

Script *
# {{vm.name}} — team baseline from NETLOGON
$cred = New-Object PSCredential("{{deploy.join_user}}",
(ConvertTo-SecureString "{{secret:join}}" -AsPlainText -Force))
New-PSDrive -Name B -PSProvider FileSystem -Root "\\{{deploy.domain}}\NETLOGON\baseline" -Credential $cred | Out-Null
& "B:\apply.ps1" -Computer "{{vm.hostname}}" -Owner "{{vm.owner.account}}"
Remove-PSDrive B
Write-Output "baseline ok on {{vm.name}}"

A list, a graph or JSON. Same workflow.

Edit in whichever view suits the change — the others follow.

Deployments

What a new VM goes through — pick a workflow per template (Templates → Defaults).

ProvisioningConfigurationRuns
saved
When the deployment finishes
1Guest setup1 task · 4 steps · 220s
ActionGuest (agent) · agent ≥ 0.0.33Variables

Hold until setup/OOBE has finished (safe to rename, join, install).

ActionGuest (agent) · agent ≥ 0.0.33Variables

Run a script in the guest, stream its output, check the result (exit code / text / JSON).

ActionBuilding block · Windows · agent ≥ 0.0.33Variables

Create, update or remove a Windows Defender Firewall rule (matched by display name).

ActionBuilding block · Windows · agent ≥ 0.0.33Variables

Install or remove a Windows (Server) feature / optional feature.

For web-2104:step 1 runsstep 2 runsstep 3 runsstep 4 runs

Watch a VM go from clone to ready.

Next: configuration runs · the Verlocx agent

See Verlocx in action

A 30-minute walkthrough on your use case — deployments, workflows, governance.

Hypervisor

We use your details only to handle this request — privacy policy.

Type to search the docs, the user guide, all features, the product pages and the changelog.

↑ ↓ to move↵ to openesc to close