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
- In BAMCS, go to Modules → Marketplace and install Pelican.
Alternatively, upload the module
.zip under Upload a module package.
- 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.
- On the Module Settings tab, choose Pelican as the module and select
the Server Group.
- 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.
- 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:
- The product's module settings.
- Custom fields.
- 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.