Zum Inhalt springen

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.

FieldMeaning
id required
string
Stable identifier, e.g. "minecraft-paper". Lowercase letters, digits, dashes.
name required
string
The game's name, as users see it.
description
string
A sentence or two shown in the catalogue and when creating a server.
version
integer
default 1
Incremented on every change; servers record the version they were created with.
images required
list of ImageOption
Runtime images, in order; the first is the default. A list, not a map: storage must keep the order.
startup required
string
The start command. Placeholders: {{VARIABLE}}, {{SERVER_MEMORY}}, {{SERVER_PORT}}…
startupMode
enum
default image
image: the image's entrypoint reads $STARTUP (egg images). shell: run via /bin/sh -c.
  • image: The image's entrypoint runs the startup command from $STARTUP (egg images).
  • shell: The startup command runs with /bin/sh -c.
stop
default {"signal":"SIGTERM","timeoutSeconds":30}
How the server is stopped: a console command or a signal, then killed after the timeout.
readyPattern
string
A console line containing this text marks the server as running.
ports
default [{"role":"game"}]
Ports by role, so a consistent set is allocated: "game" is the primary port.
customPorts
boolean
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.
resourcesRecommended limits, filled in when creating a server; users can change them.
variablesSettings users fill in, passed to the server as environment variables.
installThe install script, run in its own container on install and reinstall.
steamThe game comes from Steam: downloaded and updated by SteamCMD jobs, before the install script.
configFilesValues written into the game's config files before every start (the game port, passwords…).
promptsQuestions the game asks on its console, answered with a button (e.g. Minecraft's EULA).
architectures
list of string
CPU architectures the images exist for. Empty: any.
queryHow the node asks the running server for its players, name and map. None: no player count.
rconRemote console: commands from the panel, schedules and integrations, with the game's answer.

ImageOption

A runtime image users can choose.

FieldMeaning
label required
string
What users see, e.g. "Java 21".
image required
string
The image reference, e.g. registry.example.com/java:21.

StopDefinition

How the server is stopped.

FieldMeaning
command
string
Console command, e.g. "stop". Takes precedence over Signal.
signal
string
A signal, e.g. SIGINT. Default SIGTERM.
timeoutSeconds
integer
default 30
How long to wait before the server is killed.

PortDefinition

A port the game needs, by role.

FieldMeaning
role required
string
"game" (primary), "query", "rcon", or anything the game needs.
protocol
enum
default tcp
tcp, udp or both.
  • tcp: TCP only.
  • udp: UDP only.
  • both: TCP and UDP on the same number.
default
integer
Preferred port, e.g. 2302. Otherwise any free allocation.
variable
string
Environment variable the port is passed in, e.g. "QUERY_PORT". "game" is always SERVER_PORT.
offset
integer
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.
offsetFrom
string
The role Offset counts from (default "game").

ResourceRecommendation

What a server of this game typically needs.

FieldMeaning
memoryMb
integer
Memory in MB for a small server (0: no recommendation).
cpuPercent
integer
CPU in percent of one core (100 = one core; 0: no recommendation).
diskMb
integer
Disk space in MB (0: no recommendation).
memoryPerPlayerMb
integer
Extra memory per player, added to MemoryMb for the value of PlayersVariable.
playersVariable
string
The variable holding the player count, e.g. "MAX_PLAYERS".

VariableDefinition

A setting of the game, passed as an environment variable.

FieldMeaning
key required
string
Environment variable name, e.g. "SERVER_JARFILE".
name required
string
The label users see.
description
string
Help shown under the field.
default
string
The value for new servers.
visibility
enum
default user
Who sees and changes it.
  • user: Shown to and editable by the server's users.
  • admin: Only tenant admins see and edit it.
  • secret: Write-only: never shown again, stored encrypted. Only tenant admins set it.
  • readOnly: Visible but fixed.
rules
string
default nullable|string
Laravel-style rules, as in eggs: "required|integer|between:1,100".
jobOnly
boolean
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.

FieldMeaning
image required
string
The image the script runs in.
entrypoint
string
default bash
The shell that runs the script.
script required
string
The script. The server's files are at /mnt/server.
onUpdate
boolean
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.

FieldMeaning
appId required
string
The dedicated server's app id, e.g. "223350". May use {{VARIABLE}} (stable vs experimental).
beta
string
Beta branch, may use {{VARIABLE}}; empty = public.
betaPassword
string
Beta branch password, usually {{SOME_SECRET_VARIABLE}}.
account
enum
default none
Whether a Steam account is needed.
  • none: Anonymous SteamCMD login (most dedicated servers).
  • optional: Anonymous unless a Steam account is chosen.
  • required: The app needs an account that owns it (DayZ, Arma…).
validateOnInstall
boolean
default true
Check every file on install (slow, repairs damage). Updates never validate.
workshopSteam Workshop items (mods), downloaded with the game on every install and update.

ConfigFileDefinition

A config file the agent edits before every start.

FieldMeaning
path required
string
Relative to the server's files, e.g. "server.properties".
parser
enum
default properties
How the file is read and written.
  • properties: key=value lines (server.properties).
  • ini: [section] + key=value; keys are "section.key" or plain for the top.
  • json: Dotted paths into a JSON document ("network.port").
  • yaml: Dotted paths into a YAML document.
  • file: Any text file: a line starting with the key is replaced by the value.
values required
list 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.

FieldMeaning
id required
string
Lowercase letters, digits, dashes; unique in the template.
when required
string
Text in a console line (case-insensitive) that shows the prompt. A later server start hides it.
title required
string
The heading shown on the server page.
message
string
An explanation under the title.
linkA link shown with the prompt, e.g. to a license.
action required
string
The button's label, e.g. "Accept and start".
writeFiles
list of PromptFile
Files written when the button is clicked.
command
string
A console command to send (for games asking on stdin), or null.
then
enum
default none
What happens to the server afterwards.
  • none: Only write files and send the command.
  • start: Start the server afterwards.
  • restart: Restart the server afterwards.

QueryDefinition

How the node asks the running game for players, name and map.

FieldMeaning
protocol required
enum
default a2s
a2s, minecraft or mta.
  • a2s: Steam's A2S_INFO (most Steam games: DayZ, Project Zomboid, Rust, ARK…).
  • minecraft: Minecraft Java's Server List Ping (TCP, the game port).
  • mta: Multi Theft Auto's ASE (UDP, game port + 123).
port
string
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).

FieldMeaning
protocol required
enum
default source
source or battleye.
  • source: Valve's Source RCON (TCP): Project Zomboid, Rust, ARK, Minecraft…
  • battleye: BattlEye RCon (UDP): DayZ, Arma.
port
string
default rcon
The port role it listens on.
password required
string
The password, usually from a secret variable: "{{env.RCON_PASSWORD}}".
console
boolean
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.

FieldMeaning
appId required
string
The game's app id (items belong to the game, not its dedicated server), e.g. "221100" for DayZ.
items required
string
Item ids separated by commas, semicolons or spaces; usually a variable: "{{WORKSHOP_MODS}}".

ConfigValue

One value written into a config file.

FieldMeaning
key required
string
Where the value goes; its form depends on the parser ("server-port", "section.key", "network.port").
value required
string
May contain {{env.VAR}}, {{server.build.default.port}}…

A link shown with a console prompt.

FieldMeaning
label required
string
The link's text.
url required
string
The address (https).

PromptFile

A file a console prompt writes.

FieldMeaning
path required
string
Relative to the server's files.
content required
string
The file's whole new content.