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.
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) - value: j21Image description: Java 21 HotSpot (Ubuntu) - value: j21gImage description: Java 21 GraalVM (Oracle) - value: j21alpineImage description: Java 21 HotSpot (Alpine) - variable: type label: Type description: | The type of Minecraft server to run.
Depending on the type you select, you might need to add additional environment variables.
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: MODRINTH description: Modrinth - 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.
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.
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.
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.
https://itzg.github.io/docker-minecraft-docs/java/configuration/seed
(Quotes is handled by the field automatically) schema: type: string default: "" - variable: mode label: Game Mode description: | The game mode of the Minecraft server.
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.
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.
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.
It is recommended to keep this enabled, as it helps to shut down the minecraft server gracefully.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
schema: type: boolean default: false - variable: serverPort label: Server Port description: | The port for the Minecraft Server.
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.
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.
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: ixVolumeConfig label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ixVolume"]] $ref: - "normalize/ixVolume" attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean default: false - variable: datasetName label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true immutable: true hidden: true default: "data" - variable: aclEntries label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] - variable: hostPathConfig label: Host Path Configuration schema: type: dict show_if: [["type", "=", "hostPath"]] attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: hostPath label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["aclEnable", "=", false]] 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.
Host Path: Is a path that already exists on the system.
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: readOnly label: Read Only description: Mount the volume as read only. schema: type: boolean default: false - variable: mountPath label: Mount Path description: The path inside the container to mount the storage. schema: type: path required: true - variable: hostPathConfig label: Host Path Configuration schema: type: dict show_if: [["type", "=", "hostPath"]] attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: hostPath label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["aclEnable", "=", false]] required: true - variable: ixVolumeConfig label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ixVolume"]] $ref: - "normalize/ixVolume" attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean default: false - variable: datasetName label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true immutable: true default: "storage_entry" - variable: aclEntries label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] - variable: smbConfig label: SMB Share Configuration description: The configuration for the SMB Share. schema: type: dict show_if: [["type", "=", "smb-pv-pvc"]] attrs: - variable: server label: Server description: The server for the SMB share. schema: type: string required: true - variable: share label: Share description: The share name for the SMB share. schema: type: string required: true - variable: domain label: Domain (Optional) description: The domain for the SMB share. schema: type: string - variable: username label: Username description: The username for the SMB share. schema: type: string required: true - variable: password label: Password description: The password for the SMB share. schema: type: string required: true private: true - variable: size label: Size (in Gi) description: The size of the volume quota. schema: type: int 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
- Plain Integer - eg. 1
- Float - eg. 0.5
- 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
- Suffixed with E/P/T/G/M/K - eg. 1G
- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
- Plain Integer in bytes - eg. 1024
- Exponent - eg. 134e6 default: "8Gi" required: true