Files
chart/library/ix-dev/community/minecraft/questions.yaml
Stavros Kois 4613b1f7bd Set storage type immutable (#1676)
* set type immutable

* bump versions

* apply immutable to syncthing/enterprise

* update description for smb

* more immutable types

* bump apps

* missed one

* break line

* bump
2023-10-28 21:48:36 +03:00

703 lines
25 KiB
YAML

groups:
- name: Minecraft Configuration
description: Configure Minecraft
- name: User and Group Configuration
description: Configure User and Group for Minecraft
- name: Network Configuration
description: Configure Network for Minecraft
- name: Storage Configuration
description: Configure Storage for Minecraft
- name: Resources Configuration
description: Configure Resources for Minecraft
questions:
- variable: TZ
group: Minecraft Configuration
label: Timezone
schema:
type: string
default: Etc/UTC
required: true
$ref:
- definitions/timezone
- variable: mcConfig
label: ""
group: Minecraft Configuration
schema:
type: dict
attrs:
- variable: eula
label: EULA
description: Accept the EULA.
schema:
type: boolean
default: false
required: true
- variable: imageSelector
label: Image
description: |
The image to use for Minecraft.</br>
Depending on the image you select, you might
need to adjust the Version and Type fields.
schema:
type: string
default: "j17Image"
required: true
enum:
- value: j8Image
description: Java 8 HotSpot (Alpine)
- value: j8j9Image
description: Java 8 OpenJ9 (Debian)
- value: j8jdkImage
description: Java 8 HotSpot+JDK (Ubuntu)
- value: j8gceImage
description: Java 8 GraalVM CE (Oracle)
- value: j11Image
description: Java 11 HotSpot (Ubuntu)
- value: j11j9Image
description: Java 11 OpenJ9 (Debian)
- value: j11jdkImage
description: Java 11 HotSpot+JDK (Ubuntu)
- value: j17Image
description: Java 17 HotSpot (Ubuntu)
- value: j17j9Image
description: Java 17 OpenJ9 (Debian)
- value: j17jdkImage
description: Java 17 HotSpot+JDK (Ubuntu)
- value: j17gceImage
description: Java 17 GraalVM CE (Oracle)
- value: j17alpineImage
description: Java 17 HotSpot (Alpine)
- value: j19Image
description: Java 19 HotSpot (Ubuntu)
- variable: type
label: Type
description: |
The type of Minecraft server to run.</br>
Depending on the type you select, you might need
to add additional environment variables. </br>
https://itzg.github.io/docker-minecraft-docs/java/server-types/bukkit-spigot
schema:
type: string
default: "VANILLA"
required: true
enum:
- value: VANILLA
description: Vanilla
- value: SPIGOT
description: Spigot
- value: BUKKIT
description: Bukkit
- value: FORGE
description: Forge
- value: CATSERVER
description: CatServer
- value: CRUCIBLE
description: Crucible
- value: AUTO_CURSEFORGE
description: Auto CurseForge
- value: CUSTOM
description: Custom
- value: FABRIC
description: Fabric
- value: FTBA
description: Feed The Beast
- value: FORGE
description: Forge
- value: LOLISERVER
description: LoliServer
- value: LIMBO
description: Limbo
- value: MAGMA
description: Magma
- value: MOHIST
description: Mohist
- value: FABRIC
description: Fabric
- value: PAPER
description: Paper
- value: PUFFERFISH
description: Pufferfish
- value: PURPUR
description: Purpur
- value: QUILT
description: Quilt
- value: SPONGEVANILLA
description: SpongeVanilla
- variable: version
label: Version
description: |
The minecraft version.</br>
https://itzg.github.io/docker-minecraft-docs/java/versions/minecraft
schema:
type: string
default: "LATEST"
required: true
- variable: serverName
label: Server Name
description: |
The name of the Minecraft server.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/servername
schema:
type: string
default: "Minecraft Server"
required: true
- variable: difficulty
label: Difficulty
description: |
The difficulty of the Minecraft server.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/difficulty
schema:
type: string
default: "easy"
required: true
enum:
- value: peaceful
description: Peaceful
- value: easy
description: Easy
- value: normal
description: Normal
- value: hard
description: Hard
- variable: seed
label: Seed
description: |
The seed for the Minecraft server.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/seed </br>
(Quotes is handled by the field automatically)
schema:
type: string
default: ""
- variable: mode
label: Game Mode
description: |
The game mode of the Minecraft server.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/gamemode
schema:
type: string
default: "survival"
required: true
enum:
- value: survival
description: Survival
- value: creative
description: Creative
- value: adventure
description: Adventure
- value: spectator
description: Spectator
- variable: levelType
label: Level Type
description: |
The level type of the Minecraft server.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/#level-type-and-generator-settings
schema:
type: string
default: "minecraft:default"
required: true
enum:
- value: minecraft:default
description: Default
- value: minecraft:flat
description: Flat
- value: minecraft:large_biomes
description: Large Biomes
- value: minecraft:amplified
description: Amplified
- value: minecraft:single_biome_surface
description: Single Biome Surface
- value: buffet
description: Buffet
- value: customized
description: Customized
- variable: motd
label: Message of the Day
description: |
The message of the day for the Minecraft server.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/motd
schema:
type: string
default: "Welcome to Minecraft on TrueNAS!"
required: true
- variable: enableRcon
label: Enable RCON
description: |
Enable RCON for the Minecraft server.</br>
It is recommended to keep this enabled, as it helps to
shut down the minecraft server gracefully.</br>
https://itzg.github.io/docker-minecraft-docs/java/rcon
schema:
type: boolean
default: true
- variable: rconPassword
label: RCON Password
description: The RCON password for the Minecraft server.
schema:
type: string
default: ""
show_if: [["enableRcon", "=", true]]
private: true
required: true
- variable: maxPlayers
label: Max Players
description: |
The maximum number of players that can join the server.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/maxplayers
schema:
type: int
default: 20
min: 1
required: true
- variable: maxWorldSize
label: Max World Size
description: |
The maximum possible size in blocks, expressed as a radius.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/maxworldsize
schema:
type: int
default: 10000
min: 1
required: true
- variable: maxBuildHeight
label: Max Build Height
description: |
The maximum height in which building is allowed.
Terrain may still naturally generate above a low height limit.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/maxbuildheight
schema:
type: int
default: 256
min: 1
required: true
- variable: allowNether
label: Allow Nether
description: |
Allows players to travel to the Nether.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/allownether
schema:
type: boolean
default: true
- variable: announcePlayerAchievements
label: Announce Player Achievements
description: |
Allows server to announce when a player gets an achievement.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/announceachievements
schema:
type: boolean
default: true
- variable: enableCommandBlock
label: Enable Command Block
description: |
Enables the command blocks.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/enablecommandblock
schema:
type: boolean
default: false
- variable: forceGameMode
label: Force Game Mode
description: |
Force players to join in the default game mode.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/forcegamemode
schema:
type: boolean
default: false
- variable: generateStructures
label: Generate Structures
description: |
Defines whether structures (such as villages) will be generated.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/generatestructures
schema:
type: boolean
default: true
- variable: hardcore
label: Hardcore
description: |
If set to true, players will be set to spectator mode if they die.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/hardcore
schema:
type: boolean
default: false
- variable: spawnAnimals
label: Spawn Animals
description: |
Determines if animals will be able to spawn.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/spawnanimals
schema:
type: boolean
default: true
- variable: spawnNpcs
label: Spawn NPCs
description: |
Determines if villagers will be spawned.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/spawnnpcs
schema:
type: boolean
default: true
- variable: spawnMonsters
label: Spawn Monsters
description: |
Determines if monsters will be spawned.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/spawnmonsters
schema:
type: boolean
default: true
- variable: spawnProtection
label: Spawn Protection
description: |
The radius of the spawn protection.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/spawnprotection
schema:
type: int
default: 16
min: 0
required: true
- variable: pvp
label: PVP
description: |
Determines if PVP will be enabled.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/pvp
schema:
type: boolean
default: true
- variable: allowFlight
label: Allow Flight
description: |
Allows users to use flight on your server while in Survival mode,
if they have a mod that provides flight installed.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/allowflight
schema:
type: boolean
default: false
- variable: viewDistance
label: View Distance
description: |
Sets the amount of world data the server sends the client,
measured in chunks in each direction of the player (radius, not diameter).
It determines the server-side viewing distance.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/viewdistance
schema:
type: int
default: 10
min: 3
max: 32
required: true
- variable: onlineMode
label: Online Mode
description: |
If set to true, the server will attempt to authenticate clients
connecting to it with the Minecraft account database.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/onlinemode
schema:
type: boolean
default: true
- variable: maxTickTime
label: Max Tick Time
description: |
The maximum number of milliseconds a single tick may take
before the server watchdog stops the server with the message,
A single server tick took 60.00 seconds (should be max 0.05);
Considering it to be crashed, server will forcibly shutdown.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/maxticktime
schema:
type: int
default: 60000
min: 0
required: true
- variable: ops
label: Operators / Administrators
description: |
A list of player names who should be considered operators.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/ops
schema:
type: list
default: []
items:
- variable: opPlayer
label: OP Player
schema:
type: string
default: ""
required: true
- variable: whitelist
label: Whitelist
description: |
A list of player names who are allowed to play on the server.</br>
https://itzg.github.io/docker-minecraft-docs/java/configuration/whitelist
schema:
type: list
default: []
items:
- variable: whitePlayer
label: Whitelisted Player
schema:
type: string
default: ""
required: true
- variable: additionalEnvs
label: Additional Environment Variables
description: Configure additional environment variables for Minecraft.
schema:
type: list
default: []
items:
- variable: env
label: Environment Variable
schema:
type: dict
attrs:
- variable: name
label: Name
schema:
type: string
required: true
- variable: value
label: Value
schema:
type: string
required: true
- variable: mcID
label: ""
group: User and Group Configuration
schema:
type: dict
attrs:
- variable: user
label: User ID
description: The user id that Minecraft files will be owned by.
schema:
type: int
min: 568
default: 568
required: true
- variable: group
label: Group ID
description: The group id that Minecraft files will be owned by.
schema:
type: int
min: 568
default: 568
required: true
- variable: mcNetwork
label: ""
group: Network Configuration
schema:
type: dict
attrs:
- variable: hostNetwork
label: Host Network
description: |
Bind to the host network. It's recommended to keep this disabled.</br>
schema:
type: boolean
default: false
- variable: serverPort
label: Server Port
description: |
The port for the Minecraft Server.</br>
This will apply to both external and internal ports.
schema:
type: int
default: 25535
min: 9000
max: 65535
required: true
- variable: rconPort
label: RCON Port
description: |
The RCON port for the Minecraft.</br>
This will apply to both external and internal ports.
schema:
type: int
default: 25575
min: 9000
max: 65535
required: true
- variable: mcStorage
label: ""
group: Storage Configuration
schema:
type: dict
attrs:
- variable: data
label: Minecraft Data Storage
description: The path to store Minecraft Data.
schema:
type: dict
attrs:
- variable: type
label: Type
description: |
ixVolume: Is dataset created automatically by the system.</br>
Host Path: Is a path that already exists on the system.
schema:
type: string
required: true
immutable: true
default: "ixVolume"
enum:
- value: "hostPath"
description: Host Path (Path that already exists on the system)
- value: "ixVolume"
description: ixVolume (Dataset created automatically by the system)
- variable: datasetName
label: Dataset Name
schema:
type: string
show_if: [["type", "=", "ixVolume"]]
required: true
hidden: true
immutable: true
default: "data"
$ref:
- "normalize/ixVolume"
- variable: hostPath
label: Host Path
schema:
type: hostpath
show_if: [["type", "=", "hostPath"]]
immutable: true
required: true
- variable: additionalStorages
label: Additional Storage
description: Additional storage for Minecraft.
schema:
type: list
default: []
items:
- variable: storageEntry
label: Storage Entry
schema:
type: dict
attrs:
- variable: type
label: Type
description: |
ixVolume: Is dataset created automatically by the system.</br>
Host Path: Is a path that already exists on the system.</br>
SMB Share: Is a SMB share that is mounted to a persistent volume claim.
schema:
type: string
required: true
default: "ixVolume"
immutable: true
enum:
- value: "hostPath"
description: Host Path (Path that already exists on the system)
- value: "ixVolume"
description: ixVolume (Dataset created automatically by the system)
- value: "smb-pv-pvc"
description: SMB Share (Mounts a persistent volume claim to a SMB share)
- variable: mountPath
label: Mount Path
description: The path inside the container to mount the storage.
schema:
type: path
required: true
- variable: hostPath
label: Host Path
description: The host path to use for storage.
schema:
type: hostpath
show_if: [["type", "=", "hostPath"]]
required: true
- variable: datasetName
label: Dataset Name
description: The name of the dataset to use for storage.
schema:
type: string
show_if: [["type", "=", "ixVolume"]]
required: true
immutable: true
default: "storage_entry"
$ref:
- "normalize/ixVolume"
- variable: server
label: Server
description: The server for the SMB share.
schema:
type: string
show_if: [["type", "=", "smb-pv-pvc"]]
required: true
- variable: share
label: Share
description: The share name for the SMB share.
schema:
type: string
show_if: [["type", "=", "smb-pv-pvc"]]
required: true
- variable: domain
label: Domain (Optional)
description: The domain for the SMB share.
schema:
type: string
show_if: [["type", "=", "smb-pv-pvc"]]
- variable: username
label: Username
description: The username for the SMB share.
schema:
type: string
show_if: [["type", "=", "smb-pv-pvc"]]
required: true
- variable: password
label: Password
description: The password for the SMB share.
schema:
type: string
show_if: [["type", "=", "smb-pv-pvc"]]
required: true
private: true
- variable: size
label: Size (in Gi)
description: The size of the volume quota.
schema:
type: int
show_if: [["type", "=", "smb-pv-pvc"]]
required: true
min: 1
default: 1
- variable: resources
group: Resources Configuration
label: ""
schema:
type: dict
attrs:
- variable: limits
label: Limits
schema:
type: dict
attrs:
- variable: cpu
label: CPU
description: CPU limit for Minecraft.
schema:
type: string
max_length: 6
valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
valid_chars_error: |
Valid CPU limit formats are</br>
- Plain Integer - eg. 1</br>
- Float - eg. 0.5</br>
- Milicpu - eg. 500m
default: "4000m"
required: true
- variable: memory
label: Memory
description: Memory limit for Minecraft.
schema:
type: string
max_length: 12
valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
valid_chars_error: |
Valid Memory limit formats are</br>
- Suffixed with E/P/T/G/M/K - eg. 1G</br>
- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
- Plain Integer in bytes - eg. 1024</br>
- Exponent - eg. 134e6
default: "8Gi"
required: true