BAMCS Modules
← Discover

Pelican

Free

by Foxy · Provisioning · pelican

Provision Pelican Panel servers.

About this module

Pelican

Sell game servers that run on Pelican Panel.

When an order is activated, BAMCS creates the server on your panel: it picks a node and a free port and creates the client's panel account. Clients can then start, stop and reinstall their server from the BAMCS client area.

Type Provisioning (service) module
Version 1.0.0

Features

Automatic provisioning

  • Create: when a service is activated, the server is created with the product's egg, resources and limits.
  • Node and port: the module picks the node with the most free allocations, then the first free allocation on it.
  • Panel account:
    • A client who already has a Pelican account, matched by email address, gets the new server on that account.
    • Otherwise a panel account is created, and the username and password are included in the welcome email.
  • Suspend, unsuspend and terminate follow the service status in BAMCS. For example, an overdue service is suspended on the panel and unsuspended once it is paid.
  • Upgrades and downgrades update the server's memory, swap, disk, CPU, IO and feature limits when the client changes package.
  • Safe to retry: each server is tagged with the BAMCS service it belongs to, so a provisioning retry never creates a duplicate server.
  • Failures: failed actions are retried automatically. If they still fail, staff get an alert and can retry the action from the service page. The client is told their setup is delayed.

Server inventory and capacity

  • Several panels: add one or more Pelican panels to the BAMCS server inventory and group them into server groups.
  • Server choice: new orders go to a server in the product's group that still has room. Room is measured in maximum services and/or memory and disk capacity.
  • Clients choose the location: offer server groups as an order option to let clients pick a location.
  • Health check: every panel is checked hourly. A panel that stops responding gets no new servers, and staff are alerted.

Client area

When Enable ClientArea Buttons is on for the product, the client's service page shows a game server panel with:

  • Live status: running, starting, stopping or offline.
  • Start, Restart, Stop and Kill buttons.
  • Reinstall, with a confirmation step.
  • CPU, memory and disk usage, refreshed every 30 seconds.
  • The server address (ip:port) and the SFTP address.
  • Open Panel, which opens the server on your Pelican panel.
  • Reset Panel Password, which sets a new panel password and shows it once.

Flexible product setup

  • Panel lookups: nodes and eggs are loaded from your panel into dropdowns in the product editor.
  • Environment variables: egg variables use the egg's defaults. You can override any of them per product.
  • Per-order values: any product setting can be set per order with a custom field or a configurable option. For example, let clients choose their memory or name their server.
  • Switching from Pterodactyl: the product editor can copy the settings of an existing Pterodactyl product.

Requirements

  • A Pelican Panel reachable from your BAMCS server over HTTPS.

  • An Application API key with these permissions:

    Resource Access
    Nodes Read
    Allocations Read
    Eggs Read
    Users Read & write
    Servers Read & write
  • A Client API key from an administrator account on the panel. The client-area controls (power, usage, reinstall) need it.

  • Free allocations (IP/port pairs) on the nodes you deploy to.

  • The BAMCS queue worker and scheduler running. Provisioning runs in the background, and the health check runs on the scheduler.

Installation

  1. In BAMCS, go to Modules → Marketplace and install Pelican. Alternatively, upload the module .zip under Upload a module package.
  2. Under Installed Modules, click Activate.

Configuration

Step 1: Add your panel

Go to System → Server Inventory → Add Server:

Field Value
Name Any name, for example "Pelican EU".
Hostname Your panel URL, for example https://panel.example.com. Include the scheme.
Module Pelican
Server Group The group this panel belongs to. Create one first with Add Server Group.
Username Not used. Leave empty.
API Key / Password Your Pelican Application API key.
Maximum Services Optional cap on the number of servers placed on this panel.
Memory Capacity (MB) / Disk Capacity (MB) Optional. Stops placing servers once the products' memory or disk would exceed this.

Save the server, open it again with Edit, and fill in the Pelican fields:

Field Value
Node IDs Comma-separated IDs of the panel nodes to deploy to, for example 1,2. When set, these take priority over the product's node.
Client API Key A client API key from a panel administrator, used for the client-area controls.

Click Test connection to check the URL and the key.

Step 2: Module settings (optional)

Modules → Pelican → Settings has a fallback API URL, API Key and Client API Key. They are only used for services that aren't linked to a server in the inventory. With the inventory set up as in Step 1, you can leave them empty.

