AxiWHMCS is the Axigen WHMCS Server Provisioning Module — a drop-in WHMCS plugin that automates the lifecycle of Axigen mail-server domains and mailbox accounts directly from inside WHMCS. It is intended for hosting providers who use WHMCS for billing and automation and run Axigen as their mail platform.
The module communicates with Axigen via the Axigen CLI protocol (TCP, optionally SSL) and supports multi-server clusters with round-robin load balancing.
AxiWHMCS supports two distinct WHMCS product types:
Axigen Domain — full domain provisioning (groupware, storage locations, admin limits, mailing lists, groups, aliases).
Axigen Account — individual mailbox provisioning inside an existing Axigen domain (storage quota, message limits, account class, password).
AxiWHMCS works with Axigen X6 (10.6.x) and Axigen X7 (10.7.x).
1. Architecture
AxiWHMCS sits on the WHMCS host as a standard server provisioning module. Each provisioning action triggered by WHMCS (create, suspend, unsuspend, change package, terminate, change password, usage update) opens a TCP connection to the Axigen CLI port, sends the relevant CLI commands, and returns the result to WHMCS.
For clusters, WHMCS server groups can contain multiple Axigen servers; AxiWHMCS picks a target on each provisioning request using round-robin selection. Domain-level provisioning and account-level provisioning take separate code paths and present separate configuration UIs.
2. Prerequisites
Component | Required version |
|---|---|
WHMCS | 8.x |
PHP | 7.2 or higher |
Axigen Mail Server | Any supported version with CLI service enabled |
Network | TCP / IP reachability between the WHMCS host and the Axigen CLI port (default |
The Axigen CLI service is enabled by default. Confirm it is reachable from the WHMCS host before installation:
3. Installation
Download the AxiWHMCS module archive from the Axigen Additional Modules page.
Extract the archive on the WHMCS host so the module folder lands at:
From inside that folder, install the runtime dependencies and the ModulesGarden framework:
Activate the module: in the WHMCS admin area, navigate to Setup → Addon Modules, locate AxigenProvisioningModule, and click Activate.
The module is now available for server and product configuration.
4. Server configuration in WHMCS
Each Axigen server that AxiWHMCS will provision against is registered as a WHMCS server.
In WHMCS admin, go to Setup → Servers → Add New Server.
Fill in the server fields:
Field Value Name A human-readable label (e.g. axigen-prod-01)Hostname The Axigen server hostname or IP Module AxigenProvisioningModuleUsername An Axigen administrator account Password The administrator’s password Secure Enable for SSL CLI (port 7001); leave disabled for plain CLI (port 7000) Port 7000(plain) or7001(SSL). If left blank, the module uses the default for the secure flag.Click Test Connection. The module opens a CLI session, authenticates, and returns success or a diagnostic error.
Save.
For multi-server hosting, repeat the steps for each Axigen server. Then create a Server Group under Setup → Servers → Create New Group, assign the servers, and choose the Fill Type (round-robin is recommended; AxiWHMCS uses the WHMCS-selected target on each provisioning call).
5. Product configuration
AxiWHMCS exposes two product types, configured per WHMCS product.
5.1 Common settings
For every product:
In Setup → Products / Services → Products / Services, create or edit a product.
On the Module Settings tab, set:
Module Name:
AxigenProvisioningModuleServer Group: the group containing your Axigen server(s)
Product Type:
Axigen DomainorAxigen Account
The remaining fields on the Module Settings tab change depending on the chosen product type.
5.2 Axigen Domain — fields
Use this product type when the customer-facing offering is an entire mail domain.
Section | Fields |
|---|---|
Domain | Domain placeholder / mapping; default reply / postmaster addresses |
Groupware | Enable groupware on the provisioned domain (yes / no) |
Storage locations | Domain, object, and message storage paths (server-side) |
Storage limits | Maximum file count and individual file size per storage location |
Migration | Optional IMAP / SMTP source for new-account migration on first login |
Admin limits | Maximum number of accounts, mailing lists, groups per provisioned domain |
5.3 Axigen Account — fields
Use this product type when the customer-facing offering is a single mailbox inside an existing Axigen domain.
Section | Fields |
|---|---|
Target Domain | Dropdown of domains discovered from the selected server group |
Account Class | Dropdown of account classes available on the selected target domain |
Account Settings | Storage quota, max number of stored messages, message size limits, etc. |
The Target Domain and Account Class dropdowns are populated dynamically by AxiWHMCS via a CLI call to the server group on the Module Settings screen. If a dropdown is empty, the most common cause is that the server group has not been picked yet, or that the Axigen administrator account does not have permission to enumerate domains and / or classes.
6. Provisioning behavior
The actions WHMCS dispatches to AxiWHMCS, and what each one does on the Axigen side:
WHMCS action | Axigen Domain product | Axigen Account product |
|---|---|---|
Create |
|
|
Suspend | Disables the domain (services blocked) | Disables the account (login blocked) |
Unsuspend | Re-enables the domain | Re-enables the account |
Terminate |
|
|
Change Package | Re-applies the new product’s settings to the existing domain or account | Same |
Change Password | Updates the domain admin password (Domain product) | Updates the account password |
Test Connection | CLI session test — does not change state | Same |
Usage Update | Reads current storage usage and message counts; reports back to WHMCS for quota display and overage triggers | Same |
All actions are logged to the WHMCS module log (per the WHMCS standard) for audit and troubleshooting.
7. Multi-server clusters
When a WHMCS server group contains multiple Axigen servers, AxiWHMCS picks a target on each provisioning call based on the server group’s Fill Type. The recommended type is Use the least full server or Round-robin, both of which spread provisioning evenly.
Once a domain or account is created on a specific Axigen server, all subsequent actions for that WHMCS service (suspend, unsuspend, terminate, etc.) are routed to the same server — WHMCS records the assigned server on the service.
For load balancing of user traffic (SMTP, IMAP, HTTPS) across multiple Axigen servers, see the Axigen clustering documentation. AxiWHMCS itself only governs the provisioning path.
8. Operations
8.1 Health and connectivity checks
The fastest health check is the Test Connection button on each WHMCS server. It opens a CLI session, authenticates, and exits. If it fails, the cause is one of:
The CLI port is not reachable from WHMCS (firewall, network).
The administrator credentials are wrong.
SSL is enabled in WHMCS but the CLI service is plain on Axigen, or vice versa.
8.2 Logs
Source | Location |
|---|---|
WHMCS module log (provisioning actions) | WHMCS admin → Utilities → Logs → Module Log |
AxiWHMCS internal trace | Same module log (the module writes structured entries with the action, target server, CLI commands sent, and Axigen response) |
Axigen CLI log (server side) | Axigen log location for the CLI service (see Axigen documentation for your platform) |
Enable the WHMCS module log under Setup → General Settings → Other → Module Debug Logging during initial setup or when troubleshooting.
8.3 Routine operations
Adding a new Axigen server to the cluster: register it as a new WHMCS server, add to the server group. New provisionings will start landing on it; existing services stay on their original server.
Decommissioning an Axigen server: in the WHMCS server, set Maximum Allowed Accounts to a number lower than the current usage, or remove it from the server group. Existing services on it remain provisioned and operational; nothing new is created on it. Migrate the existing services manually if the server is going away.
Rotating the admin password: update the password on Axigen first, then update the Password field on the WHMCS server, click Test Connection to confirm.
9. Troubleshooting
Symptom | Likely cause | Resolution |
|---|---|---|
Test Connection fails with a network timeout | Firewall blocking the CLI port, or the CLI service is not listening on the expected interface | Confirm |
Test Connection fails with an authentication error | Wrong username / password, or the admin account is disabled | Verify the credentials by logging in to Axigen WebAdmin or via |
Test Connection succeeds but provisioning fails with | SSL flag mismatch between WHMCS server config and Axigen CLI service | Either enable SSL on Axigen and use port 7001, or untick Secure in WHMCS and use port 7000 — the two ends must agree. |
Domain creation succeeds but groupware is not enabled | Groupware disabled in product config, or the Axigen domain class does not allow groupware | Re-check Groupware in the product settings. If the dropdown is greyed out, the admin account may not have permission to set it on this domain class. |
Account creation fails with | The product’s target domain has been removed on Axigen since the dropdown was populated | Edit the product, re-pick the target domain (the dropdown reloads from the server). |
Account creation succeeds but Usage Update reports zero | The first usage report runs after the next scheduled WHMCS task; or storage quotas are not enforced on the chosen account class | Wait for the next WHMCS cron run or trigger usage update manually. Confirm the account class enforces quotas. |
Module log shows | Axigen CLI service was restarted or stopped | Restart the CLI service on the Axigen side; confirm it is running and bound to the expected port. |
Change Package re-applies storage limits but does not reduce existing data | This is by design — quotas apply to new usage, existing files are not deleted | If you need to free space, ask the customer to delete content, or use Axigen tools to enforce a hard cap. |
10. References
AxiWHMCS download page: axigen.com/mail-server/additional-modules/
Axigen documentation home: axigen.com/documentation/
WHMCS documentation: docs.whmcs.com
Axigen CLI reference (commands used by AxiWHMCS): see the APIs & Tools section of the Axigen documentation