Pelican for WHMCS
WHMCS provisioning for Pelican and Pterodactyl: create, suspend, upgrade and delete game servers automatically, with node tags and extra ports.
39,99 €
- Version 0.2.0, updated 12 October 2026
- For WHMCS 8 (PHP 8.1+), Pelican Panel 1.0 and Pterodactyl Panel 1.x
- A WHMCS module, no changes to WHMCS itself
- One licence for one WHMCS installation, new versions included
Screenshots
Features
Selling game servers on Pelican Panel? Pelican for WHMCS provisions them from WHMCS: paid order in, server out. Since 0.1.1 it also works with Pterodactyl Panel 1.x.
The whole service lifecycle
- Create on payment: panel user found or created, node and ports chosen, server installed with the product's egg
- Suspend and unsuspend with the invoice
- Upgrades and downgrades apply right away: memory, disk, CPU, databases, backups, more ports, even a different egg with reinstall
- Change password, reinstall and terminate; optionally the panel user goes with the last server
- Admin buttons "Apply product settings" and "Reinstall server"
Where the server goes
- Node tags pick the region or hardware (
de,us,ryzen...), as a product setting or as a configurable option the customer chooses - Pelican's own node selection: only nodes with room for memory, disk and CPU, none in maintenance
- Port range and dedicated IP per product; extra ports on the same IP as the main port
Products your way
- Egg drop-down with the eggs of your panel
- Limits, image, startup command and egg variables per product
- Configurable options and custom fields override any setting: memory (
2 GBor2048), disk, CPU, location, egg, image, or any egg variable likeMINECRAFT_VERSION - Server name template with product, service ID and client name
For your customers
- Client area with server address and extra ports, status, game and resources
- Server control (new in 0.2.0): with a client API key of an admin account as the server's Access Hash, customers start, restart, stop and kill their server, watch live usage, use a live console with commands, and manage schedules and backups, all on the service page
- Your texus extensions included: with Usage Statistics, Schedules Plus, Subdomain Manager, Custom Domains, Database Manager, Server Importer, File Explorer, Server Splitter, Idle Stop or SFTP Address on the panel, their features appear by themselves
- Customer features per product: choose exactly what the client area offers
- A customer only ever reaches their own server: every request goes through the module, which passes on a fixed list of panel routes
- The server control in WHMCS is tested by simulating WHMCS' calls against a real Pterodactyl panel; the same code runs in our FOSSBilling and Blesta modules, tested end to end
- "Open game panel" button, panel login in the welcome email (
{$service_username},{$service_password})
Built to be reliable
- Servers and users carry external IDs (
whmcs-<service>), so WHMCS always finds its server again - Running suspend, unsuspend or terminate twice does no harm
- Clear messages instead of HTTP codes, every API call in WHMCS' module log with the key hidden
- Suspend, unsuspend and terminate keep working even without a valid licence
- Tested against Pelican Panel 1.0.0-rc.1 and Pterodactyl Panel 1.15.1 with real Wings nodes: create, install, upgrade, egg change, reinstall, terminate
Documentation
A WHMCS provisioning module for Pelican Panel, which also works with Pterodactyl Panel 1.x: WHMCS creates the game server when an order is paid, suspends and unsuspends it with the invoice, applies upgrades and downgrades, and deletes it on cancellation. Customers see their server address and a button to the game panel in the WHMCS client area, and with a client API key they control it right there: start, stop and restart, a live console, schedules, backups and the features of texus extensions on the panel.
Tested with Pelican Panel 1.0.0-rc.1 and Pterodactyl Panel 1.15.1; the module detects the panel type from its API. Needs WHMCS 8.x on PHP 8.1 or newer with the curl and sodium extensions.
What it does
| WHMCS action | In Pelican |
|---|---|
| Create | Finds or creates the client's panel user, picks a node and free ports, creates the server with the product's egg, limits and variables |
| Suspend / Unsuspend | Suspends or unsuspends the server (running it twice does no harm) |
| Upgrade / Downgrade | New memory, disk, CPU, swap, IO, databases and backups; more extra ports; a new egg with reinstall |
| Change password | Sets the panel user's password |
| Terminate | Deletes the server; optionally the panel user when it has no servers left |
| Admin buttons | "Apply product settings" (apply limits again) and "Reinstall server" |
| Client area | Server name, address and extra ports, status, game, resources, "Open game panel"; with a client API key also power, live console, schedules, backups and texus extensions (see below) |
| Admin area | Pelican server with link, status, address, node, egg, limits and licence state |
Every server carries the external ID whmcs-<service id>, every user whmcs-client-<client id>, so WHMCS always finds its server again, also after renames in the panel.
Installation
- Copy the folder
modules/servers/texuspelicanfrom the download into your WHMCS installation (the result is<whmcs>/modules/servers/texuspelican/texuspelican.php). - In the panel, create an application API key with read and write access to servers, nodes, allocations, users and eggs (Pelican: Admin > API Keys, type Application; Pterodactyl: Admin > Application API, also locations and nests). If you limit the key to IP addresses, add the IP of your WHMCS server.
- In WHMCS, open System Settings > Servers > Add New Server:
- Module: Pelican Panel (texus)
- Hostname: the panel address, like
panel.example.com(orpanel.example.com:8443) - Password: the API key
- Access Hash (optional): a client API key of an admin account for the server control in the client area (Pterodactyl: Account > API Credentials; Pelican: Profile > API Keys). Only admins reach the servers of all customers; Test Connection checks the key.
- Secure: tick it when the panel uses https
- Click Test Connection, then save. Put the server into a server group.
- Create a product (type Other), choose the server group and Pelican Panel (texus) under Module Settings, and fill in the settings below. Enter your licence key once.
Product settings
| Setting | |
|---|---|
| Egg | The egg the server runs; the drop-down lists the eggs of your panel |
| Memory, Disk, CPU, Swap, Block IO weight, CPU threads | Resource limits (MiB, %); 0 = unlimited |
| Databases, Backups | How many the customer may create |
| Extra ports | Ports on top of the main port, assigned on creation on the same IP |
| Node tags | Pelican: only nodes with all of these tags. Pterodactyl: location IDs or short codes. Comma separated, empty = any node with room |
| Port range | Only ports in these ranges, like 25565-25600 or 25565,27015 |
| Dedicated IP | Only IPs no other server uses yet |
| Docker image, Startup command | Empty = the egg's default |
| Variables | One per line VARIABLE=value, for the egg's variables; empty ones keep the egg's default |
| Server name | Template with {product}, {serviceid}, {domain}, {firstname}, {lastname} |
| OOM killer, Start after install, Skip install script | Passed on to Pelican |
| Reinstall on egg change | When an upgrade switches the egg, reinstall the server |
| Delete unused users | On termination, delete the panel user if it has no servers left |
| Licence key | From texus-addons.de; once per WHMCS installation, the same key in every product |
| Customer features | What the client area offers (with a client API key on the server): power,console,schedules,backups and the texus extensions below; comma separated, empty = details only |
How the node and ports are chosen
The module asks Pelican which nodes have room for the server's memory, disk and CPU and carry all tags (Pelican's own choice, maintenance mode excluded). On the first of these nodes with enough free ports on one IP, the lowest free port becomes the main port and the next ones the extra ports.
Options the customer chooses
Configurable options and custom fields override the product settings when their name matches (the part before | counts, case does not matter):
| Name | Overrides |
|---|---|
memory, ram | Memory; 2 GB or 2048 both work |
disk, disk space, storage | Disk |
cpu | CPU |
databases, backups, extra ports | Limits |
node tags, location | Node tags (for a location choice: tag your nodes de, us, ... and use the tag as option value) |
egg | Egg ID (for a game choice) |
docker image | Image, or the image's label in the egg like Java 21 |
server name | Server name |
An egg variable, like MINECRAFT_VERSION or its display name | That variable |
Upgrades of configurable options are applied right away (WHMCS calls the module's upgrade function).
Welcome email
The module stores the panel login in the service: use {$service_username} and {$service_password} in the product's welcome email, together with the panel address. A client who already has a panel user (found by email address) keeps their password; the email then shows only the username.
Server control in the client area
With a client API key as the server's Access Hash, the service's page in the client area shows the server control below the details, with a menu for its parts. The product's Customer features choose what it offers:
| Feature | What the customer does |
|---|---|
power | Start, restart, stop and kill; state, uptime and live gauges for CPU, memory, disk and network |
console | Live console output and commands; accept the Minecraft EULA with one click |
schedules | Schedules with presets and tasks (command, power action, backup) |
backups | Create, download, lock and delete backups within the limit |
With texus extensions on the panel (installed and licensed), also stats (Usage Statistics), workflows (Schedules Plus), subdomains (Subdomain Manager), domains (Custom Domains), databases (Database Manager), import (Server Importer), trash (File Explorer), split (Server Splitter 0.2.0+), idle (Idle Stop) and sftp (SFTP Address 0.3.0+). A customer only ever reaches their own server: every request goes through the module, which looks the server up by the service and passes on a fixed list of panel routes. Actions customers take appear in the panel's activity log under the admin account of the client API key.
For the live console, add the address of your billing system to allowed_origins in the Wings configuration of each node (/etc/pterodactyl/config.yml) and restart Wings. Without it, the console shows a note and commands still reach the server.
Resources a customer gives to split servers (Server Splitter) stay with them on upgrades: the module subtracts them from the product's limits.
Good to know
- An upgrade that switches the egg while the server is still installing saves the egg and tells you to use Reinstall server afterwards; Wings refuses a second reinstall at the same time.
- Suspending, unsuspending and terminating also work without a valid licence, so a lapsed licence never keeps you from stopping a service. Creating and upgrading need one.
- All API calls appear in WHMCS' module log (System Logs > Module Log) with the key hidden.
- Removing the module from a product does not touch existing servers.
Requirements
- WHMCS 8.x, PHP 8.1+ with curl and sodium
- Pelican Panel 1.0 or Pterodactyl Panel 1.x (application API; a client API key of an admin account for the server control)
- Outgoing HTTPS from WHMCS to the panel and to texus-addons.de
Changelog
0.2.0
- Server control in the client area: with a client API key of an admin account as the server's Access Hash, customers start, stop, restart and kill their server, use a live console, see live usage, manage schedules and backups, and use the features of texus extensions on the panel (statistics, workflows, subdomains, domains, databases, import, trash, splitting, idle stop, SFTP address).
- New product setting "Customer features" to choose what the client area offers.
- Extra ports are shown as their own line ("Extra ports: 25504") instead of a second address.
- Resources given to split servers (Server Splitter) stay with them on upgrades.
- Test Connection also checks the client API key.
0.1.3
- The product's module settings no longer show the "Customer features" field that came with the shared panel core in 0.1.2: it only applies to the client area of the Blesta module and did nothing in WHMCS. Existing products keep all their settings.
0.1.2
- Shared panel core updated (the same code as in the Blesta and FOSSBilling modules): the panel API client can also act with a client API key, longer timeouts for single calls, and resource limits already given to a server are taken into account when computing changes. No visible change in WHMCS.
0.1.1
- Also works with Pterodactyl Panel 1.x: the module detects the panel type from its API. On Pterodactyl, "Node tags" take location IDs or short codes, and new panel users get the client's first and last name.
- Clearer error messages that name the panel instead of Pelican.
0.1.0
- First release: create, suspend, unsuspend, upgrade and downgrade (limits, extra ports, egg change with reinstall), change password, reinstall and terminate Pelican servers from WHMCS. Node and ports chosen by node tags, port range and dedicated IP; egg variables from product settings, configurable options or custom fields; client area with address, status and resources; admin tab with server details and licence state.
Licence and download
One purchase = one licence = one WHMCS installation. The licence is bound to one WHMCS address and the server it runs on. Subdomains count separately. You can move the licence at any time in your account.
After buying on sourceXchange or BuiltByBit, sign in here with your email address (BuiltByBit: redeem your activation code). You download the extension with the licence key built in, and every new version from your account.
Questions before buying? Ask on our Discord support server or at support@texus-addons.de.
Related
Game Servers for FOSSBilling
Sell Pelican and Pterodactyl game servers with FOSSBilling: servers are created, suspended and deleted with the order.
Game Servers for Blesta
Sell Pelican and Pterodactyl game servers with Blesta, and let customers run them from the client area: power, live console, backups, schedules and texus extensions.
Schedules Plus
Multi-step server workflows that wait for the real server state: announce, stop, back up with rotation, start again.