Step 3: Create a product

Go to System → Services Catalog and create or edit a product.

  1. On the Module Settings tab, choose Pelican as the module and select the Server Group.
  2. Set Auto Setup to control when the server is created:
    • Payment: once the first invoice is paid.
    • Invoice Created: as soon as the order's invoice exists.
    • Manual: when staff activate the service.
  3. Fill in the Pelican fields:
Field Default Description
Server Name My Pelican Server Name of the server on the panel.
Node – Node to deploy to. Used when the inventory server has no Node IDs.
Egg – The egg (game or software) the server runs.
CPU Limit 0 CPU limit in percent; 100 = one core. 0 = unlimited.
Memory Limit (MB) 0 Memory in MB. 0 = unlimited.
Disk Space (MB) 0 Disk in MB. 0 = unlimited.
Swap (MB) 0 Swap in MB. 0 = disabled, -1 = unlimited.
IO Weight 500 Block IO weight relative to other servers on the node.
Environment Overrides – Egg variables to override, one KEY=value per line.
Database Limit 0 Number of databases the client may create.
Allocation Limit 0 Number of extra ports the client may add.
Backup Limit 0 Number of backups the client may keep.
Enable ClientArea Buttons Off Shows the game server panel on the client's service page.

Set Memory Limit (MB) and Disk Space (MB) even if you don't need the limits themselves: they are what server capacity is measured with.

Per-order values

To let a value be chosen on each order, add a custom field or a configurable option to the product, named variable|Label. For example:

  • memory_limit|Memory as a configurable option with the choices 2048|2 GB and 4096|4 GB.
  • server_name|Server name as a custom field.

Values are applied in this order, and the last one wins:

  1. The product's module settings.
  2. Custom fields.
  3. Configurable options.

Modules → Pelican → Field Variables lists every variable name.

To let clients choose a location, add a configurable option named server_group|Location whose choices are named <group id or name>|Label, for example 2|Frankfurt. A server_group custom field holding a group ID or name works too.

Welcome email

After a server is created, BAMCS sends the product's welcome email. Without a custom welcome email, it sends the standard "service activated" email. Put {{access_details}} in the template to include the panel URL, username, password, IP and port.

Limitations

  • Existing panel accounts: a client whose email already has an account on the panel keeps their existing password. The welcome email then has no password in it, and the client can use Reset Panel Password if Enable ClientArea Buttons is on.
  • Package changes: upgrades and downgrades change resource and feature limits only. A different egg or node on the new product is not applied.
  • Docker image and startup command: the egg's defaults are always used.
  • Ports: one allocation is assigned at creation. Clients can add more up to the Allocation Limit.
  • Node selection:
    • The inventory server's Node IDs take priority over the product's Node.
    • A per-order node_id is only used when neither is set, and only as a custom field, not as a configurable option.
  • Servers deleted on the panel: if a server was deleted on the panel by hand, suspending or terminating it from BAMCS fails and alerts staff. Close the service in BAMCS manually.
  • No single sign-on: Open Panel takes the client to the panel's login page.

Version history

Every version listed here was reviewed and signed by the registry.

1.1.1

Latest Released Oct 14, 2026

Fixed

  • Egg defaults: a server could be refused with The Server Version variable field is required. when the egg has a default for it. Every variable of the egg the server is created with now gets the egg's default unless the product sets it:
    • A per-order egg_id loads that egg's startup command, Docker image and variable defaults. Before, they came from the product's egg, so variables only the chosen egg has were sent without a value.
    • An empty line such as KEY= in Environment Overrides keeps the egg's default instead of sending an empty value.

Changed

  • Refused server creates say why: when the panel refuses to create the server, the service log and the staff alert quote every error it gave, for example Pelican could not create the server for service #4 (HTTP 422): The Server Version variable field is required. Before, they only said the module failed. When a required egg variable has no default and no override, the message names it and says to set it in the product's Environment Overrides. Other failures still give the generic message.

1.1.0

Released Oct 13, 2026

Added

  • Link existing servers: staff can link a service to a server that already exists on the panel, from Link existing server on the admin service page or when creating a service. The service is not provisioned; the panel server's external ID is set to hc-svc-<service id> when it carries another one, and the module stores the server, node and allocation like a provision does. Servers linked to another live service can't be picked. Needs a core with the panel link registry.

1.0.0

Released Oct 1, 2026

No changelog for this version.