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.
  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.
  2. Processing module — select Pterodactyl.
  3. Настройка интеграции:
    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.

Tariff parameters

General tariff parameters:

  • userpassword — password of the Pterodactyl user;
  • username — Pterodactyl username;
  • serverid — server name;
  • panelid — id of the game server;
  • ip — primary IP address.

The tariff content may include parameters:

  • ncpu — CPU number;
  • mem — RAM, MiB;
  • disk, disc — disk space, MiB;
  • backup_limit — maximum number of backups;
  • ip — IP addresses number;
  • db_limit — maximum database size, MiB;
  • io_weight — input/output utilization weight;
  • swap_limit — maximum 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.