The Pelican module creates the game server on your Pelican panel automatically when an order is paid, for any egg and with every port it needs. Clients get the console, files, backups, databases, schedules and more right in your client area.
Free - View Pricing
What Pelican gives you
Gives both your staff and your clients a purpose-built interface in their own area of Blesta.
Configure it independently for each brand on a multi-company install, so every company runs with its own settings.
The Activity tab lists recent panel events and shows IP addresses only for the customer's own actions, never your staff's.
Every staff and client label ships in editable language files, ready to translate into any language or reword to match your brand.
Browse, edit, upload, download, rename, delete, compress and extract files from the Files tab, with a clear message when an upload fails.
A built-in demo mode runs the whole extension from bundled sample data, so you can trial every screen and action before you have an account or API key.
API keys, tokens, passwords and secret URLs are stored encrypted, so the credentials that control your account are never sitting in your database in plain text.
Staff see the server, its limits and allocations and the client's panel login, and can suspend, unsuspend or reapply the package resources from the service page.
An order that would leave a required game setting empty is stopped with a message naming it, and an order with no free ports leaves nothing half-created on the panel.
A paid order creates the panel account and the game server, and suspensions, unsuspensions, package changes and cancellations follow on the panel without anyone opening it.
Place servers by node tags or on the nodes you pick, most free memory first and honouring each node's over-allocation, so a full node is skipped instead of failing the order.
What it sends and what comes back is recorded in Blesta's own log, with credentials never written to it, so you can see exactly what happened without leaving your admin area.
Pick the egg on the package and its startup command, Docker image and variables come straight from the panel, with optional package overrides for the image and startup command.
Choose per variable whether the customer fills it in at checkout or the package value is used, and every value is checked against the egg's own rules before the order goes through.
Reserve extra ports per game as offsets or ranges on the same IP, add spare ports, limit them to a port range and scope lines to one egg; the whole group moves up when a port is taken.
Customers create, rename, lock, download and restore backups, automate tasks on a cron schedule and share access by email with chosen permission groups, all within your package limits.
Customers get Overview with live stats and power, Console, Files, Databases, Backups, Schedules, Network, Users, Startup, Settings and Activity tabs, so they never need the panel itself.
Build a Game Server list and each egg's variables as configurable options with show-when-picked logic in one step, priced for the packages you choose and optionally hidden from admin lists.
Your API credentials are checked with the provider the moment you save them and the save is refused if they do not work, so a typo is caught immediately instead of the first time it matters.
Attach Blesta configurable options named for the package's own settings and clients pick their own sizing or extras at checkout, overriding or adding to the package defaults - so one package can sell your whole range.

Sell game servers from your Pelican panel and let customers run them entirely from your Blesta client area.
Selling game servers usually means creating panel accounts by hand, hunting for free ports for games that need several of them, and sending customers off to a second control panel for everything they want to change. The Pelican module creates the panel account and the server when an order is paid, places it on a node with room, reserves every port the game needs on one IP, and fills in the egg's settings. Your customers then manage the server from your client area: console, files, databases, backups, schedules, ports, users, startup settings, reinstall and activity are all there.
Installing and updating extensions can now be done automatically through the Blesta Club Subscription Manager - this is the recommended way going forward.

