Skip to main content
This page is the full reference for Minenet deployment YAML. If you want a guided explanation first, start with Configurations and YAML.

Top-level schema

FieldTypeRequiredRules
apiVersionstringYesMust be minenet.pro/v1alpha1
kindstringYesMust be Deployment
metadata.namestringNo1-64 chars (if provided)
spec.resourcesarrayYesMax 32 resources
Additional constraints:
  • YAML payload max size: 64 KB
  • spec.resources: null is normalized to []
  • Resource IDs must be unique (case-insensitive)

Resource union

Each item in spec.resources must be one of:
  • type: server
  • type: proxy-velocity
  • type: proxy-gate
  • type: swiftbase
All resource types require:
FieldTypeRequiredRules
idstringYes1-64 chars
typestringYesOne of server, proxy-velocity, proxy-gate, swiftbase
namestringYesResource-type-specific max length

Available regions and location IDs

Use these IDs in deployment YAML.

Compute regions (server.region, proxy-velocity.region, proxy-gate.region)

IDRegion nameNotes
amsAmsterdam, NLProduction
dallasDallas, TXProduction

Swiftbase locations (swiftbase.location)

IDLocationRegion
nbg1Nuremberg, DEEU
hel1Helsinki, FIEU
ashAshburn, USUS
hilHillsboro, USUS

YAML examples

spec:
  resources:
    - id: web-server
      type: server
      name: Web Server
      region: dallas
      resources:
        memoryGb: 8
        storageGb: 40
      software:
        install:
          type: paper
          minecraftVersion: latest

    - id: edge-velocity
      type: proxy-velocity
      name: Edge Velocity
      region: ams
      resources:
        memoryGb: 2
        storageGb: 10
      velocity:
        version: latest

    - id: edge-gate
      type: proxy-gate
      name: Edge Gate
      region: dallas
      resources:
        memoryGb: 1
        storageGb: 10
      managed:
        enabled: true
        rules:
          - namePattern: "lobby-*"
            exclude: ["lobby-test*"]

    - id: app-db
      type: swiftbase
      name: app-db
      location: nbg1
      serverType: cpx22

Server resource

Required shape:
FieldTypeRequiredRules
idstringYes1-64 chars
typestringYesMust be server
namestringYes1-64 chars
regionstringYesNon-empty
resources.memoryGbintegerYesMin 4, max 16
resources.storageGbintegerNoMin 10, max 200, default 10
software.install.typestringYesNon-empty
software.install.minecraftVersionstringYesNon-empty
software.install.javastring/numberNoOne of auto, 8, 16, 17, 21 (default auto)
software.install.envobjectNoKey-value map of string/number/boolean
software.restoreobjectNoSee restore fields below
Optional restore block:
FieldTypeRequiredRules
software.restore.snapshotUuidstringYes (if restore provided)Must be UUID
software.restore.truncateDirectorybooleanNoDefault true

Server software env reference

Use this section when setting software.install.type and software.install.env.

Supported software types

software.install.typeSoftware
paperPaper
forgeForge
neoforgeNeoForge
vanillaVanilla
fabricFabric
curseforgeCurseForge Modpack
GET /api/client/v1/servers/software returns the current catalog for server software profiles. General rules for software.install.env:
  • Keys are case-sensitive.
  • Values can be string, number, or boolean.
  • Unknown keys are rejected.
  • For version keys (MINECRAFT_VERSION, MC_VERSION, VANILLA_VERSION), set software.install.minecraftVersion instead of overriding in env.

Paper (type: paper)

VariableRequiredDefaultHow to set
MINECRAFT_VERSIONYeslatestUse software.install.minecraftVersion
BUILD_NUMBERNolatestSet in software.install.env.BUILD_NUMBER

Forge (type: forge)

VariableRequiredDefaultHow to set
MC_VERSIONYeslatestUse software.install.minecraftVersion
BUILD_TYPENorecommendedSet in software.install.env.BUILD_TYPE

