...
Excerpt |
---|
|
Pterodactyl is the open-source game server management panel built with PHP7, Nodejs, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to administrators and users. Stop wasting time fiddling with other systems — make game servers a first class citizen on your platform. |
Table of Contents |
---|
Table of Contents |
---|
maxLevel | 4 |
---|
minLevel | 2 |
---|
outline | true |
---|
class | toc |
---|
|
|
About Pterodactyl
Pterodactyl is an open source game hosting control panel. Learn more about Pterodactyl their website at https://pterodactyl.io/.
Supported Features
Create | Cancel | Suspend | Unsuspend | Management | Config Options |
---|
| | | | | |
Management Features
This module supports the following management features within the client area:
- SSO Control Panel Login
- Start, Stop, Restart Server
...
Enter the details for your Pterodactyl server.
Field Name | Description |
---|
Server Label | Enter a label for this Pterodactyl server, it can be anything you like. |
Hostname | Enter the FQDN hostname for your Pterodactyl server, ie "server1.domain.com". |
Account API Key | Enter your Pterodactyl API Key from your Pterodactyl Panel. (Under " |
Account API Credentials") Your username > API Credentials Click screenshot for full version: Image Added |
Application API Key | Enter your Pterodactyl API Key from your Pterodactyl Panel. (Under "Admin Control Panel" > "Application API"). Select "Read & Write" for all permissions. Click screenshot for full version: Image Added |
Use SSL when connecting to the API (recommended) | Whether to use SSL when connecting to the Pterodactyl Panel's API. Recommended. |
After filling out these options, click "Add Server" to add your Pterodactyl server.
...
To add a server group, from the Pterodactyl overview at [Settings] > [Company] > [Modules] > Pterodactyl, click "Add Server Group", then enter the details.
Option | Details |
---|
Group Name | Enter the name for this server group. |
Add Order | Choose how servers in this group will be selected for provisioning. Currently, first non-full server is the only add order. |
Assigned Servers | Select servers under "Available Servers" and click to move them to the left column to add them to the group. |
Creating Packages
Configurable Options Overview
Configurable Options for Pterodactyl are dynamic. Availability of Configurable Options will depend on the game (Nest) and egg that will be used. To find the name of the configurable options for the Nest and Egg that you'd like to deploy, visit Servers Packages define the pricing, welcome email, module and more. Packages can be assigned to Package Groups, and added to Order Forms. To create a Package, visit [Packages] > Browse, and click the "Create Server" button. Select your Nest and Egg, and observe the "Service Variables" listed at the bottom of the page.
Image Added
The above screenshot references the variables that are available to use for config options for the Source Engine Nest, and Team Fortress 2 Egg. This example would allow config options with the names: SRCDS_GAME, SERVER_PORT, and SRCDS_MAP to be used. The variables available will vary depending the Nest and Egg selected, so it's important to check in Pterodactyl Panel first.
Configurable Options that Override Package Options
As of version 1.7.1 of the module, or Blesta 5.1.0, the following options are available to override their Package option counterparts.
Option Name | Possible Values | Recommended Field Type | Description |
---|
location_id | integer >= 0 | Dropdown | Sets the location where the server will be deployed. |
egg_id | integer >= 0 | Dropdown | Sets the ID of the egg the server will use. |
memory | integer >= 1 | Quantity, Dropdown | Sets the amount of memory to be assigned to the server in MB. |
cpu | integer >= 1 | Quantity, Dropdown | Sets the amount of CPU to be assigned to the server in %. 100% is equivalent to one core. |
disk | integer >= 1 | Quantity, Dropdown | Sets the amount of disk space to be assigned to the server in MB. |
io | integer >= 10 | Quantity, Dropdown | Sets the IO weight of the server. Within a range from 10 to 1000. |
startup | string | Text | Sets the custom startup command to assign to the server. |
image | string | Text, Dropdown | Sets the Docker image to be deployed to the server. |
databases | integer >= 1 | Quantity, Dropdown | Sets the total amount of databases the user can create for the server. |
allocations | integer >= 1 | Quantity, Dropdown | Sets the total amount of allocations the user can create for the server |
backups | integer >= 1 | Quantity, Dropdown | Sets the total amount of backups the user is allowed to create for the server. |
nest_id | integer >= 0 | Dropdown | Sets the ID of the nest the server will use. |
port_range | string | Text | Sets the port range that will be allocated to the server separated by comma. e.g. 25565-25570,25580-25590 |
pack_id | integer >= 0 | Dropdown | Sets the ID of the pack that will be installed in the server. |
swap | integer >= 0 | Quantity, Dropdown | Sets the amount of SWAP memory to be assigned to the server in MB. |
Creating Packages
Packages define the pricing, welcome email, module and more. Packages can be assigned to Package Groups, and added to Order Forms. To create a Package, visit [Packages] > Browse, and click the "Create Package" button. Package" button.
Creating a Package consists of several sections:
...
The Basic section consists of the following options:
Field Name | Description |
---|
Package Name | Enter the name of this Package, it will be visible wherever services are listed and on any order forms. |
Status | "Active" is the default, "Inactive", and "Restricted" are also available. |
Quantity Available | If this Package has a limited quantity available, enter the quantity, or leave it as "Unlimited". |
Use renewal prices for package upgrades | When enabled, upgrading to this package will use renewal prices if they are set. The same will apply to any configurable options that are altered in the upgrade. The regular price will be used if this setting is disabled. |
Description | Enter a Description for this Package. HTML is allowed, and descriptions appear on order forms. |
Configurable Options | A Configurable Option Group may be selected if previously created, but this module does not support configurable options during provisioning. |
Module | Select "Pterodactyl" for the module. |
Module Options
The Module Options section consists of the following options, which are specific to APNSCPPterodactyl:
Field Name | Description |
---|
Server Group | Select "Any" if you wish to specify a specific server, or select the Server Group to provision from. Selecting a group means that accounts will be provisioned from the group. Selecting a group is recommended. |
Location | Select the Location as configured in Pterodactyl. |
Nest | Select the Nest as configured in Pterodactyl. |
Egg ID | Select the Egg ID as configured in Pterodactyl. (In Pterodactyl click Nests, then the Game to see a list of Egg's and their ID's.) |
Dedicated IP (optional) | Check the box to use a dedicated IP address. |
Pack ID (optional) |
|
Memory (MB) | Enter the amount of memory in MB for this server. e.g. 1024 |
Swap | Enter the amount of swap in MB for this server. e.g. 512 |
CPU Limit (%) | Enter the CPU limit for this server. |
Disk Space (MB) | Enter the amount of disk space in MB for this server. e.g. 2048 |
Block IO Weign | Enter the block IO weight for this server, with a value of 10-1000. e.g. 100 |
Startup (optional) | Enter an optional startup command. |
Image (optional) | Enter an optional custom docker image. |
Database Limit (optional) | Enter an optional limit to the total number of databases a user can create. |
Allocation Limit (optional) | Enter an optional allocation limit for a user. |
Server Jar File (EGG DEPENDENT) | The name of the server jarfile to run the server with. Check to allow clients to modify this value during service add/edit. Leave unchecked if you plan to use a configurable option for this field. Defaults to |
"server.jar"."server.jar". The variable is dependent on the egg. For Vanilla Minecraft it is SERVER_JARFILE |
Server Version (EGG DEPENDENT) | The version of Minecraft Vanilla to install. Use "latest" to install the latest version. Check to allow clients to modify this value during service add/edit. Leave unchecked if you plan to use a configurable option for this field. Defaults to "latest". |
Pricing
Field Name | Description |
---|
Term | Enter the term for the desired pricing option. For example, if you wish to create a 3 month pricing option, enter 3 here. |
Period | Select the period for this pricing option. "Day", "Week", "Month", "Year", and "One time" are options. The client will be invoiced every "term period", for example every 3 months if 3 is entered for term, and Month is selected for period. |
Currency | Select the currency this pricing option is available for. |
Price | Enter the price for this pricing option. |
Setup Fee | If there is a setup fee, enter it here. |
Cancellation Fee | If there is a fee to cancel early, enter it here. |
Click the "Add Additional Price" to add more pricing options. It's common for people to create 1 Month, 3 Month, 6 Month, and 1 Year price options. There are many possible combinations.
...
No Format |
---|
Thank you for ordering your Minecraft Server!
Server Name: {service.server_name}
Server IP and Port: {service.server_ip}:{service.server_port}
Log into your account to start and manage your Minecraft Server! Be sure to start your Minecraft server for the first time from within Pterodactyl Panel so that you can agree to the Mojang EULA.
|
When creating or editing a package that uses this module, the following tags will be available:
| Description | Notes |
---|
{module.host_name} | The host name of the server that the service was provisioned on | e.g. "pterodactyl-panel.domain.com" |
{module.server_name} | The name of this game server | e.g. "Hostmaster's Minecraft Server" |
{package.location_id} | The ID of the location in Pterodactyl Panel. | e.g. "1" |
{package.nest_id} | The ID of the Nest as configured in Pterodactyl Panel. | e.g. "2" |
{package.egg_id} | The ID of the Egg as configured in Pterodactyl Panel. | e.g. "5" |
{package.image} | The Docker image of the game server. | e.g. "quay.io/pterodactyl/core:java-glibc" |
{service.server_name} | The name of the server as defined in the module within Blesta |
Description | Notes | {module.host_name} | The host name of the server that the service was provisioned on | e.g. "pterodactyl-panel.domain.com" |
{module.server_name} | The name of this game server | e.g. "Hostmaster's Minecraft Server" |
{package.location_id} | The ID of the location in Pterodactyl Panelpackagenestid ID Nest as configured in Pterodactyl Panel2packageeggid ID of the Egg as configured in Pterodactyl Panelport this game server is running on at the above IP. | e.g. " |
5packageimage}server_username} | The username for the Pterodactyl panel. | Added in version 4.11 of Blesta, version 1.4.1 of Pterodactyl |
{service.server_ |
name name of the server as defined in the module within Blesta.e.g. "Pterodactyl 1"password for the Pterodactyl panel. | Added in version 4.11 of Blesta, version 1.4.1 of Pterodactyl |
Expand |
---|
|
Due to the nature of tag objects containing several fields, many of which are likely irrelevant for use in email templates, but may be useful to you in certain circumstances, a dump of the tags are shown below. Code Block |
---|
language | php |
---|
title | The {module} object |
---|
collapse | true |
---|
| stdClass Object
(
[host_name] => pterodactyl-dev.blesta.com
[server_name] => Pterodactyl 1
) |
Code Block |
---|
language | php |
---|
title | The {package} object |
---|
collapse | true |
---|
| stdClass Object
(
[id] => 1
[id_format] => {num}
[id_value] => 1
[id_code] => 1
[module_id] => 2
[name] => Minecraft
[description] =>
[description_html] =>
[qty] =>
[module_row] => 0
[module_group] => 1
[taxable] => 0
[single_term] => 0
[status] => active
[company_id] => 1
[prorata_day] =>
[prorata_cutoff] =>
[upgrades_use_renewal] => 1
[email_content] => Array
(
[0] => stdClass Object
(
[lang] => en_us
[html] => <p>Thank you for ordering your Minecraft Server!</p>
<p>Server Name: {service.server_name}</p>
<p>Log into your account to start and manage your Minecraft Server!</p>
<p> </p>
<p>debug</p>
<p>{% debug %}</p>
[text] => Thank you for ordering your Minecraft Server!
Server Name: {service.server_name}
Log into your account to start and manage your Minecraft Server!
)
)
[pricing] => Array
(
[0] => stdClass Object
(
[id] => 1
[pricing_id] => 1
[package_id] => 1
[term] => 1
[period] => month
[price] => 5.0000
[price_renews] => 5.0000
[setup_fee] => 0.0000
[cancel_fee] => 0.0000
[currency] => USD
)
[1] => stdClass Object
(
[id] => 2
[pricing_id] => 2
[package_id] => 1
[term] => 1
[period] => year
[price] => 50.0000
[price_renews] => 50.0000
[setup_fee] => 0.0000
[cancel_fee] => 0.0000
[currency] => USD
)
)
[meta] => stdClass Object
(
[allocations] =>
[cpu] => 100
[databases] =>
[dedicated_ip] => 0
[disk] => 1024
[egg_id] => 5
[image] =>
[io] => 100
[location_id] => 1
[memory] => 1024
[nest_id] => 1
[pack_id] =>
[port_range] => 25565-25595
[server_jarfile] => server.jar
[startup] =>
[swap] => 512
[vanilla_version] => latest
)
[groups] => Array
(
[0] => stdClass Object
(
[id] => 2
[type] => standard
[name] => Minecraft Servers
[description] =>
[company_id] => 1
[allow_upgrades] => 1
[names] => Array
(
[0] => stdClass Object
(
[lang] => en_us
[name] => Minecraft Servers
)
)
[descriptions] => Array
(
)
)
)
[option_groups] => Array
(
)
[plugins] => Array
(
)
[names] => Array
(
[0] => stdClass Object
(
[lang] => en_us
[name] => Minecraft
)
)
[descriptions] => Array
(
[0] => stdClass Object
(
[lang] => en_us
[html] =>
[text] =>
)
)
[allocations] =>
[cpu] => 100
[databases] =>
[dedicated_ip] => 0
[disk] => 1024
[egg_id] => 5
[image] =>
[io] => 100
[location_id] => 1
[memory] => 1024
[nest_id] => 1
[pack_id] =>
[port_range] => 25565-25595
[server_jarfile] => server.jar
[startup] =>
[swap] => 512
[vanilla_version] => latest
) |
Code Block |
---|
language | php |
---|
title | The {service} object |
---|
collapse | true |
---|
| stdClass Object
(
[id] => 1
[parent_service_id] =>
[package_group_id] => 2
[id_format] => {num}
[id_value] => 1
[pricing_id] => 1
[client_id] => 1
[module_row_id] => 1
[coupon_id] =>
[qty] => 1
[override_price] =>
[override_currency] =>
[status] => active
[suspension_reason] =>
[date_added] => 2019-12-20 21:41:02
[date_renews] => 2020-01-20 21:41:02
[date_last_renewed] =>
[date_suspended] =>
[date_canceled] =>
[id_code] => 1
[fields] => Array
(
[0] => stdClass Object
(
[key] => server_description
[value] =>
[serialized] => 0
[encrypted] => 0
)
[1] => stdClass Object
(
[key] => server_id
[value] => 30
[serialized] => 0
[encrypted] => 0
)
[2] => stdClass Object
(
[key] => server_jarfile
[value] => server.jar
[serialized] => 0
[encrypted] => 0
)
[3] => stdClass Object
(
[key] => server_name
[value] => Hostmaster's MC Server
[serialized] => 0
[encrypted] => 0
)
[4] => stdClass Object
(
[key] => vanilla_version
[value] => latest
[serialized] => 0
[encrypted] => 0
)
)
[options] => Array
(
)
[package_pricing] => stdClass Object
(
[id] => 1
[package_id] => 1
[pricing_id] => 1
[term] => 1
[period] => Month
[price] => 5.0000
[price_renews] => 5.0000
[setup_fee] => 0.0000
[cancel_fee] => 0.0000
[currency] => USD
)
[package] => stdClass Object
(
[id] => 1
[id_format] => {num}
[id_value] => 1
[id_code] => 1
[module_id] => 2
[name] => Minecraft
[description] =>
[description_html] =>
[qty] =>
[module_row] => 0
[module_group] => 1
[taxable] => 0
[single_term] => 0
[status] => active
[company_id] => 1
[prorata_day] =>
[prorata_cutoff] =>
[upgrades_use_renewal] => 1
[email_content] => Array
(
[0] => stdClass Object
(
[lang] => en_us
[html] => <p>Thank you for ordering your Minecraft Server!</p>
<p>Server Name: {service.server_name}</p>
<p>Log into your account to start and manage your Minecraft Server!</p>
<p> </p>
<p>debug</p>
<p>{% debug %}</p>
[text] => Thank you for ordering your Minecraft Server!
Server Name: {service.server_name}
Log into your account to start and manage your Minecraft Server!
debug
{% debug %}
)
)
[pricing] => Array
(
[0] => stdClass Object
(
[id] => 1
[pricing_id] => 1
[package_id] => 1
[term] => 1
[period] => month
[price] => 5.0000
[price_renews] => 5.0000
[setup_fee] => 0.0000
[cancel_fee] => 0.0000
[currency] => USD
)
[1] => stdClass Object
(
[id] => 2
[pricing_id] => 2
[package_id] => 1
[term] => 1
[period] => year
[price] => 50.0000
[price_renews] => 50.0000
[setup_fee] => 0.0000
[cancel_fee] => 0.0000
[currency] => USD
)
)
[meta] => stdClass Object
(
[allocations] =>
[cpu] => 100
[databases] =>
[dedicated_ip] => 0
[disk] => 1024
[egg_id] => 5
[image] =>
[io] => 100
[location_id] => 1
[memory] => 1024
[nest_id] => 1
[pack_id] =>
[port_range] => 25565-25595
[server_jarfile] => server.jar
[startup] =>
[swap] => 512
[vanilla_version] => latest
)
[groups] => Array
(
[0] => stdClass Object
(
[id] => 2
[type] => standard
[name] => Minecraft Servers
[description] =>
[company_id] => 1
[allow_upgrades] => 1
[names] => Array
(
[0] => stdClass Object
(
[lang] => en_us
[name] => Minecraft Servers
)
)
[descriptions] => Array
(
)
)
)
[option_groups] => Array
(
)
[plugins] => Array
(
)
[names] => Array
(
[0] => stdClass Object
(
[lang] => en_us
[name] => Minecraft
)
)
[descriptions] => Array
(
[0] => stdClass Object
(
[lang] => en_us
[html] =>
[text] =>
)
)
)
[name] => Hostmaster's MC Server
[server_description] =>
[server_id] => 30
[server_jarfile] => server.jar
[server_name] => Hostmaster's MC Server
[vanilla_version] => latest
) |
|
...
When finished, click "Create Package" to create this package.
Notes
Additional Eggs for Pterodactyl Panel can be downloaded from https://github.com/parkervcp/eggs
Final Steps
The only thing left to do is to add this Package Group to an order form so clients may place orders for your Pterodactyl servers. See Creating an Order Form for more details.
Common Problems
- There is a conflict in the custom egg for the game OpenRA because of it's use of the variable SERVER_NAME.
- This must be renamed in the egg in order to work with Blesta.
- When creating a Package, the locations dropdown is empty.
- Make sure you have created a location in your Pterodactyl panel at /admin/locations and that you have set a Description. If no description is set, the location will not appear.