Table of Contents |
---|
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 |
---|---|---|---|---|---|
YES | YES | YES | YES | YES | YES |
Management Features
This module supports the following management features within the client area:
- Control Panel Login
- Start, Stop, Restart Server
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 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 "API Credentials") Your username > API Credentials Click screenshot for full version: |
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: |
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.
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. |
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.
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.
Creating a Package consists of several sections:
Basic
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 Pterodactyl:
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". 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.
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.
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:
Tags | 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. | 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" |
{service.server_username} | The username for the Pterodactyl panel. | Added in version 4.11 of Blesta, version 1.4.1 of Pterodactyl |
{service.server_password} | The password for the Pterodactyl panel. | Added in version 4.11 of Blesta, version 1.4.1 of Pterodactyl |
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.
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.