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: Labels Configuration description: Configure Labels 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: minecraft label: "" group: Minecraft Configuration schema: type: dict attrs: - variable: eula label: EULA description: The EULA for Minecraft schema: type: boolean default: false required: true - variable: image_selector label: Image Selector description: The image selector for Minecraft schema: type: string default: image required: true enum: - value: j8_image description: Java 8 HotSpot (Alpine) - value: j8_j9_image description: Java 8 OpenJ9 (Debian) - value: j8_jdk_image description: Java 8 HotSpot+JDK (Ubuntu) - value: j8_gce_image description: Java 8 GraalVM CE (Oracle) - value: j11_image description: Java 11 HotSpot (Ubuntu) - value: j11_j9_image description: Java 11 OpenJ9 (Debian) - value: j11_jdk_image description: Java 11 HotSpot+JDK (Ubuntu) - value: j17_image description: Java 17 HotSpot (Ubuntu) - value: j17_j9_image description: Java 17 OpenJ9 (Debian) - value: j17_jdk_image description: Java 17 HotSpot+JDK (Ubuntu) - value: j17_gce_image description: Java 17 GraalVM CE (Oracle) - value: j17_alpine_image description: Java 17 HotSpot (Alpine) - value: j19_image description: Java 19 HotSpot (Ubuntu) - value: image description: Java 21 HotSpot (Ubuntu) - value: j21_g_image description: Java 21 GraalVM (Oracle) - value: j21_alpine_image 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: PAPER description: Paper - value: FOLIA description: Folia - value: FABRIC description: Fabric - value: FORGE description: Forge - value: NEOFORGE description: NeoForge - value: AUTO_CURSEFORGE description: CurseForge - value: MODRINTH description: Modrinth - value: FTBA description: Feed the Beast - value: PUFFERFISH description: Pufferfish - value: PURPUR description: Purpur - value: QUILT description: Quilt - value: MAGMA description: Magma - value: MAGMA_MAINTAINED description: Magma Maintained - value: KETTING description: Ketting - value: MOHIST description: Mohist - value: CATSERVER description: Catserver - value: SPONGEVANILLA description: SpongeVanilla - value: LIMBO description: Limbo - value: CRUCIBLE description: Crucible - value: CUSTOM description: Custom - 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: 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: server_name 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: level_type 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: enable_rcon 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: rcon_password label: RCON Password description: The RCON password for the Minecraft server. schema: type: string default: "" show_if: [["enable_rcon", "=", true]] private: true required: true - variable: max_players 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: max_world_size 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: max_build_height 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: allow_nether 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: announce_player_achievements 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: enable_command_block 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: force_game_mode 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: generate_structures 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: spawn_animals 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: spawn_npcs 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: spawn_monsters 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: spawn_protection 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: allow_flight 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: view_distance 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: online_mode 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: max_tick_time 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: op_player 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: white_player label: Whitelisted Player schema: type: string default: "" required: true - variable: additional_envs label: Additional Environment Variables 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 - variable: run_as 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: network label: "" group: Network Configuration schema: type: dict attrs: - variable: server_port label: Server Port schema: type: dict attrs: - variable: bind_mode label: Port Bind Mode description: | The port bind mode.
- Publish: The port will be published on the host for external access.
- Expose: The port will be exposed for inter-container communication.
- None: The port will not be exposed or published.
Note: If the Dockerfile defines an EXPOSE directive, the port will still be exposed for inter-container communication regardless of this setting. schema: type: string default: "published" enum: - value: "published" description: Publish port on the host for external access - value: "exposed" description: Expose port for inter-container communication - value: "" description: None - variable: port_number label: Port Number schema: type: int default: 25535 min: 1 max: 65535 required: true - variable: host_ips label: Host IPs description: IPs on the host to bind this port schema: type: list show_if: [["bind_mode", "=", "published"]] default: [] items: - variable: host_ip label: Host IP schema: type: string required: true $ref: - definitions/node_bind_ip - variable: rcon_port label: RCON Port schema: type: dict attrs: - variable: bind_mode label: Port Bind Mode description: | The port bind mode.
- Publish: The port will be published on the host for external access.
- Expose: The port will be exposed for inter-container communication.
- None: The port will not be exposed or published.
Note: If the Dockerfile defines an EXPOSE directive, the port will still be exposed for inter-container communication regardless of this setting. schema: type: string default: "published" enum: - value: "published" description: Publish port on the host for external access - value: "exposed" description: Expose port for inter-container communication - value: "" description: None - variable: port_number label: Port Number schema: type: int default: 25575 min: 1 max: 65535 required: true - variable: host_ips label: Host IPs description: IPs on the host to bind this port schema: type: list show_if: [["bind_mode", "=", "published"]] default: [] items: - variable: host_ip label: Host IP schema: type: string required: true $ref: - definitions/node_bind_ip - variable: host_network label: Host Network description: | Bind to the host network. It's recommended to keep this disabled. schema: type: boolean default: false - variable: additional_ports label: Additional Ports schema: type: list show_if: [["host_network", "=", false]] items: - variable: port label: Port schema: type: dict attrs: - variable: bind_mode label: Port Bind Mode description: | The port bind mode.
- Publish: The port will be published on the host for external access.
- Expose: The port will be exposed for inter-container communication.
schema: type: string default: "published" enum: - value: "published" description: Publish port on the host for external access - value: "exposed" description: Expose port for inter-container communication - variable: port_number label: Port Number schema: type: int min: 1 max: 65535 required: true - variable: container_port label: Container Port schema: type: int min: 1 max: 65535 required: true - variable: protocol label: Protocol schema: type: string required: true default: "tcp" enum: - value: "tcp" description: TCP - value: "udp" description: UDP - variable: host_ips label: Host IPs description: IPs on the host to bind this port schema: type: list show_if: [["bind_mode", "=", "published"]] default: [] items: - variable: host_ip label: Host IP schema: type: string required: true $ref: - definitions/node_bind_ip - variable: storage 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 default: "ix_volume" enum: - value: "host_path" description: Host Path (Path that already exists on the system) - value: "ix_volume" description: ixVolume (Dataset created automatically by the system) - variable: ix_volume_config label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ix_volume"]] $ref: - "normalize/ix_volume" attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: dataset_name label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true hidden: true default: "data" - variable: acl_entries label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] - variable: host_path_config label: Host Path Configuration schema: type: dict show_if: [["type", "=", "host_path"]] attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: path label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["acl_enable", "=", false]] required: true - variable: additional_storage label: Additional Storage 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 as a volume. schema: type: string required: true default: "ix_volume" enum: - value: "host_path" description: Host Path (Path that already exists on the system) - value: "ix_volume" description: ixVolume (Dataset created automatically by the system) - value: "cifs" description: SMB/CIFS Share (Mounts a volume to a SMB share) - variable: read_only label: Read Only description: Mount the volume as read only. schema: type: boolean default: false - variable: mount_path label: Mount Path description: The path inside the container to mount the storage. schema: type: path required: true - variable: host_path_config label: Host Path Configuration schema: type: dict show_if: [["type", "=", "host_path"]] attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: path label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["acl_enable", "=", false]] required: true - variable: ix_volume_config label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ix_volume"]] $ref: - "normalize/ix_volume" attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: dataset_name label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true default: "storage_entry" - variable: acl_entries label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] - variable: cifs_config label: SMB Configuration description: The configuration for the SMB dataset. schema: type: dict show_if: [["type", "=", "cifs"]] attrs: - variable: server label: Server description: The server to mount the SMB share. schema: type: string required: true - variable: path label: Path description: The path to mount the SMB share. schema: type: string required: true - variable: username label: Username description: The username to use for the SMB share. schema: type: string required: true - variable: password label: Password description: The password to use for the SMB share. schema: type: string required: true private: true - variable: domain label: Domain description: The domain to use for the SMB share. schema: type: string - variable: labels label: "" group: Labels Configuration schema: type: list default: [] items: - variable: label label: Label schema: type: dict attrs: - variable: key label: Key schema: type: string required: true - variable: value label: Value schema: type: string required: true - variable: containers label: Containers description: Containers where the label should be applied schema: type: list items: - variable: container label: Container schema: type: string required: true enum: - value: minecraft description: minecraft - variable: resources label: "" group: Resources Configuration schema: type: dict attrs: - variable: limits label: Limits schema: type: dict attrs: - variable: cpus label: CPUs description: CPUs limit for Minecraft. schema: type: int default: 2 required: true - variable: memory label: Memory (in MB) description: Memory limit for Minecraft. schema: type: int default: 4096 required: true