Template-Referenz
Jedes Feld, das ein Template haben kann, mit seinem YAML-Namen, Typ und Standardwert. Diese Seite wird aus dem Code des Panels erzeugt; ihre Beschreibungen sind deshalb englisch. Erklärungen und Beispiele auf Deutsch stehen unter Template-Format.
Types: Template (the file) · ImageOption · StopDefinition · PortDefinition · ResourceRecommendation · VariableDefinition · InstallDefinition · SteamDefinition · ConfigFileDefinition · ConsolePrompt · QueryDefinition · RconDefinition · WorkshopDefinition · ConfigValue · PromptLink · PromptFile
Template (the file)
A game server template: everything needed to install, configure and run one kind of server. Stored as YAML in the game catalogue, or imported from an egg.
| Field | Meaning |
|---|---|
id requiredstring | Stable identifier, e.g. "minecraft-paper". Lowercase letters, digits, dashes. |
name requiredstring | The game's name, as users see it. |
descriptionstring | A sentence or two shown in the catalogue and when creating a server. |
versioninteger default 1 | Incremented on every change; servers record the version they were created with. |
images requiredlist of ImageOption | Runtime images, in order; the first is the default. A list, not a map: storage must keep the order. |
startup requiredstring | The start command. Placeholders: {{VARIABLE}}, {{SERVER_MEMORY}}, {{SERVER_PORT}}… |
startupModeenum default image | image: the image's entrypoint reads $STARTUP (egg images). shell: run via /bin/sh -c.
|
stopdefault {"signal":"SIGTERM","timeoutSeconds":30} | How the server is stopped: a console command or a signal, then killed after the timeout. |
readyPatternstring | A console line containing this text marks the server as running. |
portslist of PortDefinition default [{"role":"game"}] | Ports by role, so a consistent set is allocated: "game" is the primary port. |
customPortsboolean | Users add their own ports when creating a server (for generic templates): each extra role gets a port and a PORT_<ROLE> variable, e.g. PORT_RCON. |
resources | Recommended limits, filled in when creating a server; users can change them. |
variableslist of VariableDefinition | Settings users fill in, passed to the server as environment variables. |
install | The install script, run in its own container on install and reinstall. |
steam | The game comes from Steam: downloaded and updated by SteamCMD jobs, before the install script. |
configFileslist of ConfigFileDefinition | Values written into the game's config files before every start (the game port, passwords…). |
promptslist of ConsolePrompt | Questions the game asks on its console, answered with a button (e.g. Minecraft's EULA). |
architectureslist of string | CPU architectures the images exist for. Empty: any. |
query | How the node asks the running server for its players, name and map. None: no player count. |
rcon | Remote console: commands from the panel, schedules and integrations, with the game's answer. |
ImageOption
A runtime image users can choose.
| Field | Meaning |
|---|---|
label requiredstring | What users see, e.g. "Java 21". |
image requiredstring | The image reference, e.g. registry.example.com/java:21. |
StopDefinition
How the server is stopped.
| Field | Meaning |
|---|---|
commandstring | Console command, e.g. "stop". Takes precedence over Signal. |
signalstring | A signal, e.g. SIGINT. Default SIGTERM. |
timeoutSecondsinteger default 30 | How long to wait before the server is killed. |
PortDefinition
A port the game needs, by role.
| Field | Meaning |
|---|---|
role requiredstring | "game" (primary), "query", "rcon", or anything the game needs. |
protocolenum default tcp | tcp, udp or both.
|
defaultinteger | Preferred port, e.g. 2302. Otherwise any free allocation. |
variablestring | Environment variable the port is passed in, e.g. "QUERY_PORT". "game" is always SERVER_PORT. |
offsetinteger | A fixed distance from another role's port, for games that derive it themselves: MTA's server browser port is always game + 123. The panel then picks a pair that is free on the node. |
offsetFromstring | The role Offset counts from (default "game"). |
ResourceRecommendation
What a server of this game typically needs.
| Field | Meaning |
|---|---|
memoryMbinteger | Memory in MB for a small server (0: no recommendation). |
cpuPercentinteger | CPU in percent of one core (100 = one core; 0: no recommendation). |
diskMbinteger | Disk space in MB (0: no recommendation). |
memoryPerPlayerMbinteger | Extra memory per player, added to MemoryMb for the value of PlayersVariable. |
playersVariablestring | The variable holding the player count, e.g. "MAX_PLAYERS". |
VariableDefinition
A setting of the game, passed as an environment variable.
| Field | Meaning |
|---|---|
key requiredstring | Environment variable name, e.g. "SERVER_JARFILE". |
name requiredstring | The label users see. |
descriptionstring | Help shown under the field. |
defaultstring | The value for new servers. |
visibilityenum default user | Who sees and changes it.
|
rulesstring default nullable|string | Laravel-style rules, as in eggs: "required|integer|between:1,100". |
jobOnlyboolean | Only for install and update jobs, never given to the running server (download tokens, license keys). |
InstallDefinition
The install script and the container it runs in.
| Field | Meaning |
|---|---|
image requiredstring | The image the script runs in. |
entrypointstring default bash | The shell that runs the script. |
script requiredstring | The script. The server's files are at /mnt/server. |
onUpdateboolean | Run it after Steam updates too (it must be safe to run again), e.g. to prepare downloaded mods. |
SteamDefinition
Download and update the game with SteamCMD.
| Field | Meaning |
|---|---|
appId requiredstring | The dedicated server's app id, e.g. "223350". May use {{VARIABLE}} (stable vs experimental). |
betastring | Beta branch, may use {{VARIABLE}}; empty = public. |
betaPasswordstring | Beta branch password, usually {{SOME_SECRET_VARIABLE}}. |
accountenum default none | Whether a Steam account is needed.
|
validateOnInstallboolean default true | Check every file on install (slow, repairs damage). Updates never validate. |
workshop | Steam Workshop items (mods), downloaded with the game on every install and update. |
ConfigFileDefinition
A config file the agent edits before every start.
| Field | Meaning |
|---|---|
path requiredstring | Relative to the server's files, e.g. "server.properties". |
parserenum default properties | How the file is read and written.
|
values requiredlist of ConfigValue | A list, not a map: order is kept (lines are added in this order). |
ConsolePrompt
When the console prints When, the server page shows Title with a button. Clicking it does what the template says, nothing else: write files, send a console command, then start or restart. Example: Minecraft's "You need to agree to the EULA" → eula.txt, start.
| Field | Meaning |
|---|---|
id requiredstring | Lowercase letters, digits, dashes; unique in the template. |
when requiredstring | Text in a console line (case-insensitive) that shows the prompt. A later server start hides it. |
title requiredstring | The heading shown on the server page. |
messagestring | An explanation under the title. |
link | A link shown with the prompt, e.g. to a license. |
action requiredstring | The button's label, e.g. "Accept and start". |
writeFileslist of PromptFile | Files written when the button is clicked. |
commandstring | A console command to send (for games asking on stdin), or null. |
thenenum default none | What happens to the server afterwards.
|
QueryDefinition
How the node asks the running game for players, name and map.
| Field | Meaning |
|---|---|
protocol requiredenum default a2s | a2s, minecraft or mta.
|
portstring default game | The port role to ask, e.g. "query" for DayZ's Steam query port. |
RconDefinition
A remote console the node uses for commands (and the console, with Console).
| Field | Meaning |
|---|---|
protocol requiredenum default source | source or battleye.
|
portstring default rcon | The port role it listens on. |
password requiredstring | The password, usually from a secret variable: "{{env.RCON_PASSWORD}}". |
consoleboolean | The console's input goes over RCON instead of the process's stdin, for games that don't read commands from stdin (DayZ). Schedules' commands and the stop command follow it. |
WorkshopDefinition
Workshop items land in steamapps/workshop/content/{AppId}/{item id} in the server's files; the install script (with OnUpdate) prepares them for the game.
| Field | Meaning |
|---|---|
appId requiredstring | The game's app id (items belong to the game, not its dedicated server), e.g. "221100" for DayZ. |
items requiredstring | Item ids separated by commas, semicolons or spaces; usually a variable: "{{WORKSHOP_MODS}}". |
ConfigValue
One value written into a config file.
| Field | Meaning |
|---|---|
key requiredstring | Where the value goes; its form depends on the parser ("server-port", "section.key", "network.port"). |
value requiredstring | May contain {{env.VAR}}, {{server.build.default.port}}… |
PromptLink
A link shown with a console prompt.
| Field | Meaning |
|---|---|
label requiredstring | The link's text. |
url requiredstring | The address (https). |
PromptFile
A file a console prompt writes.
| Field | Meaning |
|---|---|
path requiredstring | Relative to the server's files. |
content requiredstring | The file's whole new content. |