Order paid → service active, no human in the loop.
Visual plugins for SolusVM 2, Virtualizor, Pterodactyl, and cPanel/WHM. Bare metal driven by OpenStack Ironic with Redfish, IPMI, and the iDRAC driver. Every step is designed to be idempotent and retry-safe, with a row in activity_log per phase.
Six phases. One worker. No human in the loop.
A representative VPS order, end to end. Each phase below is a stage in the pipeline, not a measured timing — real durations depend on the upstream provider and image size. Bare-metal flows add the OS-install window driven by Ironic.
- 01.billingwebhookOrder placed, payment capturedWebhook from Stripe / Mollie / PayPal / CoinGate clears the invoice. The order moves to provisioning_pending.billing
- 02.allocatorallocateAllocationEngine picks a hostModules score candidates by CPU compatibility, free RAM, storage availability, NIC capacity, and location filter. The first host that satisfies the product constraints wins.allocator
- 03.driverdriverHypervisor or BMC API callVisual-plugin call into SolusVM 2, Virtualizor, Pterodactyl, or cPanel/WHM, or an Ironic-driven Redfish/IPMI/idrac power-on + PXE boot for bare metal. Methods are designed to be idempotent — same correlation key returns the same object.driver
- 04.imageimageOS installcloud-init for KVM, kickstart / preseed for bare metal via Ironic, container template for game servers. Boot media is cached locally on first download from the upstream source, then served from the local image library on subsequent boots.image
- 05.networknetworkNetwork configIP allocated from the linked subnet, rDNS PTR pushed via PowerDNS / Cloudflare / internal driver, switch port automation runs as a separate job, firewall baseline applied. The DCIM record is updated as each step completes.network
- 06.handoffhandoffCredentials emailed, service activeWelcome email rendered from the Handlebars template, root credentials sealed and emailed, service flipped to active. Each step writes a row to activity_log.handoff
{ "format": "fluxbilling-visual-plugin", "plugin": { "slug": "solusvm2-provider", "type": "infrastructure-provider", "serviceType": "vps", "capabilities": { "canProvision": true, "canSuspend": true, "canTerminate": true, "canReinstall": true, "canConsole": true, "canGetStats": true } }, "flows": { "provision": { "nodes": [ { "id": "start", "type": "trigger" }, { "id": "create_vm", "type": "http", "connection": "solusvm2-api", "method": "POST", "path": "/servers/projects/{{project}}/servers", "body": { "plan": "{{plan_id}}", "location": "{{location}}" } }, { "id": "persist", "type": "set_service_data" } ] } }} // hot-loaded by VisualPluginManager on saveEvery provider is a flow graph. Same lifecycle, every domain.
A provider plugin is a JSON flow graph that wires lifecycle nodes (allocate, create, suspend, terminate, console, resize) to your vendor API. The orchestrator handles allocation, retries, and correlation keys — the plugin only describes the vendor calls. SolusVM 2, Virtualizor, Pterodactyl, and cPanel/WHM are all defined this way and ship in core.
- Idempotent by design.Every node receives a correlation ID. Re-runs of the same key are intended to return the existing object rather than create a duplicate.
- Retry on the queue.Transient failures replay with exponential backoff. Permanent failures surface to the operator console with the upstream’s last response payload.
- Activity log per phase.Each lifecycle node writes a row to activity_log alongside billing events — one place to audit what happened to an order.
OS images, cloud-init seeds, kickstart and preseed templates live in one library. New images get a hash on upload; the provisioner verifies before each boot, so a tampered image never reaches a customer host.

What ships in core.
No add-on purchase, no third-party module license. Every provider below ships as a visual plugin in core, maintained by the platform team, and covered by the same upgrade contract as billing. Proxmox VE and KVM/libvirt are not currently shipped — on the roadmap.

- SolusVM 2KVM. Native v2 API. Provision, suspend, terminate, console, resize.
- VirtualizorKVM, OpenVZ. Stock sync, ISO library, full lifecycle.
- cPanel / WHMShared hosting accounts. Create, suspend, terminate, password reset.
- Redfish 1.xGeneric OOB driver via Ironic. Power, boot order, virtual media.
- Dell iDRACIronic idrac driver for power and virtual-media boot.
- HPE iLOGeneric Redfish driver. Power, boot order, virtual media.
- Generic IPMI 2.0Power, sensors, SOL console via Ironic.
- PterodactylEgg deploy, allocations, console, stats, resize. Shipped.
- Custom panelsVisual-plugin builder — same lifecycle nodes for any vendor API.
WHMCS has more obscure-provider modules thanks to the Modulesgarden marketplace. If you provision an exotic API today (a specific cloud-reseller endpoint, say), check the plugin marketplace first — or describe it as a visual-plugin flow graph using the same lifecycle nodes the shipped providers use.
Try it on your own data. Refund inside 14 days if it’s not the fit.
Pick a tier and provision a tenant in under two minutes — isolated K3s namespace, your own database, the full product. If FluxBilling isn’t the right fit inside 14 days, open a ticket and we’ll refund the subscription. No sales call, no qualification gate.
- 01.< 1 minPick a tierLite from €4.95/mo. Upgrade later, no migration.
- 02.< 2 minProvision the tenantIsolated K3s namespace + your own PostgreSQL database. Full product, your data.
- 03.d0 — d14Refund inside 14 daysNot the fit? Open a ticket within 14 days and we refund the subscription. No questions, no qualification gate.
