app_versions.json 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832
  1. {
  2. "1.0.8": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/apps/apps/trains/community/convertx/1.0.8",
  7. "last_update": "2025-09-02 11:33:24",
  8. "required_features": [],
  9. "human_version": "v0.14.1_1.0.8",
  10. "version": "1.0.8",
  11. "app_metadata": {
  12. "app_version": "v0.14.1",
  13. "capabilities": [],
  14. "categories": [
  15. "productivity"
  16. ],
  17. "changelog_url": "https://github.com/C4illin/ConvertX/releases",
  18. "date_added": "2025-05-05",
  19. "description": "ConvertX is a self-hosted online file converter with support for over 1000 formats",
  20. "home": "https://github.com/C4illin/ConvertX",
  21. "host_mounts": [],
  22. "icon": "https://media.sys.truenas.net/apps/convertx/icons/icon.png",
  23. "keywords": [
  24. "convertx",
  25. "files",
  26. "conversion"
  27. ],
  28. "lib_version": "2.1.49",
  29. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  30. "maintainers": [
  31. {
  32. "email": "dev@ixsystems.com",
  33. "name": "truenas",
  34. "url": "https://www.truenas.com/"
  35. }
  36. ],
  37. "name": "convertx",
  38. "run_as_context": [
  39. {
  40. "description": "ConvertX runs as any non-root user.",
  41. "gid": 568,
  42. "group_name": "convertx",
  43. "uid": 568,
  44. "user_name": "convertx"
  45. }
  46. ],
  47. "screenshots": [],
  48. "sources": [
  49. "https://github.com/C4illin/ConvertX"
  50. ],
  51. "title": "ConvertX",
  52. "train": "community",
  53. "version": "1.0.8"
  54. },
  55. "schema": {
  56. "groups": [
  57. {
  58. "name": "ConvertX Configuration",
  59. "description": "Configure ConvertX"
  60. },
  61. {
  62. "name": "User and Group Configuration",
  63. "description": "Configure User and Group for ConvertX"
  64. },
  65. {
  66. "name": "Network Configuration",
  67. "description": "Configure Network for ConvertX"
  68. },
  69. {
  70. "name": "Storage Configuration",
  71. "description": "Configure Storage for ConvertX"
  72. },
  73. {
  74. "name": "Labels Configuration",
  75. "description": "Configure Labels for ConvertX"
  76. },
  77. {
  78. "name": "Resources Configuration",
  79. "description": "Configure Resources for ConvertX"
  80. }
  81. ],
  82. "questions": [
  83. {
  84. "variable": "TZ",
  85. "group": "ConvertX Configuration",
  86. "label": "Timezone",
  87. "schema": {
  88. "type": "string",
  89. "default": "Etc/UTC",
  90. "required": true,
  91. "$ref": [
  92. "definitions/timezone"
  93. ]
  94. }
  95. },
  96. {
  97. "variable": "convertx",
  98. "label": "",
  99. "group": "ConvertX Configuration",
  100. "schema": {
  101. "type": "dict",
  102. "attrs": [
  103. {
  104. "variable": "http_allowed",
  105. "label": "HTTP Allowed",
  106. "description": "Allow HTTP access to ConvertX.",
  107. "schema": {
  108. "type": "boolean",
  109. "default": true
  110. }
  111. },
  112. {
  113. "variable": "additional_envs",
  114. "label": "Additional Environment Variables",
  115. "schema": {
  116. "type": "list",
  117. "default": [],
  118. "items": [
  119. {
  120. "variable": "env",
  121. "label": "Environment Variable",
  122. "schema": {
  123. "type": "dict",
  124. "attrs": [
  125. {
  126. "variable": "name",
  127. "label": "Name",
  128. "schema": {
  129. "type": "string",
  130. "required": true
  131. }
  132. },
  133. {
  134. "variable": "value",
  135. "label": "Value",
  136. "schema": {
  137. "type": "string"
  138. }
  139. }
  140. ]
  141. }
  142. }
  143. ]
  144. }
  145. }
  146. ]
  147. }
  148. },
  149. {
  150. "variable": "run_as",
  151. "label": "",
  152. "group": "User and Group Configuration",
  153. "schema": {
  154. "type": "dict",
  155. "attrs": [
  156. {
  157. "variable": "user",
  158. "label": "User ID",
  159. "description": "The user id that ConvertX files will be owned by.",
  160. "schema": {
  161. "type": "int",
  162. "min": 568,
  163. "default": 568,
  164. "required": true
  165. }
  166. },
  167. {
  168. "variable": "group",
  169. "label": "Group ID",
  170. "description": "The group id that ConvertX files will be owned by.",
  171. "schema": {
  172. "type": "int",
  173. "min": 568,
  174. "default": 568,
  175. "required": true
  176. }
  177. }
  178. ]
  179. }
  180. },
  181. {
  182. "variable": "network",
  183. "label": "",
  184. "group": "Network Configuration",
  185. "schema": {
  186. "type": "dict",
  187. "attrs": [
  188. {
  189. "variable": "web_port",
  190. "label": "WebUI Port",
  191. "schema": {
  192. "type": "dict",
  193. "show_if": [
  194. [
  195. "host_network",
  196. "=",
  197. false
  198. ]
  199. ],
  200. "attrs": [
  201. {
  202. "variable": "bind_mode",
  203. "label": "Port Bind Mode",
  204. "description": "The port bind mode.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n",
  205. "schema": {
  206. "type": "string",
  207. "default": "published",
  208. "enum": [
  209. {
  210. "value": "published",
  211. "description": "Publish port on the host for external access"
  212. },
  213. {
  214. "value": "exposed",
  215. "description": "Expose port for inter-container communication"
  216. },
  217. {
  218. "value": "",
  219. "description": "None"
  220. }
  221. ]
  222. }
  223. },
  224. {
  225. "variable": "port_number",
  226. "label": "Port Number",
  227. "schema": {
  228. "type": "int",
  229. "default": 30154,
  230. "min": 1,
  231. "max": 65535,
  232. "required": true
  233. }
  234. },
  235. {
  236. "variable": "host_ips",
  237. "label": "Host IPs",
  238. "description": "IPs on the host to bind this port",
  239. "schema": {
  240. "type": "list",
  241. "show_if": [
  242. [
  243. "bind_mode",
  244. "=",
  245. "published"
  246. ]
  247. ],
  248. "default": [],
  249. "items": [
  250. {
  251. "variable": "host_ip",
  252. "label": "Host IP",
  253. "schema": {
  254. "type": "string",
  255. "required": true,
  256. "$ref": [
  257. "definitions/node_bind_ip"
  258. ]
  259. }
  260. }
  261. ]
  262. }
  263. }
  264. ]
  265. }
  266. },
  267. {
  268. "variable": "host_network",
  269. "label": "Host Network",
  270. "description": "Bind to the host network. It's recommended to keep this disabled.\n",
  271. "schema": {
  272. "type": "boolean",
  273. "default": false
  274. }
  275. }
  276. ]
  277. }
  278. },
  279. {
  280. "variable": "storage",
  281. "label": "",
  282. "group": "Storage Configuration",
  283. "schema": {
  284. "type": "dict",
  285. "attrs": [
  286. {
  287. "variable": "data",
  288. "label": "ConvertX Data Storage",
  289. "description": "The path to store ConvertX Data.",
  290. "schema": {
  291. "type": "dict",
  292. "attrs": [
  293. {
  294. "variable": "type",
  295. "label": "Type",
  296. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  297. "schema": {
  298. "type": "string",
  299. "required": true,
  300. "default": "ix_volume",
  301. "enum": [
  302. {
  303. "value": "host_path",
  304. "description": "Host Path (Path that already exists on the system)"
  305. },
  306. {
  307. "value": "ix_volume",
  308. "description": "ixVolume (Dataset created automatically by the system)"
  309. }
  310. ]
  311. }
  312. },
  313. {
  314. "variable": "ix_volume_config",
  315. "label": "ixVolume Configuration",
  316. "description": "The configuration for the ixVolume dataset.",
  317. "schema": {
  318. "type": "dict",
  319. "show_if": [
  320. [
  321. "type",
  322. "=",
  323. "ix_volume"
  324. ]
  325. ],
  326. "$ref": [
  327. "normalize/ix_volume"
  328. ],
  329. "attrs": [
  330. {
  331. "variable": "acl_enable",
  332. "label": "Enable ACL",
  333. "description": "Enable ACL for the storage.",
  334. "schema": {
  335. "type": "boolean",
  336. "default": false
  337. }
  338. },
  339. {
  340. "variable": "dataset_name",
  341. "label": "Dataset Name",
  342. "description": "The name of the dataset to use for storage.",
  343. "schema": {
  344. "type": "string",
  345. "required": true,
  346. "hidden": true,
  347. "default": "data"
  348. }
  349. },
  350. {
  351. "variable": "acl_entries",
  352. "label": "ACL Configuration",
  353. "schema": {
  354. "type": "dict",
  355. "show_if": [
  356. [
  357. "acl_enable",
  358. "=",
  359. true
  360. ]
  361. ],
  362. "attrs": []
  363. }
  364. }
  365. ]
  366. }
  367. },
  368. {
  369. "variable": "host_path_config",
  370. "label": "Host Path Configuration",
  371. "schema": {
  372. "type": "dict",
  373. "show_if": [
  374. [
  375. "type",
  376. "=",
  377. "host_path"
  378. ]
  379. ],
  380. "attrs": [
  381. {
  382. "variable": "acl_enable",
  383. "label": "Enable ACL",
  384. "description": "Enable ACL for the storage.",
  385. "schema": {
  386. "type": "boolean",
  387. "default": false
  388. }
  389. },
  390. {
  391. "variable": "acl",
  392. "label": "ACL Configuration",
  393. "schema": {
  394. "type": "dict",
  395. "show_if": [
  396. [
  397. "acl_enable",
  398. "=",
  399. true
  400. ]
  401. ],
  402. "attrs": [],
  403. "$ref": [
  404. "normalize/acl"
  405. ]
  406. }
  407. },
  408. {
  409. "variable": "path",
  410. "label": "Host Path",
  411. "description": "The host path to use for storage.",
  412. "schema": {
  413. "type": "hostpath",
  414. "show_if": [
  415. [
  416. "acl_enable",
  417. "=",
  418. false
  419. ]
  420. ],
  421. "required": true
  422. }
  423. }
  424. ]
  425. }
  426. }
  427. ]
  428. }
  429. },
  430. {
  431. "variable": "additional_storage",
  432. "label": "Additional Storage",
  433. "schema": {
  434. "type": "list",
  435. "default": [],
  436. "items": [
  437. {
  438. "variable": "storageEntry",
  439. "label": "Storage Entry",
  440. "schema": {
  441. "type": "dict",
  442. "attrs": [
  443. {
  444. "variable": "type",
  445. "label": "Type",
  446. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to as a volume.\n",
  447. "schema": {
  448. "type": "string",
  449. "required": true,
  450. "default": "ix_volume",
  451. "enum": [
  452. {
  453. "value": "host_path",
  454. "description": "Host Path (Path that already exists on the system)"
  455. },
  456. {
  457. "value": "ix_volume",
  458. "description": "ixVolume (Dataset created automatically by the system)"
  459. },
  460. {
  461. "value": "cifs",
  462. "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
  463. }
  464. ]
  465. }
  466. },
  467. {
  468. "variable": "read_only",
  469. "label": "Read Only",
  470. "description": "Mount the volume as read only.",
  471. "schema": {
  472. "type": "boolean",
  473. "default": false
  474. }
  475. },
  476. {
  477. "variable": "mount_path",
  478. "label": "Mount Path",
  479. "description": "The path inside the container to mount the storage.",
  480. "schema": {
  481. "type": "path",
  482. "required": true
  483. }
  484. },
  485. {
  486. "variable": "host_path_config",
  487. "label": "Host Path Configuration",
  488. "schema": {
  489. "type": "dict",
  490. "show_if": [
  491. [
  492. "type",
  493. "=",
  494. "host_path"
  495. ]
  496. ],
  497. "attrs": [
  498. {
  499. "variable": "acl_enable",
  500. "label": "Enable ACL",
  501. "description": "Enable ACL for the storage.",
  502. "schema": {
  503. "type": "boolean",
  504. "default": false
  505. }
  506. },
  507. {
  508. "variable": "acl",
  509. "label": "ACL Configuration",
  510. "schema": {
  511. "type": "dict",
  512. "show_if": [
  513. [
  514. "acl_enable",
  515. "=",
  516. true
  517. ]
  518. ],
  519. "attrs": [],
  520. "$ref": [
  521. "normalize/acl"
  522. ]
  523. }
  524. },
  525. {
  526. "variable": "path",
  527. "label": "Host Path",
  528. "description": "The host path to use for storage.",
  529. "schema": {
  530. "type": "hostpath",
  531. "show_if": [
  532. [
  533. "acl_enable",
  534. "=",
  535. false
  536. ]
  537. ],
  538. "required": true
  539. }
  540. }
  541. ]
  542. }
  543. },
  544. {
  545. "variable": "ix_volume_config",
  546. "label": "ixVolume Configuration",
  547. "description": "The configuration for the ixVolume dataset.",
  548. "schema": {
  549. "type": "dict",
  550. "show_if": [
  551. [
  552. "type",
  553. "=",
  554. "ix_volume"
  555. ]
  556. ],
  557. "$ref": [
  558. "normalize/ix_volume"
  559. ],
  560. "attrs": [
  561. {
  562. "variable": "acl_enable",
  563. "label": "Enable ACL",
  564. "description": "Enable ACL for the storage.",
  565. "schema": {
  566. "type": "boolean",
  567. "default": false
  568. }
  569. },
  570. {
  571. "variable": "dataset_name",
  572. "label": "Dataset Name",
  573. "description": "The name of the dataset to use for storage.",
  574. "schema": {
  575. "type": "string",
  576. "required": true,
  577. "default": "storage_entry"
  578. }
  579. },
  580. {
  581. "variable": "acl_entries",
  582. "label": "ACL Configuration",
  583. "schema": {
  584. "type": "dict",
  585. "show_if": [
  586. [
  587. "acl_enable",
  588. "=",
  589. true
  590. ]
  591. ],
  592. "attrs": [],
  593. "$ref": [
  594. "normalize/acl"
  595. ]
  596. }
  597. }
  598. ]
  599. }
  600. },
  601. {
  602. "variable": "cifs_config",
  603. "label": "SMB Configuration",
  604. "description": "The configuration for the SMB dataset.",
  605. "schema": {
  606. "type": "dict",
  607. "show_if": [
  608. [
  609. "type",
  610. "=",
  611. "cifs"
  612. ]
  613. ],
  614. "attrs": [
  615. {
  616. "variable": "server",
  617. "label": "Server",
  618. "description": "The server to mount the SMB share.",
  619. "schema": {
  620. "type": "string",
  621. "required": true
  622. }
  623. },
  624. {
  625. "variable": "path",
  626. "label": "Path",
  627. "description": "The path to mount the SMB share.",
  628. "schema": {
  629. "type": "string",
  630. "required": true
  631. }
  632. },
  633. {
  634. "variable": "username",
  635. "label": "Username",
  636. "description": "The username to use for the SMB share.",
  637. "schema": {
  638. "type": "string",
  639. "required": true
  640. }
  641. },
  642. {
  643. "variable": "password",
  644. "label": "Password",
  645. "description": "The password to use for the SMB share.",
  646. "schema": {
  647. "type": "string",
  648. "required": true,
  649. "private": true
  650. }
  651. },
  652. {
  653. "variable": "domain",
  654. "label": "Domain",
  655. "description": "The domain to use for the SMB share.",
  656. "schema": {
  657. "type": "string"
  658. }
  659. }
  660. ]
  661. }
  662. }
  663. ]
  664. }
  665. }
  666. ]
  667. }
  668. }
  669. ]
  670. }
  671. },
  672. {
  673. "variable": "labels",
  674. "label": "",
  675. "group": "Labels Configuration",
  676. "schema": {
  677. "type": "list",
  678. "default": [],
  679. "items": [
  680. {
  681. "variable": "label",
  682. "label": "Label",
  683. "schema": {
  684. "type": "dict",
  685. "attrs": [
  686. {
  687. "variable": "key",
  688. "label": "Key",
  689. "schema": {
  690. "type": "string",
  691. "required": true
  692. }
  693. },
  694. {
  695. "variable": "value",
  696. "label": "Value",
  697. "schema": {
  698. "type": "string",
  699. "required": true
  700. }
  701. },
  702. {
  703. "variable": "containers",
  704. "label": "Containers",
  705. "description": "Containers where the label should be applied",
  706. "schema": {
  707. "type": "list",
  708. "items": [
  709. {
  710. "variable": "container",
  711. "label": "Container",
  712. "schema": {
  713. "type": "string",
  714. "required": true,
  715. "enum": [
  716. {
  717. "value": "convertx",
  718. "description": "convertx"
  719. }
  720. ]
  721. }
  722. }
  723. ]
  724. }
  725. }
  726. ]
  727. }
  728. }
  729. ]
  730. }
  731. },
  732. {
  733. "variable": "resources",
  734. "label": "",
  735. "group": "Resources Configuration",
  736. "schema": {
  737. "type": "dict",
  738. "attrs": [
  739. {
  740. "variable": "limits",
  741. "label": "Limits",
  742. "schema": {
  743. "type": "dict",
  744. "attrs": [
  745. {
  746. "variable": "cpus",
  747. "label": "CPUs",
  748. "description": "CPUs limit for ConvertX.",
  749. "schema": {
  750. "type": "int",
  751. "default": 2,
  752. "required": true
  753. }
  754. },
  755. {
  756. "variable": "memory",
  757. "label": "Memory (in MB)",
  758. "description": "Memory limit for ConvertX.",
  759. "schema": {
  760. "type": "int",
  761. "default": 4096,
  762. "required": true
  763. }
  764. }
  765. ]
  766. }
  767. },
  768. {
  769. "variable": "gpus",
  770. "group": "Resources Configuration",
  771. "label": "GPU Configuration",
  772. "schema": {
  773. "type": "dict",
  774. "$ref": [
  775. "definitions/gpu_configuration"
  776. ],
  777. "attrs": []
  778. }
  779. }
  780. ]
  781. }
  782. }
  783. ]
  784. },
  785. "readme": "<h1>ConvertX</h1> <p><a href=\"https://github.com/C4illin/ConvertX\">ConvertX</a> is a self-hosted online file converter with support for over 1000 formats</p>",
  786. "changelog": null,
  787. "chart_metadata": {
  788. "app_version": "v0.14.1",
  789. "capabilities": [],
  790. "categories": [
  791. "productivity"
  792. ],
  793. "changelog_url": "https://github.com/C4illin/ConvertX/releases",
  794. "date_added": "2025-05-05",
  795. "description": "ConvertX is a self-hosted online file converter with support for over 1000 formats",
  796. "home": "https://github.com/C4illin/ConvertX",
  797. "host_mounts": [],
  798. "icon": "https://media.sys.truenas.net/apps/convertx/icons/icon.png",
  799. "keywords": [
  800. "convertx",
  801. "files",
  802. "conversion"
  803. ],
  804. "lib_version": "2.1.49",
  805. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  806. "maintainers": [
  807. {
  808. "email": "dev@ixsystems.com",
  809. "name": "truenas",
  810. "url": "https://www.truenas.com/"
  811. }
  812. ],
  813. "name": "convertx",
  814. "run_as_context": [
  815. {
  816. "description": "ConvertX runs as any non-root user.",
  817. "gid": 568,
  818. "group_name": "convertx",
  819. "uid": 568,
  820. "user_name": "convertx"
  821. }
  822. ],
  823. "screenshots": [],
  824. "sources": [
  825. "https://github.com/C4illin/ConvertX"
  826. ],
  827. "title": "ConvertX",
  828. "train": "community",
  829. "version": "1.0.8"
  830. }
  831. }
  832. }