An instance configuration is a JSON file placed inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/universeclouddev/Universe/llms.txt
Use this file to discover all available pages before exploring further.
./configuration/ that describes every aspect of a deployable service: which runtime to use, what command to launch, which port range to allocate from, how many instances to maintain, and which templates to copy into the working directory. Universe loads all .json files in that folder at startup and on each config reload command.
Full Configuration Example
The file below mirrors the./configuration/default.json that Universe generates on first run:
Field Reference
Unique identifier for this configuration. Must match the filename (without
.json). Referenced by instance create <name> and POST /api/instances.Runtime provider key used to start the process. Built-in values are
screen and tmux. Extension-provided values include docker and k8s.Shell command executed inside the runtime when the instance starts. Example:
java -Xmx2G -jar server.jar. Template variables are not substituted in the command itself — use environmentVariables for dynamic values.When
true the instance’s working directory is not deleted after the process stops. Useful for services that need to persist state across restarts (e.g. a database sidecar).RAM in megabytes to reserve for this instance on the target node. Universe tracks per-node allocation and will not deploy to a node whose
maxRamMB would be exceeded.CPU units to reserve for this instance. 100 units equals one physical core. A node with
maxCpu: 400 can therefore host at most four instances each requesting cpu: 100.List of logical group names this instance belongs to. Groups are used by proxy plugins (Velocity, BungeeCord) for auto-connect routing and by Kubernetes manifest export.
List of
nodeId values that are eligible to host instances of this configuration. Universe will only dispatch to nodes whose nodeId appears in this list.IP address advertised by instances of this configuration to connecting clients. May contain a template variable such as
%TAILSCALE_IP% when using the Tailscale extension for mesh-network connectivity.Port range from which Universe allocates a free port for each new instance.
Universe checks in-memory allocations, cluster-wide active instances, and OS-level availability before assigning a port to prevent conflicts.
| Sub-field | Type | Description |
|---|---|---|
min | integer | Lowest port in the range (inclusive). |
max | integer | Highest port in the range (inclusive). |
Target number of running instances Universe should maintain for this configuration. The cluster will automatically create new instances if the live count falls below this value.
Map of environment variable names to values injected into the process environment at startup. Values may contain built-in template variables which are resolved at instance creation time.Example:
Controls which templates are copied into the instance’s working directory before launch. See the Templates page for a full explanation of the copy algorithm.
| Sub-field | Type | Description |
|---|---|---|
allOf | array | Every template listed here is installed unconditionally. Each entry is {name, group, storage, priority}. |
allInGroups | array | Every template discovered under each named group directory is installed. |
oneOf | array | Exactly one template is picked at random from this list. |
oneInGroups | array | One template is picked at random from each named group. |
onTemplatePasteOverridePresentFiles | boolean | When true, higher-priority templates are applied last and overwrite existing files. When false, they are applied first and are preserved. |
List of file paths (relative to the instance working directory) whose contents Universe will scan for template variable placeholders after templates are copied. For example,
["server.properties", "config/settings.yml"].Custom key/value map for user-defined template variables. Each entry
{ "myKey": "myValue" } makes %myKey% available as a placeholder in all files listed in fileModifications. See the Templates page for details.Extra ports to associate with the instance beyond the primary allocated port. Each entry is an object:
| Sub-field | Type | Default | Description |
|---|---|---|---|
port | integer | — | Port number. |
protocol | string | "TCP" | Protocol (TCP or UDP). Used in Kubernetes manifest export. |
name | string | "" | Human-readable name for the port (e.g. "debug", "rcon"). |