Upload the extension folder into your Blesta installation so it lands under your Blesta directory at:
components/modules/pelican/
For example, on a typical install: /var/www/html/blesta/components/modules/pelican/
https://panel.example.com, with no path.papp_).pacc_).You're ready to go - see the usage guide for a walkthrough of day-to-day use.
A panel row needs two different keys. They look alike, they come from different pages of the panel, and they are not interchangeable. Pasting each one into the other's field is an easy mistake to make, and the panel will not save until each key is in its own field.
| Field in Blesta | Key type | Starts with | Created at | Used for |
|---|---|---|---|---|
| Application API Key | Application key | papp_ |
Admin > API Keys > Application keys | Provisioning: users, servers, nodes (including allocations) and eggs |
| Admin Account API Key | Account key of a root administrator | pacc_ |
Profile (top right) > Account > API Keys | Everything customers do in the client area: console, files, databases, backups, schedules, network, users, startup, settings, activity |
Check the prefix before you paste: papp_ goes in Application API Key, pacc_ goes in Admin Account API Key.
Saving a panel makes two read-only requests: a list of nodes with the application key, and a permissions lookup with the account key. If either fails you get "The panel could not be reached or a key was rejected."
Open Tools > Logs > Module. Each request is logged with the panel's answer (key values are masked):
| Log shows | Likely cause |
|---|---|
| 401 Unauthenticated on the nodes request or the permissions request | That key is wrong, incomplete, revoked, or pasted in the wrong field. Check the prefixes above. |
| 403 on the nodes request | The application key lacks read access on Nodes. Edit the key on the panel and grant it. |
| 403 on the permissions request | An application key is in the Admin Account API Key field. The panel's reply says an application key is being used on an endpoint that requires a client (account) key. Swap the two keys. |
| 301 or 302 | The URL redirects, usually http:// instead of https://. Enter the final URL. |
| 404 | The URL has a path on it. Enter only the panel address, for example https://panel.example.com. |
| Request did not respond | The server running Blesta cannot reach the panel, or the panel certificate is not trusted. |
The client tabs only manage a server whose owner on the panel is the client's own panel account. This usually happens after staff attached an existing server to a service: check that the service has both the Server ID and the Server UUID of that server, and that the server's owner on the panel uses the same email address as the client in Blesta. Change the owner on the panel (or the service's Server ID and UUID) and reload the tab.
The console connects each customer's browser straight to the node that runs their server, not through Blesta. Three things on every node must be true, or the console stays on "Disconnected" and the browser reports an error such as NS_ERROR_WEBSOCKET_CONNECTION_REFUSED. The panel row form in Blesta shows the same warning.
allowed_origins in the node's Wings config.yml (usually /etc/pelican/config.yml), then restart Wings. Use the scheme and host exactly as customers see them, with no trailing slash, for example https://billing.example.com (add the port if it is not 443). Pelican only lists its own address there by default, so Blesta is rejected until you add it.192.168.1.8 only works on that network.ws:// socket from an https page. Give the node a certificate (scheme https) or put it behind a reverse proxy.To see what the panel hands the browser, open Tools > Logs > Module and find the websocket request for the server: its socket value is the exact address the browser connects to. To tell a rejected origin from a blocked port, open the Console tab with the browser developer tools Network tab on WS: a 403 on the handshake means the origin is not allowed, no response at all means the address or port cannot be reached.
Installing and updating extensions can now be done automatically through the Blesta Club Subscription Manager - this is the recommended way going forward.

Upgrading works just like installing: upload the new files over the old ones, then run the upgrade from the same page you installed it on.
This upgrade is drop-in - no steps are needed beyond replacing the files and clicking Update. Version 1.0.0 is the first release.

Go to Settings > Company > Modules, open the Installed tab and click Manage next to Pelican. The Panels tab lists your Pelican panels; click Add Panel, enter a Name, the Panel URL, the Application API Key and the Admin Account API Key, and save. The form repeats the node settings the console needs (allowed origins, a reachable address, https). Tick Enable Mock API to try the module with sample data instead of a real panel. When you edit a panel, the two key fields stay blank; leaving them blank keeps the stored keys. The Panel Groups tab groups several panels so a package can use the first one in the group.
On a package's Module tab:
8211-8300.Additional Port Configuration takes one line per extra port: QUERY_PORT|+1 assigns the primary port plus one, RCON_PORT|20010-20110 assigns a free port from the range. The port number is written into the egg variable the line names. All ports are on the same IP, and if a neighbouring port is taken the whole group moves up to the next block that fits. Start a line with an egg id and a colon (3: SERVER_COMM_PORT|+2) to apply it only when that egg is chosen. Two lines for the same egg cannot ask for the same offset.
Port Range limits the primary port, its offset ports and the spare ports. Lines that carry their own range (RCON_PORT|20010-20110) are not limited by it. Leave it empty to use any free port on the node. When no node has a free block, the order is refused and nothing is created on the panel.
Go to Settings > Company > Modules > Installed > Pelican > Manage, then the Configurable Options tab. Pick the panel and click Load Eggs. The table lists each egg with its variable count (required with no default / all). Enter an Option Group Name, choose whether to add only the variables that are required with no default or all variables, tick the eggs and the Packages to attach the group to, and click Build Options. This creates a Game Server list plus, for each egg, its variables, shown only when that egg is picked and priced at 0 for the terms of the ticked packages. Run it again to add eggs; nothing is deleted. Tick Hidden to keep the generated options out of the admin lists.
When a client orders, the module finds the client's panel account by email (or creates one), reserves the ports, and creates the server. The order is stopped with a message listing the required egg variables that have no value ("These egg variables are required and have no value: ..."), and a value that breaks the egg's rules is refused as "... is not valid". On the staff Add Service form every egg variable is listed. After choosing the package and term, wait for the form to refresh before picking a Game Server (egg) option, or the egg choice is reset by the refresh. To attach a server that already exists on the panel instead of creating one, untick provisioning and enter both its Server ID and its Server UUID (both are required). The server must belong to the client's own panel account, the one with the same email address as the client in Blesta; otherwise the client tabs refuse to manage it and show "This server could not be confirmed as yours on the panel". Editing a service renames the server and resizes it to the package limits. Changing a client's package resizes the server to the new package.
Expand the service's row in the client's Services list in the admin area (or, for the client, in their own Services list) to see the server name, its address (the port's alias when it has one), and the panel email, password and an Open Panel link.
Open a service and its Overview tab to see the server name, address, status, CPU, memory and disk limits and its allocations, plus the client's panel email and password and an Open Panel button. Suspend or Unsuspend the server on the panel, or Reapply Package Resources to resize it to the current package limits.
Shows the server name, a live status badge, its addresses, and CPU, memory, disk, network and uptime figures that refresh every few seconds. Start, Restart, Stop and Kill send power signals. The Panel Access box shows the panel email and password, and Open Panel opens the Pelican panel.
A live console of the server with the same power buttons and a command box. It connects straight to the node, which must allow your Blesta site (see the install guide).
Browse folders, open and edit text files and save them, create folders, upload files, rename, download, delete, compress the ticked files into an archive, and extract an archive with Extract. A failed upload names the file that failed.
Create a database with a name and the hosts allowed to connect, see its host, username and password, rotate the password or delete it, up to the package's database limit.
Create a backup with an optional name, files to leave out and a lock. Each backup can be downloaded, renamed, locked or unlocked, restored (after confirming the restore, a second prompt asks whether to delete all files on the server first) or deleted. Locked backups cannot be deleted. The backup limit comes from the package.
Create a schedule with a name, the minute, hour, day, month and weekday, and whether it is active and runs only while the server is online. Each schedule can be run now, switched on or off, or deleted, and takes tasks: send a command, a power action or create a backup, with an offset in seconds.
Lists the server's ports. Add an allocation (up to the package limit), make one primary, save notes on each, or remove a port that is not primary.
Give another person access to the server by email, choosing permission groups such as console and power, files, backups or databases, and remove them again.
Shows the startup command, lets the customer switch between the egg's Docker images, and edit the variables the package exposes to them.
Shows the SFTP host and username, and lets the customer rename the server, set its description, or reinstall it.
Lists recent panel activity on the server with the time of each event. The IP address is shown only for actions taken by the customer's own panel account.
egg_id, memory, swap, disk, io, cpu, threads, databases, allocations, backups, spare_ports, docker_image or startup overrides that package setting. An option named after an egg variable in lowercase (minecraft_version) sets it for any egg, and egg<ID>_<variable> (egg3_server_name) sets it only while egg <ID> is chosen. Values are checked against the egg's own rules before the order is accepted.{service.name}, {service.primary_ip}, {service.primary_alias}, {service.primary_port} and {module.url}; the default template shows the alias when the port has one.v1.0.0 - 2026-10-31
PHP 8.2 - 8.4 · Blesta 6.x
Initial release: provisions, suspends, unsuspends, resizes and cancels game servers on a Pelican panel for any egg
Added node placement by tags or selected nodes, multi-port configuration on one IP with spare ports and an optional port range
Added customer-set egg variables on the order form, checked against the egg rules, and a one-click Game Server configurable option builder
Added client area tabs for Overview, Console, Files, Databases, Backups, Schedules, Network, Users, Startup, Settings and Activity, and a staff Overview tab
Added a Mock API mode that runs every screen and action from sample data
Get exactly what you need and want.
Requires PHP 8.2 - 8.4 · Blesta 6.x
Value: Free
Not sure whether to lease or own? Our FAQ explains how the licence types differ.
What our customers say
(0 customer reviews)
It is possible to leave a review only if you have purchased this extension or a Club tier which contains it.
We reserve the right to alter wording or formatting for presentation.
We will discuss any changes made and offer the option to withdraw review text if the changes can't be agreed on.
It may take up to 1 hour for a review to appear or update due to caching.
More extensions to explore
Module
Integrate BunnyDNS for automatic DNS provisioning and management.
PHP 8.2 - 8.4 · Blesta 6.x
Module
Integrate Cloudmini for automatic cloud hosting provisioning.
PHP 7.2 - 7.4, 8.1 - 8.4 · Blesta 5.x
Module
Provision servers using Convoy, a Proxmox based VPS management panel
PHP 8.2 - 8.4 · Blesta 6.x
Module
Integrate Datalix module into your Blesta install to provision VPS servers.
PHP 8.2 - 8.4 · Blesta 6.x
Module
Integrate Enhance for automatic provisioning and management.
PHP 8.2 - 8.4 · Blesta 6.x
Module
Integrate Hetzner Cloud for automatic server provisioning.
PHP 8.2 - 8.4 · Blesta 6.x