questions.yaml 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703
  1. groups:
  2. - name: Minecraft Configuration
  3. description: Configure Minecraft
  4. - name: User and Group Configuration
  5. description: Configure User and Group for Minecraft
  6. - name: Network Configuration
  7. description: Configure Network for Minecraft
  8. - name: Storage Configuration
  9. description: Configure Storage for Minecraft
  10. - name: Resources Configuration
  11. description: Configure Resources for Minecraft
  12. questions:
  13. - variable: TZ
  14. group: Minecraft Configuration
  15. label: Timezone
  16. schema:
  17. type: string
  18. default: Etc/UTC
  19. required: true
  20. $ref:
  21. - definitions/timezone
  22. - variable: mcConfig
  23. label: ""
  24. group: Minecraft Configuration
  25. schema:
  26. type: dict
  27. attrs:
  28. - variable: eula
  29. label: EULA
  30. description: Accept the EULA.
  31. schema:
  32. type: boolean
  33. default: false
  34. required: true
  35. - variable: imageSelector
  36. label: Image
  37. description: |
  38. The image to use for Minecraft.</br>
  39. Depending on the image you select, you might
  40. need to adjust the Version and Type fields.
  41. schema:
  42. type: string
  43. default: "j17Image"
  44. required: true
  45. enum:
  46. - value: j8Image
  47. description: Java 8 HotSpot (Alpine)
  48. - value: j8j9Image
  49. description: Java 8 OpenJ9 (Debian)
  50. - value: j8jdkImage
  51. description: Java 8 HotSpot+JDK (Ubuntu)
  52. - value: j8gceImage
  53. description: Java 8 GraalVM CE (Oracle)
  54. - value: j11Image
  55. description: Java 11 HotSpot (Ubuntu)
  56. - value: j11j9Image
  57. description: Java 11 OpenJ9 (Debian)
  58. - value: j11jdkImage
  59. description: Java 11 HotSpot+JDK (Ubuntu)
  60. - value: j17Image
  61. description: Java 17 HotSpot (Ubuntu)
  62. - value: j17j9Image
  63. description: Java 17 OpenJ9 (Debian)
  64. - value: j17jdkImage
  65. description: Java 17 HotSpot+JDK (Ubuntu)
  66. - value: j17gceImage
  67. description: Java 17 GraalVM CE (Oracle)
  68. - value: j17alpineImage
  69. description: Java 17 HotSpot (Alpine)
  70. - value: j19Image
  71. description: Java 19 HotSpot (Ubuntu)
  72. - variable: type
  73. label: Type
  74. description: |
  75. The type of Minecraft server to run.</br>
  76. Depending on the type you select, you might need
  77. to add additional environment variables. </br>
  78. https://itzg.github.io/docker-minecraft-docs/java/server-types/bukkit-spigot
  79. schema:
  80. type: string
  81. default: "VANILLA"
  82. required: true
  83. enum:
  84. - value: VANILLA
  85. description: Vanilla
  86. - value: SPIGOT
  87. description: Spigot
  88. - value: BUKKIT
  89. description: Bukkit
  90. - value: FORGE
  91. description: Forge
  92. - value: CATSERVER
  93. description: CatServer
  94. - value: CRUCIBLE
  95. description: Crucible
  96. - value: AUTO_CURSEFORGE
  97. description: Auto CurseForge
  98. - value: CUSTOM
  99. description: Custom
  100. - value: FABRIC
  101. description: Fabric
  102. - value: FTBA
  103. description: Feed The Beast
  104. - value: FORGE
  105. description: Forge
  106. - value: LOLISERVER
  107. description: LoliServer
  108. - value: LIMBO
  109. description: Limbo
  110. - value: MAGMA
  111. description: Magma
  112. - value: MODRINTH
  113. description: Modrinth
  114. - value: MOHIST
  115. description: Mohist
  116. - value: FABRIC
  117. description: Fabric
  118. - value: PAPER
  119. description: Paper
  120. - value: PUFFERFISH
  121. description: Pufferfish
  122. - value: PURPUR
  123. description: Purpur
  124. - value: QUILT
  125. description: Quilt
  126. - value: SPONGEVANILLA
  127. description: SpongeVanilla
  128. - variable: version
  129. label: Version
  130. description: |
  131. The minecraft version.</br>
  132. https://itzg.github.io/docker-minecraft-docs/java/versions/minecraft
  133. schema:
  134. type: string
  135. default: "LATEST"
  136. required: true
  137. - variable: serverName
  138. label: Server Name
  139. description: |
  140. The name of the Minecraft server.</br>
  141. https://itzg.github.io/docker-minecraft-docs/java/configuration/servername
  142. schema:
  143. type: string
  144. default: "Minecraft Server"
  145. required: true
  146. - variable: difficulty
  147. label: Difficulty
  148. description: |
  149. The difficulty of the Minecraft server.</br>
  150. https://itzg.github.io/docker-minecraft-docs/java/configuration/difficulty
  151. schema:
  152. type: string
  153. default: "easy"
  154. required: true
  155. enum:
  156. - value: peaceful
  157. description: Peaceful
  158. - value: easy
  159. description: Easy
  160. - value: normal
  161. description: Normal
  162. - value: hard
  163. description: Hard
  164. - variable: seed
  165. label: Seed
  166. description: |
  167. The seed for the Minecraft server.</br>
  168. https://itzg.github.io/docker-minecraft-docs/java/configuration/seed </br>
  169. (Quotes is handled by the field automatically)
  170. schema:
  171. type: string
  172. default: ""
  173. - variable: mode
  174. label: Game Mode
  175. description: |
  176. The game mode of the Minecraft server.</br>
  177. https://itzg.github.io/docker-minecraft-docs/java/configuration/gamemode
  178. schema:
  179. type: string
  180. default: "survival"
  181. required: true
  182. enum:
  183. - value: survival
  184. description: Survival
  185. - value: creative
  186. description: Creative
  187. - value: adventure
  188. description: Adventure
  189. - value: spectator
  190. description: Spectator
  191. - variable: levelType
  192. label: Level Type
  193. description: |
  194. The level type of the Minecraft server.</br>
  195. https://itzg.github.io/docker-minecraft-docs/java/configuration/#level-type-and-generator-settings
  196. schema:
  197. type: string
  198. default: "minecraft:default"
  199. required: true
  200. enum:
  201. - value: minecraft:default
  202. description: Default
  203. - value: minecraft:flat
  204. description: Flat
  205. - value: minecraft:large_biomes
  206. description: Large Biomes
  207. - value: minecraft:amplified
  208. description: Amplified
  209. - value: minecraft:single_biome_surface
  210. description: Single Biome Surface
  211. - value: buffet
  212. description: Buffet
  213. - value: customized
  214. description: Customized
  215. - variable: motd
  216. label: Message of the Day
  217. description: |
  218. The message of the day for the Minecraft server.</br>
  219. https://itzg.github.io/docker-minecraft-docs/java/configuration/motd
  220. schema:
  221. type: string
  222. default: "Welcome to Minecraft on TrueNAS!"
  223. required: true
  224. - variable: enableRcon
  225. label: Enable RCON
  226. description: |
  227. Enable RCON for the Minecraft server.</br>
  228. It is recommended to keep this enabled, as it helps to
  229. shut down the minecraft server gracefully.</br>
  230. https://itzg.github.io/docker-minecraft-docs/java/rcon
  231. schema:
  232. type: boolean
  233. default: true
  234. - variable: rconPassword
  235. label: RCON Password
  236. description: The RCON password for the Minecraft server.
  237. schema:
  238. type: string
  239. default: ""
  240. show_if: [["enableRcon", "=", true]]
  241. private: true
  242. required: true
  243. - variable: maxPlayers
  244. label: Max Players
  245. description: |
  246. The maximum number of players that can join the server.</br>
  247. https://itzg.github.io/docker-minecraft-docs/java/configuration/maxplayers
  248. schema:
  249. type: int
  250. default: 20
  251. min: 1
  252. required: true
  253. - variable: maxWorldSize
  254. label: Max World Size
  255. description: |
  256. The maximum possible size in blocks, expressed as a radius.</br>
  257. https://itzg.github.io/docker-minecraft-docs/java/configuration/maxworldsize
  258. schema:
  259. type: int
  260. default: 10000
  261. min: 1
  262. required: true
  263. - variable: maxBuildHeight
  264. label: Max Build Height
  265. description: |
  266. The maximum height in which building is allowed.
  267. Terrain may still naturally generate above a low height limit.</br>
  268. https://itzg.github.io/docker-minecraft-docs/java/configuration/maxbuildheight
  269. schema:
  270. type: int
  271. default: 256
  272. min: 1
  273. required: true
  274. - variable: allowNether
  275. label: Allow Nether
  276. description: |
  277. Allows players to travel to the Nether.</br>
  278. https://itzg.github.io/docker-minecraft-docs/java/configuration/allownether
  279. schema:
  280. type: boolean
  281. default: true
  282. - variable: announcePlayerAchievements
  283. label: Announce Player Achievements
  284. description: |
  285. Allows server to announce when a player gets an achievement.</br>
  286. https://itzg.github.io/docker-minecraft-docs/java/configuration/announceachievements
  287. schema:
  288. type: boolean
  289. default: true
  290. - variable: enableCommandBlock
  291. label: Enable Command Block
  292. description: |
  293. Enables the command blocks.</br>
  294. https://itzg.github.io/docker-minecraft-docs/java/configuration/enablecommandblock
  295. schema:
  296. type: boolean
  297. default: false
  298. - variable: forceGameMode
  299. label: Force Game Mode
  300. description: |
  301. Force players to join in the default game mode.</br>
  302. https://itzg.github.io/docker-minecraft-docs/java/configuration/forcegamemode
  303. schema:
  304. type: boolean
  305. default: false
  306. - variable: generateStructures
  307. label: Generate Structures
  308. description: |
  309. Defines whether structures (such as villages) will be generated.</br>
  310. https://itzg.github.io/docker-minecraft-docs/java/configuration/generatestructures
  311. schema:
  312. type: boolean
  313. default: true
  314. - variable: hardcore
  315. label: Hardcore
  316. description: |
  317. If set to true, players will be set to spectator mode if they die.</br>
  318. https://itzg.github.io/docker-minecraft-docs/java/configuration/hardcore
  319. schema:
  320. type: boolean
  321. default: false
  322. - variable: spawnAnimals
  323. label: Spawn Animals
  324. description: |
  325. Determines if animals will be able to spawn.</br>
  326. https://itzg.github.io/docker-minecraft-docs/java/configuration/spawnanimals
  327. schema:
  328. type: boolean
  329. default: true
  330. - variable: spawnNpcs
  331. label: Spawn NPCs
  332. description: |
  333. Determines if villagers will be spawned.</br>
  334. https://itzg.github.io/docker-minecraft-docs/java/configuration/spawnnpcs
  335. schema:
  336. type: boolean
  337. default: true
  338. - variable: spawnMonsters
  339. label: Spawn Monsters
  340. description: |
  341. Determines if monsters will be spawned.</br>
  342. https://itzg.github.io/docker-minecraft-docs/java/configuration/spawnmonsters
  343. schema:
  344. type: boolean
  345. default: true
  346. - variable: spawnProtection
  347. label: Spawn Protection
  348. description: |
  349. The radius of the spawn protection.</br>
  350. https://itzg.github.io/docker-minecraft-docs/java/configuration/spawnprotection
  351. schema:
  352. type: int
  353. default: 16
  354. min: 0
  355. required: true
  356. - variable: pvp
  357. label: PVP
  358. description: |
  359. Determines if PVP will be enabled.</br>
  360. https://itzg.github.io/docker-minecraft-docs/java/configuration/pvp
  361. schema:
  362. type: boolean
  363. default: true
  364. - variable: allowFlight
  365. label: Allow Flight
  366. description: |
  367. Allows users to use flight on your server while in Survival mode,
  368. if they have a mod that provides flight installed.</br>
  369. https://itzg.github.io/docker-minecraft-docs/java/configuration/allowflight
  370. schema:
  371. type: boolean
  372. default: false
  373. - variable: viewDistance
  374. label: View Distance
  375. description: |
  376. Sets the amount of world data the server sends the client,
  377. measured in chunks in each direction of the player (radius, not diameter).
  378. It determines the server-side viewing distance.</br>
  379. https://itzg.github.io/docker-minecraft-docs/java/configuration/viewdistance
  380. schema:
  381. type: int
  382. default: 10
  383. min: 3
  384. max: 32
  385. required: true
  386. - variable: onlineMode
  387. label: Online Mode
  388. description: |
  389. If set to true, the server will attempt to authenticate clients
  390. connecting to it with the Minecraft account database.</br>
  391. https://itzg.github.io/docker-minecraft-docs/java/configuration/onlinemode
  392. schema:
  393. type: boolean
  394. default: true
  395. - variable: maxTickTime
  396. label: Max Tick Time
  397. description: |
  398. The maximum number of milliseconds a single tick may take
  399. before the server watchdog stops the server with the message,
  400. A single server tick took 60.00 seconds (should be max 0.05);
  401. Considering it to be crashed, server will forcibly shutdown.</br>
  402. https://itzg.github.io/docker-minecraft-docs/java/configuration/maxticktime
  403. schema:
  404. type: int
  405. default: 60000
  406. min: 0
  407. required: true
  408. - variable: ops
  409. label: Operators / Administrators
  410. description: |
  411. A list of player names who should be considered operators.</br>
  412. https://itzg.github.io/docker-minecraft-docs/java/configuration/ops
  413. schema:
  414. type: list
  415. default: []
  416. items:
  417. - variable: opPlayer
  418. label: OP Player
  419. schema:
  420. type: string
  421. default: ""
  422. required: true
  423. - variable: whitelist
  424. label: Whitelist
  425. description: |
  426. A list of player names who are allowed to play on the server.</br>
  427. https://itzg.github.io/docker-minecraft-docs/java/configuration/whitelist
  428. schema:
  429. type: list
  430. default: []
  431. items:
  432. - variable: whitePlayer
  433. label: Whitelisted Player
  434. schema:
  435. type: string
  436. default: ""
  437. required: true
  438. - variable: additionalEnvs
  439. label: Additional Environment Variables
  440. description: Configure additional environment variables for Minecraft.
  441. schema:
  442. type: list
  443. default: []
  444. items:
  445. - variable: env
  446. label: Environment Variable
  447. schema:
  448. type: dict
  449. attrs:
  450. - variable: name
  451. label: Name
  452. schema:
  453. type: string
  454. required: true
  455. - variable: value
  456. label: Value
  457. schema:
  458. type: string
  459. required: true
  460. - variable: mcID
  461. label: ""
  462. group: User and Group Configuration
  463. schema:
  464. type: dict
  465. attrs:
  466. - variable: user
  467. label: User ID
  468. description: The user id that Minecraft files will be owned by.
  469. schema:
  470. type: int
  471. min: 568
  472. default: 568
  473. required: true
  474. - variable: group
  475. label: Group ID
  476. description: The group id that Minecraft files will be owned by.
  477. schema:
  478. type: int
  479. min: 568
  480. default: 568
  481. required: true
  482. - variable: mcNetwork
  483. label: ""
  484. group: Network Configuration
  485. schema:
  486. type: dict
  487. attrs:
  488. - variable: hostNetwork
  489. label: Host Network
  490. description: |
  491. Bind to the host network. It's recommended to keep this disabled.</br>
  492. schema:
  493. type: boolean
  494. default: false
  495. - variable: serverPort
  496. label: Server Port
  497. description: |
  498. The port for the Minecraft Server.</br>
  499. This will apply to both external and internal ports.
  500. schema:
  501. type: int
  502. default: 25535
  503. min: 9000
  504. max: 65535
  505. required: true
  506. - variable: rconPort
  507. label: RCON Port
  508. description: |
  509. The RCON port for the Minecraft.</br>
  510. This will apply to both external and internal ports.
  511. schema:
  512. type: int
  513. default: 25575
  514. min: 9000
  515. max: 65535
  516. required: true
  517. - variable: mcStorage
  518. label: ""
  519. group: Storage Configuration
  520. schema:
  521. type: dict
  522. attrs:
  523. - variable: data
  524. label: Minecraft Data Storage
  525. description: The path to store Minecraft Data.
  526. schema:
  527. type: dict
  528. attrs:
  529. - variable: type
  530. label: Type
  531. description: |
  532. ixVolume: Is dataset created automatically by the system.</br>
  533. Host Path: Is a path that already exists on the system.
  534. schema:
  535. type: string
  536. required: true
  537. immutable: true
  538. default: "ixVolume"
  539. enum:
  540. - value: "hostPath"
  541. description: Host Path (Path that already exists on the system)
  542. - value: "ixVolume"
  543. description: ixVolume (Dataset created automatically by the system)
  544. - variable: datasetName
  545. label: Dataset Name
  546. schema:
  547. type: string
  548. show_if: [["type", "=", "ixVolume"]]
  549. required: true
  550. hidden: true
  551. immutable: true
  552. default: "data"
  553. $ref:
  554. - "normalize/ixVolume"
  555. - variable: hostPath
  556. label: Host Path
  557. schema:
  558. type: hostpath
  559. show_if: [["type", "=", "hostPath"]]
  560. required: true
  561. - variable: additionalStorages
  562. label: Additional Storage
  563. description: Additional storage for Minecraft.
  564. schema:
  565. type: list
  566. default: []
  567. items:
  568. - variable: storageEntry
  569. label: Storage Entry
  570. schema:
  571. type: dict
  572. attrs:
  573. - variable: type
  574. label: Type
  575. description: |
  576. ixVolume: Is dataset created automatically by the system.</br>
  577. Host Path: Is a path that already exists on the system.</br>
  578. SMB Share: Is a SMB share that is mounted to a persistent volume claim.
  579. schema:
  580. type: string
  581. required: true
  582. default: "ixVolume"
  583. immutable: true
  584. enum:
  585. - value: "hostPath"
  586. description: Host Path (Path that already exists on the system)
  587. - value: "ixVolume"
  588. description: ixVolume (Dataset created automatically by the system)
  589. - value: "smb-pv-pvc"
  590. description: SMB Share (Mounts a persistent volume claim to a SMB share)
  591. - variable: mountPath
  592. label: Mount Path
  593. description: The path inside the container to mount the storage.
  594. schema:
  595. type: path
  596. required: true
  597. - variable: hostPath
  598. label: Host Path
  599. description: The host path to use for storage.
  600. schema:
  601. type: hostpath
  602. show_if: [["type", "=", "hostPath"]]
  603. required: true
  604. - variable: datasetName
  605. label: Dataset Name
  606. description: The name of the dataset to use for storage.
  607. schema:
  608. type: string
  609. show_if: [["type", "=", "ixVolume"]]
  610. required: true
  611. immutable: true
  612. default: "storage_entry"
  613. $ref:
  614. - "normalize/ixVolume"
  615. - variable: server
  616. label: Server
  617. description: The server for the SMB share.
  618. schema:
  619. type: string
  620. show_if: [["type", "=", "smb-pv-pvc"]]
  621. required: true
  622. - variable: share
  623. label: Share
  624. description: The share name for the SMB share.
  625. schema:
  626. type: string
  627. show_if: [["type", "=", "smb-pv-pvc"]]
  628. required: true
  629. - variable: domain
  630. label: Domain (Optional)
  631. description: The domain for the SMB share.
  632. schema:
  633. type: string
  634. show_if: [["type", "=", "smb-pv-pvc"]]
  635. - variable: username
  636. label: Username
  637. description: The username for the SMB share.
  638. schema:
  639. type: string
  640. show_if: [["type", "=", "smb-pv-pvc"]]
  641. required: true
  642. - variable: password
  643. label: Password
  644. description: The password for the SMB share.
  645. schema:
  646. type: string
  647. show_if: [["type", "=", "smb-pv-pvc"]]
  648. required: true
  649. private: true
  650. - variable: size
  651. label: Size (in Gi)
  652. description: The size of the volume quota.
  653. schema:
  654. type: int
  655. show_if: [["type", "=", "smb-pv-pvc"]]
  656. required: true
  657. min: 1
  658. default: 1
  659. - variable: resources
  660. group: Resources Configuration
  661. label: ""
  662. schema:
  663. type: dict
  664. attrs:
  665. - variable: limits
  666. label: Limits
  667. schema:
  668. type: dict
  669. attrs:
  670. - variable: cpu
  671. label: CPU
  672. description: CPU limit for Minecraft.
  673. schema:
  674. type: string
  675. max_length: 6
  676. valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
  677. valid_chars_error: |
  678. Valid CPU limit formats are</br>
  679. - Plain Integer - eg. 1</br>
  680. - Float - eg. 0.5</br>
  681. - Milicpu - eg. 500m
  682. default: "4000m"
  683. required: true
  684. - variable: memory
  685. label: Memory
  686. description: Memory limit for Minecraft.
  687. schema:
  688. type: string
  689. max_length: 12
  690. valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
  691. valid_chars_error: |
  692. Valid Memory limit formats are</br>
  693. - Suffixed with E/P/T/G/M/K - eg. 1G</br>
  694. - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
  695. - Plain Integer in bytes - eg. 1024</br>
  696. - Exponent - eg. 134e6
  697. default: "8Gi"
  698. required: true