NeoForge (type: neoforge)

VariableRequiredDefaultHow to set
MC_VERSIONYeslatestUse software.install.minecraftVersion
NEOFORGE_VERSIONYesnoneSet in software.install.env.NEOFORGE_VERSION

Vanilla (type: vanilla)

VariableRequiredDefaultHow to set
VANILLA_VERSIONYeslatestUse software.install.minecraftVersion

Fabric (type: fabric)

VariableRequiredDefaultHow to set
MC_VERSIONYeslatestUse software.install.minecraftVersion
FABRIC_VERSIONNolatestSet in software.install.env.FABRIC_VERSION
LOADER_VERSIONNolatestSet in software.install.env.LOADER_VERSION

CurseForge Modpack (type: curseforge)

VariableRequiredDefaultHow to set
PROJECT_IDYesnoneSet in software.install.env.PROJECT_ID
VERSION_IDYesnoneSet in software.install.env.VERSION_ID

Proxy Velocity resource

Required shape:
FieldTypeRequiredRules
idstringYes1-64 chars
typestringYesMust be proxy-velocity
namestringYes1-64 chars
regionstringYesNon-empty
resources.memoryGbintegerYesMin 1, max 4
resources.storageGbintegerNoMust be 10, default 10
velocity.versionstringNoNon-empty when present
velocity.buildNumberstringNoNon-empty when present

Proxy Gate resource

Required shape:
FieldTypeRequiredRules
idstringYes1-64 chars
typestringYesMust be proxy-gate
namestringYes1-64 chars
regionstringYesNon-empty
resources.memoryGbintegerYesMin 1, max 4
resources.storageGbintegerNoMust be 10, default 10
managed.enabledbooleanNoDefault false
managed.rulesarrayNoMax 64 entries
managed.rules requirements:
  • each rule must contain exactly one of serverId or namePattern
  • serverId must be a UUID when present
  • namePattern max length is 128
  • exclude supports up to 32 patterns per rule

Swiftbase resource

Required shape:
FieldTypeRequiredRules
idstringYes1-64 chars
typestringYesMust be swiftbase
namestringYes1-63 chars
locationstringYesOne of nbg1, hel1, ash, hil
serverTypestringNoMust be valid and available for selected location
If serverType is omitted, Minenet applies a location default during normalization.

Normalization rules (important)

Before reconciliation, Minenet normalizes input:
  • Resource IDs are sanitized to lowercase slug-like format.
  • Name fields are sanitized (control characters removed, whitespace normalized).
  • Server/proxy resource values are clamped to allowed bounds.
  • Swiftbase location/serverType are normalized to lowercase.
  • Known software names are canonicalized (for example, CurseForge Modpack -> curseforge).

Example (valid mixed deployment)

apiVersion: minenet.pro/v1alpha1
kind: Deployment
metadata:
  name: production
spec:
  resources:
    - id: main-server
      type: server
      name: Main Server
      region: dallas
      resources:
        memoryGb: 8
        storageGb: 40
      software:
        install:
          type: paper
          minecraftVersion: latest
          java: auto

    - id: edge-velocity
      type: proxy-velocity
      name: Edge Velocity
      region: dallas
      resources:
        memoryGb: 2
        storageGb: 10
      velocity:
        version: latest

    - id: edge-gate
      type: proxy-gate
      name: Edge Gate
      region: dallas
      resources:
        memoryGb: 1
        storageGb: 10
      managed:
        enabled: true
        rules:
          - serverId: "550e8400-e29b-41d4-a716-446655440000"

    - id: main-db
      type: swiftbase
      name: main-db
      location: ash
      serverType: cpx21

Common validation failures

  • Wrong apiVersion or kind
  • Duplicate resource IDs
  • Too many resources (>32)
  • Invalid proxy type (proxy instead of proxy-velocity/proxy-gate)
  • Invalid Swiftbase location/serverType combination
  • Out-of-range memory/storage values
  • Invalid restore snapshot UUID