Configuring a Provisioning Server

Step-by-step guide to filling in the Admin β†’ Servers β†’ New Server form for each control panel supported by BilloraX.

Last updated : May 1, 2026

Common fields

FieldRequiredDescription
NameYesInternal server label, e.g. VPS-FR-01
Control PanelYesModule type used for provisioning
HostnameYesFQDN or IP of the server, e.g. srv1.example.com
IP AddressNoPublic IP β€” informational only
Max AccountsNoHosting limit on this server (blank = unlimited)
API URLVariesFull API URL (see per-panel below)
API UsernameVariesAPI login (see per-panel)
API Password / TokenVariesAPI password or key (see per-panel)

None β€” manual provisioning

No API connection. Services remain in PENDING status until an admin activates them manually from Admin β†’ Services.

FieldValue
API URL(leave blank)
API Username(leave blank)
API Password(leave blank)

cPanel / WHM

Before adding the server, retrieve the WHM Remote Access Hash: WHM β†’ Development β†’ Remote Access Key. This hash (hundreds of characters) is different from the root password.

FieldValue
API URLhttps://srv1.example.com:2087
API Usernameroot (or WHM admin account)
API PasswordWHM Remote Access Hash (WHM β†’ Development β†’ Remote Access Key)
⚠️
Do not confuse the Remote Access Hash with the SSH password. The hash is a long alphanumeric string generated in the WHM interface.

cPanel / WHM β€” Product settings

These settings are configured at the product level (Admin β†’ Services β†’ [Product]), not on the server.

SettingRequiredDescription
cPanel PackageYesExact package name in WHM, case-sensitive (WHM β†’ Packages β†’ Add a Package)
Max Email AccountsNo0 = unlimited
Max DatabasesNo0 = unlimited
Disk Quota (MB)No0 = unlimited
Bandwidth (MB/month)No0 = unlimited

Plesk

Create an API key in Plesk before adding the server: Plesk β†’ Tools & Settings β†’ Plesk API Access.

FieldValue
API URLhttps://srv1.example.com:8443
API Usernameadmin
API PasswordPlesk admin password or secret API key

Plesk β€” Product settings

SettingRequiredDescription
Subscription PlanYesExact plan name in Plesk (Plesk β†’ Service Plans)
Disk Quota (MB)No0 = unlimited
Bandwidth (MB/month)No0 = unlimited
Extra DomainsNo0 = no aliases

DirectAdmin

Generate an API key in DirectAdmin: Admin Panel β†’ Your Account β†’ API Keys.

FieldValue
API URLhttps://srv1.example.com:2222
API Usernameadmin
API PasswordDirectAdmin API Key

DirectAdmin β€” Product settings

SettingRequiredDescription
DirectAdmin PackageYesPackage name (Admin Panel β†’ Manage User Packages)

HestiaCP

Create an API access key in HestiaCP: Admin β†’ Access Keys β†’ Add Key.

FieldValue
API URLhttps://srv1.example.com:8083
API Usernameadmin
API PasswordHestiaCP Access Key

HestiaCP β€” Product settings

SettingRequiredDescription
HestiaCP PackageYesPackage name (Packages β†’ WEB)

Virtualizor

Generate API credentials in Virtualizor: Virtualizor Admin β†’ Configuration β†’ API.

FieldValue
API URLhttps://srv1.example.com:4085
API UsernameAPI Key (APIKEY)
API PasswordAPI Secret (APISECRET)

Virtualizor β€” Product settings

SettingRequiredDescription
Plan IDYesNumeric plan ID (Plans β†’ VPS Plans)
RAM (MB)Yese.g. 1024 for 1 GB
Disk (GB)YesPrimary disk size
vCPUYesNumber of virtual cores
Bandwidth (GB/mo)No0 = unlimited
Default OS IDNoOS ID from Virtualizor β†’ OS Templates

Pterodactyl

Create an Application API Key in the Pterodactyl panel: Admin β†’ API β†’ Create New API Key. Check all permissions under the Application API tab.

FieldValue
API URLFull panel URL, e.g. https://panel.example.com
API Username(leave blank β€” not used)
API PasswordApplication API Key (starts with ptla_)
⚠️
Use the Application API, not the Client API. The Client API (found in user accounts) cannot create servers programmatically.

Pterodactyl β€” Product settings

SettingRequiredWhere to find it
Node IDYesAdmin β†’ Nodes β†’ click the node β†’ check the URL (/admin/nodes/view/1)
Nest IDYesAdmin β†’ Nests β†’ check the URL (/admin/nests/1)
Egg IDYesAdmin β†’ Nests β†’ [Nest] β†’ click the egg β†’ URL (/admin/eggs/15/view)
RAM (MB)Yes0 = unlimited β€” e.g. 1024 = 1 GB
Disk (MB)Yes0 = unlimited β€” e.g. 5120 = 5 GB
CPU (%)Yes100 = 1 core, 200 = 2 cores, 0 = unlimited
Swap (MB)No0 = disabled, -1 = unlimited
Max DatabasesNo0 = none
Max BackupsNo0 = none
Extra AllocationsNoAdditional ports beyond the primary one
Environment VariablesNoJSON β€” e.g. {"SERVER_JARFILE":"server.jar","MINECRAFT_VERSION":"latest"}
Startup CommandNoLeave blank to use the egg's default
Docker ImageNoLeave blank to use the egg's default
βœ…
The node must have at least one free allocation (unassigned IP + port) before a server can be created. Add allocations: Admin β†’ Nodes β†’ [Node] β†’ Allocation.

Pterodactyl β€” Automatic delivery

When a client places an order, BilloraX automatically creates (or finds) a Pterodactyl account using the client's email, finds a free allocation on the configured node, fetches the egg's default values, then creates the server via the API.

The Pterodactyl server ID is stored in the service's username field. The panel URL is saved in the service notes and displayed in the client portal. The client logs into the panel with their email address and the password generated at checkout.

Custom (CUSTOM)

Reserved for custom-developed modules. See the Creating a Module page to add your own control panel integration.

Testing the connection

After creating or editing a server, use the Test Connection button in Admin β†’ Servers β†’ [Server] β†’ Edit to verify that BilloraX can reach the API with the configured credentials.