app_versions.json 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. {
  2. "1.0.23": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/terraria/1.0.23",
  7. "last_update": "2025-03-05 14:27:33",
  8. "required_features": [
  9. "normalize/ixVolume"
  10. ],
  11. "human_version": "1.4.4.9_1.0.23",
  12. "version": "1.0.23",
  13. "chart_metadata": {
  14. "name": "terraria",
  15. "description": "Terraria is a land of adventure! A land of mystery! A land that's yours to shape, defend, and enjoy.",
  16. "annotations": {
  17. "title": "Terraria"
  18. },
  19. "type": "application",
  20. "version": "1.0.23",
  21. "apiVersion": "v2",
  22. "appVersion": "1.4.4.9",
  23. "kubeVersion": ">=1.16.0-0",
  24. "maintainers": [
  25. {
  26. "name": "truenas",
  27. "url": "https://www.truenas.com/",
  28. "email": "dev@ixsystems.com"
  29. }
  30. ],
  31. "dependencies": [
  32. {
  33. "name": "common",
  34. "repository": "file://../../../common",
  35. "version": "1.2.9"
  36. }
  37. ],
  38. "home": "https://terraria.org/",
  39. "icon": "https://media.sys.truenas.net/apps/terraria/icons/icon.png",
  40. "sources": [
  41. "https://terraria.org/",
  42. "https://github.com/truenas/charts/tree/master/community/terraria",
  43. "https://github.com/ryansheehan/terraria"
  44. ],
  45. "keywords": [
  46. "game",
  47. "terraria"
  48. ]
  49. },
  50. "app_metadata": {
  51. "runAsContext": [
  52. {
  53. "userName": "root",
  54. "groupName": "root",
  55. "gid": 0,
  56. "uid": 0,
  57. "description": "Terraria runs as root user."
  58. }
  59. ],
  60. "capabilities": [],
  61. "hostMounts": []
  62. },
  63. "schema": {
  64. "groups": [
  65. {
  66. "name": "Terraria Configuration",
  67. "description": "Configure Terraria"
  68. },
  69. {
  70. "name": "Network Configuration",
  71. "description": "Configure Network for Terraria"
  72. },
  73. {
  74. "name": "Storage Configuration",
  75. "description": "Configure Storage for Terraria"
  76. },
  77. {
  78. "name": "Resources Configuration",
  79. "description": "Configure Resources for Terraria"
  80. }
  81. ],
  82. "questions": [
  83. {
  84. "variable": "terrariaConfig",
  85. "label": "",
  86. "group": "Terraria Configuration",
  87. "schema": {
  88. "type": "dict",
  89. "attrs": [
  90. {
  91. "variable": "imageSelector",
  92. "label": "Image Selector",
  93. "description": "Selects the image to use for the Terraria server.</br>\nTShock is a fork of the Terraria server that adds a number of features.</br>\nVanilla is the original Terraria server. </br>\nOnly applies to newly generated worlds.\n",
  94. "schema": {
  95. "type": "string",
  96. "default": "image",
  97. "required": true,
  98. "immutable": true,
  99. "enum": [
  100. {
  101. "value": "image",
  102. "description": "TShock"
  103. },
  104. {
  105. "value": "vanillaImage",
  106. "description": "Vanilla"
  107. }
  108. ]
  109. }
  110. },
  111. {
  112. "variable": "worldName",
  113. "label": "World Name",
  114. "description": "Sets the world's name.</br>\nOnly applies to newly generated worlds.\n",
  115. "schema": {
  116. "type": "string",
  117. "default": "My-World",
  118. "required": true,
  119. "immutable": true
  120. }
  121. },
  122. {
  123. "variable": "worldSeed",
  124. "label": "World Seed",
  125. "description": "Sets the world's seed.</br>\nOnly applies to newly generated worlds.\n",
  126. "schema": {
  127. "type": "string",
  128. "default": "",
  129. "immutable": true
  130. }
  131. },
  132. {
  133. "variable": "worldEvil",
  134. "label": "World's Evil",
  135. "description": "Sets the world's evil state.</br>\nOnly applies to newly generated worlds.\n",
  136. "schema": {
  137. "type": "string",
  138. "default": "random",
  139. "required": true,
  140. "immutable": true,
  141. "enum": [
  142. {
  143. "value": "random",
  144. "description": "Random"
  145. },
  146. {
  147. "value": "corrupt",
  148. "description": "Corrupt"
  149. },
  150. {
  151. "value": "crimson",
  152. "description": "Crimson"
  153. }
  154. ]
  155. }
  156. },
  157. {
  158. "variable": "worldSize",
  159. "label": "World Size",
  160. "description": "Sets the world's size.</br>\nOnly applies to newly generated worlds.\n",
  161. "schema": {
  162. "type": "string",
  163. "default": "small",
  164. "required": true,
  165. "immutable": true,
  166. "enum": [
  167. {
  168. "value": "small",
  169. "description": "Small (1)"
  170. },
  171. {
  172. "value": "medium",
  173. "description": "Medium (2)"
  174. },
  175. {
  176. "value": "large",
  177. "description": "Large (3)"
  178. }
  179. ]
  180. }
  181. },
  182. {
  183. "variable": "worldDifficulty",
  184. "label": "World Difficulty",
  185. "description": "Sets the world's difficulty.</br>\nOnly applies to newly generated worlds.\n",
  186. "schema": {
  187. "type": "string",
  188. "default": "normal",
  189. "required": true,
  190. "immutable": true,
  191. "enum": [
  192. {
  193. "value": "normal",
  194. "description": "Normal (0)"
  195. },
  196. {
  197. "value": "expert",
  198. "description": "Expert (1)"
  199. },
  200. {
  201. "value": "master",
  202. "description": "Master (2)"
  203. },
  204. {
  205. "value": "journey",
  206. "description": "Journey (3)"
  207. }
  208. ]
  209. }
  210. },
  211. {
  212. "variable": "maxPlayers",
  213. "label": "Maximum Players",
  214. "description": "Starts the server with the given player count as the maximum.",
  215. "schema": {
  216. "type": "int",
  217. "default": 8,
  218. "min": 1,
  219. "max": 255,
  220. "required": true
  221. }
  222. },
  223. {
  224. "variable": "password",
  225. "label": "Server Password",
  226. "description": "Sets the server password.",
  227. "schema": {
  228. "type": "string",
  229. "private": true,
  230. "default": ""
  231. }
  232. },
  233. {
  234. "variable": "secure",
  235. "label": "Secure Server",
  236. "description": "Turns on the base game's \"anti-spam\" feature.",
  237. "schema": {
  238. "type": "boolean",
  239. "default": false
  240. }
  241. },
  242. {
  243. "variable": "forceUpdate",
  244. "label": "Force Update",
  245. "description": "Forces the server to continue running, and not hibernating when no players are on. </br>\nThis results in time passing, grass growing, and cpu running.\n",
  246. "schema": {
  247. "type": "boolean",
  248. "default": false
  249. }
  250. },
  251. {
  252. "variable": "additionalEnvs",
  253. "label": "Additional Environment Variables",
  254. "description": "Configure additional environment variables for Terraria.",
  255. "schema": {
  256. "type": "list",
  257. "default": [],
  258. "items": [
  259. {
  260. "variable": "env",
  261. "label": "Environment Variable",
  262. "schema": {
  263. "type": "dict",
  264. "attrs": [
  265. {
  266. "variable": "name",
  267. "label": "Name",
  268. "schema": {
  269. "type": "string",
  270. "required": true
  271. }
  272. },
  273. {
  274. "variable": "value",
  275. "label": "Value",
  276. "schema": {
  277. "type": "string",
  278. "required": true
  279. }
  280. }
  281. ]
  282. }
  283. }
  284. ]
  285. }
  286. },
  287. {
  288. "variable": "additionalArgs",
  289. "label": "Additional Arguments",
  290. "description": "Configure additional arguments for Terraria. </br>\nValue is optional for flags like -heaptile </br>\nFor example: </br>\nKey: -lang </br>\nValue: en-US\n",
  291. "schema": {
  292. "type": "list",
  293. "default": [],
  294. "items": [
  295. {
  296. "variable": "arg",
  297. "label": "Argument",
  298. "schema": {
  299. "type": "dict",
  300. "attrs": [
  301. {
  302. "variable": "key",
  303. "label": "Key",
  304. "schema": {
  305. "type": "string",
  306. "required": true
  307. }
  308. },
  309. {
  310. "variable": "value",
  311. "label": "Value",
  312. "schema": {
  313. "type": "string"
  314. }
  315. }
  316. ]
  317. }
  318. }
  319. ]
  320. }
  321. }
  322. ]
  323. }
  324. },
  325. {
  326. "variable": "terrariaNetwork",
  327. "label": "",
  328. "group": "Network Configuration",
  329. "schema": {
  330. "type": "dict",
  331. "attrs": [
  332. {
  333. "variable": "serverPort",
  334. "label": "Server Port",
  335. "description": "The port for the Terraria Server.",
  336. "schema": {
  337. "type": "int",
  338. "default": 30030,
  339. "min": 9000,
  340. "max": 65535,
  341. "required": true
  342. }
  343. },
  344. {
  345. "variable": "hostNetwork",
  346. "label": "Host Network",
  347. "description": "Bind to the host network. It's recommended to keep this disabled.</br>\n",
  348. "schema": {
  349. "type": "boolean",
  350. "default": false
  351. }
  352. }
  353. ]
  354. }
  355. },
  356. {
  357. "variable": "terrariaStorage",
  358. "label": "",
  359. "group": "Storage Configuration",
  360. "schema": {
  361. "type": "dict",
  362. "attrs": [
  363. {
  364. "variable": "world",
  365. "label": "Terraria World Storage",
  366. "description": "The path to store Terraria World.",
  367. "schema": {
  368. "type": "dict",
  369. "attrs": [
  370. {
  371. "variable": "type",
  372. "label": "Type",
  373. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  374. "schema": {
  375. "type": "string",
  376. "required": true,
  377. "immutable": true,
  378. "default": "ixVolume",
  379. "enum": [
  380. {
  381. "value": "hostPath",
  382. "description": "Host Path (Path that already exists on the system)"
  383. },
  384. {
  385. "value": "ixVolume",
  386. "description": "ixVolume (Dataset created automatically by the system)"
  387. }
  388. ]
  389. }
  390. },
  391. {
  392. "variable": "datasetName",
  393. "label": "Dataset Name",
  394. "schema": {
  395. "type": "string",
  396. "show_if": [
  397. [
  398. "type",
  399. "=",
  400. "ixVolume"
  401. ]
  402. ],
  403. "required": true,
  404. "hidden": true,
  405. "immutable": true,
  406. "default": "world",
  407. "$ref": [
  408. "normalize/ixVolume"
  409. ]
  410. }
  411. },
  412. {
  413. "variable": "hostPath",
  414. "label": "Host Path",
  415. "schema": {
  416. "type": "hostpath",
  417. "show_if": [
  418. [
  419. "type",
  420. "=",
  421. "hostPath"
  422. ]
  423. ],
  424. "required": true
  425. }
  426. }
  427. ]
  428. }
  429. },
  430. {
  431. "variable": "plugins",
  432. "label": "Terraria Plugins Storage",
  433. "description": "The path to store Terraria Plugins.",
  434. "schema": {
  435. "type": "dict",
  436. "attrs": [
  437. {
  438. "variable": "type",
  439. "label": "Type",
  440. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  441. "schema": {
  442. "type": "string",
  443. "required": true,
  444. "immutable": true,
  445. "default": "ixVolume",
  446. "enum": [
  447. {
  448. "value": "hostPath",
  449. "description": "Host Path (Path that already exists on the system)"
  450. },
  451. {
  452. "value": "ixVolume",
  453. "description": "ixVolume (Dataset created automatically by the system)"
  454. }
  455. ]
  456. }
  457. },
  458. {
  459. "variable": "datasetName",
  460. "label": "Dataset Name",
  461. "schema": {
  462. "type": "string",
  463. "show_if": [
  464. [
  465. "type",
  466. "=",
  467. "ixVolume"
  468. ]
  469. ],
  470. "required": true,
  471. "hidden": true,
  472. "immutable": true,
  473. "default": "plugins",
  474. "$ref": [
  475. "normalize/ixVolume"
  476. ]
  477. }
  478. },
  479. {
  480. "variable": "hostPath",
  481. "label": "Host Path",
  482. "schema": {
  483. "type": "hostpath",
  484. "show_if": [
  485. [
  486. "type",
  487. "=",
  488. "hostPath"
  489. ]
  490. ],
  491. "required": true
  492. }
  493. }
  494. ]
  495. }
  496. }
  497. ]
  498. }
  499. },
  500. {
  501. "variable": "resources",
  502. "group": "Resources Configuration",
  503. "label": "",
  504. "schema": {
  505. "type": "dict",
  506. "attrs": [
  507. {
  508. "variable": "limits",
  509. "label": "Limits",
  510. "schema": {
  511. "type": "dict",
  512. "attrs": [
  513. {
  514. "variable": "cpu",
  515. "label": "CPU",
  516. "description": "CPU limit for Terraria.",
  517. "schema": {
  518. "type": "string",
  519. "max_length": 6,
  520. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  521. "valid_chars_error": "Valid CPU limit formats are</br>\n- Plain Integer - eg. 1</br>\n- Float - eg. 0.5</br>\n- Milicpu - eg. 500m\n",
  522. "default": "4000m",
  523. "required": true
  524. }
  525. },
  526. {
  527. "variable": "memory",
  528. "label": "Memory",
  529. "description": "Memory limit for Terraria.",
  530. "schema": {
  531. "type": "string",
  532. "max_length": 12,
  533. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  534. "valid_chars_error": "Valid Memory limit formats are</br>\n- Suffixed with E/P/T/G/M/K - eg. 1G</br>\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>\n- Plain Integer in bytes - eg. 1024</br>\n- Exponent - eg. 134e6\n",
  535. "default": "8Gi",
  536. "required": true
  537. }
  538. }
  539. ]
  540. }
  541. }
  542. ]
  543. }
  544. }
  545. ]
  546. },
  547. "app_readme": "<h1>Terraria</h1>\n<p><a href=\"https://terraria.org/\">Terraria</a> is a land of adventure! A land of mystery! A land that's yours to shape, defend, and enjoy.</p>\n<p>This applies only for the <code>TShock</code> image.\nOn the first run, you have to check the logs to get the server token. You will find something like this:</p>\n<p><code>text\nLogin before join enabled. Users may be prompted for an account specific password instead of a server password on connect.\nLogin using UUID enabled. Users automatically login via UUID.\nA malicious server can easily steal a user's UUID. You may consider turning this option off if you run a public server.\nTShock Notice: setup-code.txt is still present, and the code located in that file will be used.\nTo setup the server, join the game and type /setup 424041\nThis token will display until disabled by verification. (/setup)</code></p>\n<p>Join the server and run <code>/setup &lt;token&gt;</code></p>",
  548. "detailed_readme": "<h1>Terraria</h1>\n<p><a href=\"https://terraria.org/\">Terraria</a> is a land of adventure! A land of mystery! A land that's yours to shape, defend, and enjoy.</p>\n<p>This applies only for the <code>TShock</code> image.\nOn the first run, you have to check the logs to get the server token. You will find something like this:</p>\n<p><code>text\nLogin before join enabled. Users may be prompted for an account specific password instead of a server password on connect.\nLogin using UUID enabled. Users automatically login via UUID.\nA malicious server can easily steal a user's UUID. You may consider turning this option off if you run a public server.\nTShock Notice: setup-code.txt is still present, and the code located in that file will be used.\nTo setup the server, join the game and type /setup 424041\nThis token will display until disabled by verification. (/setup)</code></p>\n<p>Join the server and run <code>/setup &lt;token&gt;</code></p>",
  549. "changelog": null
  550. }
  551. }