BILLmanager 6

Integration with Pterodactyl

Pterodactyl is a control panel for managing game servers. Integration of BILLmanager with Pterodactyl allows you to automate game server services. For more information about Pterodactyl, see the official documentation.

Operation of Pterodactyl panel on the same server with BILLmanager is not supported.

Configuration on the Pterodactyl side

  1. Create a panel API key:
    1. Click the icon to enter the administration panel.
    2. Go to the Application API section.
    3. Click the Create New button.
    4. Choose Read & Write permissions for all entities.
    5. In the Description field enter the name of the key.
    6. Click the Create Credentials button.
    7. Save the key value.
  2. Create an API key for the integration user:
    1. Click the icon to enter the account settings.
    2. Enter the API Credentials section.
    3. In the Description field enter the name of the key.
    4. Click the Create button.
    5. Save the key value.
  3. Create locations and nodes. The Wings daemon must be running on the servers acting as nodes. Nodes must be assigned allocations — combinations of IP addresses and ports. See the Pterodactyl documentation for details. Each new server will be assigned a free address from the allocation of the node on which the server is deployed.

Configuration on the BILLmanager side

Adding a processing module

To add the Pterodactyl processing module to the platform, install it:

  1. Connect to the server with the platform via SSH. For more information about connecting via SSH, see Workstation setup.
  2. Install the required software packages:
    Ubuntu
    apt install -y make billmanager-corporate-dev billmanager-plugin-python-libs python3-venv
    AlmaLinux
    dnf install -y make billmanager-corporate-devel billmanager-plugin-python-libs
  3. Go to the /root/ directory: 
    cd /root
  4. Copy the BILLmanager repository: 
    git clone https://github.com/ISPsystemLLC/billmanager
  5. Go to the directory with the module: 
    cd billmanager/processing/game_server/bill-pter-bridge
  6. Start the installation: 
    make

Connecting a processing module

To create a processing module, go to IntegrationProcessing modulesAdd button:

  1. Product type — select Game server. If the Game Server product type is missing in the platform settings, create it manually. For more information on how to create a product type, see the Product type parameters article. In the Internal name field specify game_server.
  2. Processing module — select Pterodactyl.
  3. Integration customization:
    1. URL — enter the URL of the Pterodactyl server.
    2. Panel API key — enter the created panel API key.
    3. User API key — enter the created user API key.
    4. Location ID — enter the id of the Pterodactyl location.
  4. Parameters of the service processing module. Configure internal (within BILLmanager) parameters of the service processing module:
    1. Data center — select the data center in BILLmanager to which the processing module will be connected.
    2. Name — specify the name of the processing module to be displayed in the BILLmanager interface.
    3. Department — select the department to which tasks from the processing module will be assigned.
    4. Sort — specify the processing module’s priority. If more than one processing module is connected to a tariff plan, the processing module with the lowest priority is selected first when creating the service.

Tariff configuration

To configure a tariff, go to the  Products  →  Tariff plans  Add button:

  1. Product type — select Game server.
  2. Tariff plan parameters:
    1. Processing module — select the created processing module for Pterodactyl.
    2. Processing module settings:
      1. Nest — select the required Nest — game server engine.
      2. Egg — select the required Egg — game server type.

For more information on creating tariff plans, see the article Creating, customizing, archiving a tariff.

Product type parameters

To manage the default settings, go to Products Product typesGame ServerParameters → select the parameter to change → click Edit. For more information, see Product type parameters.

General product type parameters should not be changed by the client. To prevent the client from changing them, select Staff member or Superuser in the Edit permissions field in the parameter settings.

General product type parameters:

Internal nameDescription
userpasswordpassword of the Pterodactyl user
usernamePterodactyl username
serveridserver name
panelidid of the game server
ipprimary IP address

For security purposes, the platform generates the client's login and password automatically at the time of ordering.

To make the password visible in the service card, go to Products Product typesGame ServerParametersUser passwordEdit → enable the Encrypt option.

To add a parameter, go to Products Product typesGame ServerParameters → click Add. The product content may include parameters:

Internal nameDescription
ncpunumber of CPUs, pcs.
memRAM, MiB
disk discdisk space, MiB
backup_limitmaximum number of backups, pcs.
ipIP addresses number, each
db_limitlimit of the number of databases, pcs.
io_weightI/O utilisation weight. The higher the io_weight value, the higher priority the process receives when performing input/output operations
swap_limitmaximum swap partition size, MiB

For each variable in a Nest-Egg combination with mandatory fields and no default values, you need to add an additional parameter to the product type:

  1. Go to the ProductsProduct typesGame serverParameters button → Add button.
  2. Specify settings:
    1. Internal name — enter the name of the Pterodactyl variable.
    2. Enable the Allow connecting to tariff plans option.
    3. Enable the Show during order option.
    4. Enable the Required parameter option.