Documentation
Pterodactyl
Pterodactyl is the game panel integration. A game server is a container built from a recipe rather than from an operating system image, so almost everything about it differs from a virtual machine, including the fact that the console is the main event and not a bonus.
Two keys, not one
Pterodactyl splits its API in two, and Provibr needs both halves. They do different work and one cannot stand in for the other.
- Application key: creating, suspending, reinstalling, deleting and reading. It starts with ptla_.
- Client key: power control, usage measurements and the console. It starts with ptlc_.
- Host: the panel's address. No port is filled in for you: a Pterodactyl panel is an ordinary website behind a reverse proxy.
Settings
One optional field: the email address that owns servers Provibr creates. Leave it empty and they are owned by the account behind the client key. Give an address that does not exist yet on the panel and an account is created for it.
The words Pterodactyl uses
- Egg
- The build recipe: which container images may be used, the startup command, and its own variables. An egg is what you choose instead of an operating system.
- Nest
- A group of eggs. It is a label; the egg is the thing that is actually referenced.
- Node
- A machine running Wings, the daemon that runs the containers. If you do not pick one, the node with the most free memory is chosen, skipping nodes in maintenance and nodes that are not public.
- Allocation
- The address and port a server listens on. The panel hands these out from its own list; Provibr does not assign addresses here, because that would be a promise it cannot keep.
Game plans
A game plan is where the whole container is described, and it is the only way to order a game server. There is no manual order form for one, because too much has to line up for it to be typed in each time.
- An egg on one integration, with the nest recorded as a label.
- Optionally a container image and a startup command. Left empty, the egg decides.
- Variable values that override the egg's defaults. Every variable the egg has is sent, including the ones the customer never sees, because the panel refuses a create with a field missing.
- Memory, swap, disk, CPU and IO weight. Zero means unlimited for memory, swap, disk and CPU.
- How many databases, extra allocations and backups the server may have.
What you can do
Start, stop, restart, kill, suspend, resume, refresh, reinstall and delete. The difference between the gentler and the harsher options matters here more than elsewhere.
- Stop sends the egg's own stop command to the console, so the game shuts down the way it expects to.
- Kill stops the container outright. Anything not yet written to disk is lost, and the panel asks you to confirm.
- Suspend stops the server and locks its owner out. The files stay. This is also what the platform uses when you go over your licence limit.
- Reinstall runs the egg's install container again. What that does to existing files is the egg's choice, not ours, and the confirmation says so.
Console
The console is a terminal on the running container, relayed from Wings through your agent to your browser. You see console output, status changes and usage; you can send commands. It is described in more detail on the console page.
Adopting servers that already exist
The import tab lists the servers on the panel with their limits and state, including the ones Provibr already knows, which are shown but not selectable. Imported servers count towards your capacity exactly like the ones you ordered.
Worth knowing
- Managing the panel itself, or its nodes, does not exist. Provibr builds, runs and removes servers on a panel you operate.
- Backups, databases and extra allocations are limits you set on the plan; using them happens in the game panel itself. The counts come along with the poll.
- The panel caches its usage figures for about twenty seconds, and Provibr polls on roughly the same rhythm. Processor, memory and disk are always right; a repeated reading can show a network rate of zero where there was traffic.
- Pterodactyl 1.x does not report its own version through the API, so the connection test leaves that field empty. That is not a fault.