Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Excerpt
hiddentrue

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
maxLevel4
minLevel2
outlinetrue
classtoc

About Pterodactyl

Pterodactyl is an open source game hosting control panel. Learn more about Pterodactyl their website at https://pterodactyl.io/.

Supported Features

CreateCancelSuspendUnsuspendManagementConfig Options
Status
colourGreen
titleYes
Status
colourGreen
titleYes
Status
colourGreen
titleYes
Status
colourGreen
titleYes
Status
colourGreen
titleYes

Status
colourGreen
titleYES

Management Features

This module supports the following management features within the client area:

  • Control Panel Login
  • Start, Stop, Restart Server


Expand
titleClick here to see client management screenshots...


Installing Pterodactyl

To install the Pterodactyl module, visit [Settings] > [Company] > [Modules] > Available, and click the "Install" button for Pterodactyl.

A message will be displayed, indicating that the module was successfully installed. Then click the "Add Server" button.

Enter the details for your Pterodactyl server.

Field NameDescription
Server LabelEnter a label for this Pterodactyl server, it can be anything you like.
HostnameEnter the FQDN hostname for your Pterodactyl server, ie "server1.domain.com".
Account API KeyEnter your Pterodactyl API Key from your Pterodactyl Panel. (Under "Account API")
Application API Key

Enter your Pterodactyl API Key from your Pterodactyl Panel. (Under "Admin Control Panel" > "Application API").

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.

Server Groups

Server groups are useful for categorizing Pterodactyl servers. When creating a Package, a specific server, or a server group may be selected for provisioning. Blesta will automatically select a Pterodactyl server to provision with when a server group is chosen.

To add a server group, from the Pterodactyl overview at  [Settings] > [Company] > [Modules] > Pterodactyl, click "Add Server Group", then enter the details.


OptionDetails
Group Name

Enter the name for this server group.

Add OrderChoose how servers in this group will be selected for provisioning. Currently, first non-full server is the only add order.
Assigned ServersSelect servers under "Available Servers" and click to move them to the left column to add them to the group.

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 and click the "Create Server" button. Select your Nest and Egg, and observe the "Service Variables" listed at the bottom of the page.

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.

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.

Creating a Package consists of several sections:

Basic

The Basic section consists of the following options:

Field NameDescription
Package NameEnter 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 AvailableIf this Package has a limited quantity available, enter the quantity, or leave it as "Unlimited".
Use renewal prices for package upgradesWhen 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.
DescriptionEnter a Description for this Package. HTML is allowed, and descriptions appear on order forms.
Configurable OptionsA Configurable Option Group may be selected if previously created, but this module does not support configurable options during provisioning.
ModuleSelect "Pterodactyl" for the module.

Module Options

The Module Options section consists of the following options, which are specific to Pterodactyl:

Field NameDescription
Server GroupSelect "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.

NestSelect the Nest as configured in Pterodactyl.
Egg IDSelect 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
SwapEnter 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 FileThe 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 VersionThe 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 NameDescription
TermEnter the term for the desired pricing option. For example, if you wish to create a 3 month pricing option, enter 3 here.
PeriodSelect 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.
CurrencySelect the currency this pricing option is available for.
PriceEnter the price for this pricing option.
Setup FeeIf there is a setup fee, enter it here.
Cancellation FeeIf 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.

Welcome Email

The "Tags" section describes tags that may be used in the welcome email. The welcome email content is inserted into the "Service Creation" email template under [Settings] > [Company] > [Emails] > Service Creation. Only details unique to this service should be entered into the welcome email section for the package.

Sample Email

This sample email could be used in the Package Welcome Email section to help you get started. Be sure to enter content for your welcome email in both the HTML and Text sections.

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:

TagsDescriptionNotes
{module.host_name}The host name of the server that the service was provisioned one.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}

{service.server_name}The name of the server as defined in the module within Blesta.e.g. "Pterodactyl 1"
{service.server_ip}The IP address of the game server.e.g. "192.168.0.23"
{service.server_port}The port this game server is running on at the above IP.e.g. "25535"


Expand
titleAdditional Tags

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
languagephp
titleThe {module} object
collapsetrue
stdClass Object
        (
            [host_name] => pterodactyl-dev.blesta.com
            [server_name] => Pterodactyl 1
        )


Code Block
languagephp
titleThe {package} object
collapsetrue
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
languagephp
titleThe {service} object
collapsetrue
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
        )


Group Membership

If this is the first Package you are creating with this module, select the "Create a New Group" option, and enter a Group name. If you are adding a subsequent Package and wish for it to be part of the same group, select "Select from Available Groups", and move the group from the right to the left of the multi-select box.

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.