app_versions.json 80 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309
  1. {
  2. "1.0.17": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/apps/apps/trains/community/zipline/1.0.17",
  7. "last_update": "2025-09-02 11:33:24",
  8. "required_features": [],
  9. "human_version": "4.2.3_1.0.17",
  10. "version": "1.0.17",
  11. "app_metadata": {
  12. "app_version": "4.2.3",
  13. "capabilities": [],
  14. "categories": [
  15. "media"
  16. ],
  17. "changelog_url": "https://github.com/diced/zipline/releases",
  18. "date_added": "2025-05-19",
  19. "description": "Zipline The next generation ShareX / File upload server.",
  20. "home": "https://zipline.diced.sh/",
  21. "host_mounts": [],
  22. "icon": "https://media.sys.truenas.net/apps/zipline/icons/icon.png",
  23. "keywords": [
  24. "zipline",
  25. "media"
  26. ],
  27. "lib_version": "2.1.49",
  28. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  29. "maintainers": [
  30. {
  31. "email": "dev@ixsystems.com",
  32. "name": "truenas",
  33. "url": "https://www.truenas.com/"
  34. }
  35. ],
  36. "name": "zipline",
  37. "run_as_context": [
  38. {
  39. "description": "Zipline runs as any non-root user.",
  40. "gid": 568,
  41. "group_name": "zipline",
  42. "uid": 568,
  43. "user_name": "zipline"
  44. },
  45. {
  46. "description": "Postgres runs as non-root user.",
  47. "gid": 999,
  48. "group_name": "postgres",
  49. "uid": 999,
  50. "user_name": "postgres"
  51. }
  52. ],
  53. "sources": [
  54. "https://github.com/diced/zipline"
  55. ],
  56. "title": "Zipline",
  57. "train": "community",
  58. "version": "1.0.17"
  59. },
  60. "schema": {
  61. "groups": [
  62. {
  63. "name": "Zipline Configuration",
  64. "description": "Configure Zipline"
  65. },
  66. {
  67. "name": "User and Group Configuration",
  68. "description": "Configure User and Group for Zipline"
  69. },
  70. {
  71. "name": "Network Configuration",
  72. "description": "Configure Network for Zipline"
  73. },
  74. {
  75. "name": "Storage Configuration",
  76. "description": "Configure Storage for Zipline"
  77. },
  78. {
  79. "name": "Labels Configuration",
  80. "description": "Configure Labels for Zipline"
  81. },
  82. {
  83. "name": "Resources Configuration",
  84. "description": "Configure Resources for Zipline"
  85. }
  86. ],
  87. "questions": [
  88. {
  89. "variable": "TZ",
  90. "group": "Zipline Configuration",
  91. "label": "Timezone",
  92. "schema": {
  93. "type": "string",
  94. "default": "Etc/UTC",
  95. "required": true,
  96. "$ref": [
  97. "definitions/timezone"
  98. ]
  99. }
  100. },
  101. {
  102. "variable": "zipline",
  103. "label": "",
  104. "group": "Zipline Configuration",
  105. "schema": {
  106. "type": "dict",
  107. "attrs": [
  108. {
  109. "variable": "postgres_image_selector",
  110. "label": "Postgres Image (CAUTION)",
  111. "description": "If you are changing this after the postgres directory has been initialized,</br>\nSTOP! and make sure you have a backup of your data.</br>\nChanging this will trigger an one way database upgrade.</br>\nYou can only select newer versions of postgres.</br>\nSelecting an older version will refuse to start.</br>\nIf something goes wrong, you will have to restore from backup.\n",
  112. "schema": {
  113. "type": "string",
  114. "default": "postgres_17_image",
  115. "required": true,
  116. "enum": [
  117. {
  118. "value": "postgres_17_image",
  119. "description": "Postgres 17"
  120. }
  121. ]
  122. }
  123. },
  124. {
  125. "variable": "db_password",
  126. "label": "Database Password",
  127. "description": "The password for Authelia.",
  128. "schema": {
  129. "type": "string",
  130. "default": "",
  131. "required": true,
  132. "private": true
  133. }
  134. },
  135. {
  136. "variable": "core_secret",
  137. "label": "Core secret",
  138. "description": "A secret that is 32 characters long.",
  139. "schema": {
  140. "type": "string",
  141. "min_length": 32,
  142. "max_length": 32,
  143. "default": "",
  144. "private": true,
  145. "required": true
  146. }
  147. },
  148. {
  149. "variable": "additional_envs",
  150. "label": "Additional Environment Variables",
  151. "schema": {
  152. "type": "list",
  153. "default": [],
  154. "items": [
  155. {
  156. "variable": "env",
  157. "label": "Environment Variable",
  158. "schema": {
  159. "type": "dict",
  160. "attrs": [
  161. {
  162. "variable": "name",
  163. "label": "Name",
  164. "schema": {
  165. "type": "string",
  166. "required": true
  167. }
  168. },
  169. {
  170. "variable": "value",
  171. "label": "Value",
  172. "schema": {
  173. "type": "string"
  174. }
  175. }
  176. ]
  177. }
  178. }
  179. ]
  180. }
  181. }
  182. ]
  183. }
  184. },
  185. {
  186. "variable": "run_as",
  187. "label": "",
  188. "group": "User and Group Configuration",
  189. "schema": {
  190. "type": "dict",
  191. "attrs": [
  192. {
  193. "variable": "user",
  194. "label": "User ID",
  195. "description": "The user id that Zipline files will be owned by.",
  196. "schema": {
  197. "type": "int",
  198. "min": 568,
  199. "default": 568,
  200. "required": true
  201. }
  202. },
  203. {
  204. "variable": "group",
  205. "label": "Group ID",
  206. "description": "The group id that Zipline files will be owned by.",
  207. "schema": {
  208. "type": "int",
  209. "min": 568,
  210. "default": 568,
  211. "required": true
  212. }
  213. }
  214. ]
  215. }
  216. },
  217. {
  218. "variable": "network",
  219. "label": "",
  220. "group": "Network Configuration",
  221. "schema": {
  222. "type": "dict",
  223. "attrs": [
  224. {
  225. "variable": "web_port",
  226. "label": "WebUI Port",
  227. "schema": {
  228. "type": "dict",
  229. "attrs": [
  230. {
  231. "variable": "bind_mode",
  232. "label": "Port Bind Mode",
  233. "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",
  234. "schema": {
  235. "type": "string",
  236. "default": "published",
  237. "enum": [
  238. {
  239. "value": "published",
  240. "description": "Publish port on the host for external access"
  241. },
  242. {
  243. "value": "exposed",
  244. "description": "Expose port for inter-container communication"
  245. },
  246. {
  247. "value": "",
  248. "description": "None"
  249. }
  250. ]
  251. }
  252. },
  253. {
  254. "variable": "port_number",
  255. "label": "Port Number",
  256. "schema": {
  257. "type": "int",
  258. "default": 30164,
  259. "min": 1,
  260. "max": 65535,
  261. "required": true
  262. }
  263. },
  264. {
  265. "variable": "host_ips",
  266. "label": "Host IPs",
  267. "description": "IPs on the host to bind this port",
  268. "schema": {
  269. "type": "list",
  270. "show_if": [
  271. [
  272. "bind_mode",
  273. "=",
  274. "published"
  275. ]
  276. ],
  277. "default": [],
  278. "items": [
  279. {
  280. "variable": "host_ip",
  281. "label": "Host IP",
  282. "schema": {
  283. "type": "string",
  284. "required": true,
  285. "$ref": [
  286. "definitions/node_bind_ip"
  287. ]
  288. }
  289. }
  290. ]
  291. }
  292. }
  293. ]
  294. }
  295. },
  296. {
  297. "variable": "certificate_id",
  298. "label": "Certificate",
  299. "description": "The certificate to use for Zipline.",
  300. "schema": {
  301. "type": "int",
  302. "null": true,
  303. "$ref": [
  304. "definitions/certificate"
  305. ]
  306. }
  307. }
  308. ]
  309. }
  310. },
  311. {
  312. "variable": "storage",
  313. "label": "",
  314. "group": "Storage Configuration",
  315. "schema": {
  316. "type": "dict",
  317. "attrs": [
  318. {
  319. "variable": "uploads",
  320. "label": "Uploads Storage",
  321. "description": "The folder where all the user uploads are stored.",
  322. "schema": {
  323. "type": "dict",
  324. "attrs": [
  325. {
  326. "variable": "type",
  327. "label": "Type",
  328. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  329. "schema": {
  330. "type": "string",
  331. "required": true,
  332. "default": "ix_volume",
  333. "enum": [
  334. {
  335. "value": "host_path",
  336. "description": "Host Path (Path that already exists on the system)"
  337. },
  338. {
  339. "value": "ix_volume",
  340. "description": "ixVolume (Dataset created automatically by the system)"
  341. }
  342. ]
  343. }
  344. },
  345. {
  346. "variable": "ix_volume_config",
  347. "label": "ixVolume Configuration",
  348. "description": "The configuration for the ixVolume dataset.",
  349. "schema": {
  350. "type": "dict",
  351. "show_if": [
  352. [
  353. "type",
  354. "=",
  355. "ix_volume"
  356. ]
  357. ],
  358. "$ref": [
  359. "normalize/ix_volume"
  360. ],
  361. "attrs": [
  362. {
  363. "variable": "acl_enable",
  364. "label": "Enable ACL",
  365. "description": "Enable ACL for the storage.",
  366. "schema": {
  367. "type": "boolean",
  368. "default": false
  369. }
  370. },
  371. {
  372. "variable": "dataset_name",
  373. "label": "Dataset Name",
  374. "description": "The name of the dataset to use for storage.",
  375. "schema": {
  376. "type": "string",
  377. "required": true,
  378. "hidden": true,
  379. "default": "uploads"
  380. }
  381. },
  382. {
  383. "variable": "acl_entries",
  384. "label": "ACL Configuration",
  385. "schema": {
  386. "type": "dict",
  387. "show_if": [
  388. [
  389. "acl_enable",
  390. "=",
  391. true
  392. ]
  393. ],
  394. "attrs": []
  395. }
  396. }
  397. ]
  398. }
  399. },
  400. {
  401. "variable": "host_path_config",
  402. "label": "Host Path Configuration",
  403. "schema": {
  404. "type": "dict",
  405. "show_if": [
  406. [
  407. "type",
  408. "=",
  409. "host_path"
  410. ]
  411. ],
  412. "attrs": [
  413. {
  414. "variable": "acl_enable",
  415. "label": "Enable ACL",
  416. "description": "Enable ACL for the storage.",
  417. "schema": {
  418. "type": "boolean",
  419. "default": false
  420. }
  421. },
  422. {
  423. "variable": "acl",
  424. "label": "ACL Configuration",
  425. "schema": {
  426. "type": "dict",
  427. "show_if": [
  428. [
  429. "acl_enable",
  430. "=",
  431. true
  432. ]
  433. ],
  434. "attrs": [],
  435. "$ref": [
  436. "normalize/acl"
  437. ]
  438. }
  439. },
  440. {
  441. "variable": "path",
  442. "label": "Host Path",
  443. "description": "The host path to use for storage.",
  444. "schema": {
  445. "type": "hostpath",
  446. "show_if": [
  447. [
  448. "acl_enable",
  449. "=",
  450. false
  451. ]
  452. ],
  453. "required": true
  454. }
  455. }
  456. ]
  457. }
  458. }
  459. ]
  460. }
  461. },
  462. {
  463. "variable": "public",
  464. "label": "Public Storage",
  465. "description": "The folder where all the public assets are stored.",
  466. "schema": {
  467. "type": "dict",
  468. "attrs": [
  469. {
  470. "variable": "type",
  471. "label": "Type",
  472. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  473. "schema": {
  474. "type": "string",
  475. "required": true,
  476. "default": "ix_volume",
  477. "enum": [
  478. {
  479. "value": "host_path",
  480. "description": "Host Path (Path that already exists on the system)"
  481. },
  482. {
  483. "value": "ix_volume",
  484. "description": "ixVolume (Dataset created automatically by the system)"
  485. }
  486. ]
  487. }
  488. },
  489. {
  490. "variable": "ix_volume_config",
  491. "label": "ixVolume Configuration",
  492. "description": "The configuration for the ixVolume dataset.",
  493. "schema": {
  494. "type": "dict",
  495. "show_if": [
  496. [
  497. "type",
  498. "=",
  499. "ix_volume"
  500. ]
  501. ],
  502. "$ref": [
  503. "normalize/ix_volume"
  504. ],
  505. "attrs": [
  506. {
  507. "variable": "acl_enable",
  508. "label": "Enable ACL",
  509. "description": "Enable ACL for the storage.",
  510. "schema": {
  511. "type": "boolean",
  512. "default": false
  513. }
  514. },
  515. {
  516. "variable": "dataset_name",
  517. "label": "Dataset Name",
  518. "description": "The name of the dataset to use for storage.",
  519. "schema": {
  520. "type": "string",
  521. "required": true,
  522. "hidden": true,
  523. "default": "public"
  524. }
  525. },
  526. {
  527. "variable": "acl_entries",
  528. "label": "ACL Configuration",
  529. "schema": {
  530. "type": "dict",
  531. "show_if": [
  532. [
  533. "acl_enable",
  534. "=",
  535. true
  536. ]
  537. ],
  538. "attrs": []
  539. }
  540. }
  541. ]
  542. }
  543. },
  544. {
  545. "variable": "host_path_config",
  546. "label": "Host Path Configuration",
  547. "schema": {
  548. "type": "dict",
  549. "show_if": [
  550. [
  551. "type",
  552. "=",
  553. "host_path"
  554. ]
  555. ],
  556. "attrs": [
  557. {
  558. "variable": "acl_enable",
  559. "label": "Enable ACL",
  560. "description": "Enable ACL for the storage.",
  561. "schema": {
  562. "type": "boolean",
  563. "default": false
  564. }
  565. },
  566. {
  567. "variable": "acl",
  568. "label": "ACL Configuration",
  569. "schema": {
  570. "type": "dict",
  571. "show_if": [
  572. [
  573. "acl_enable",
  574. "=",
  575. true
  576. ]
  577. ],
  578. "attrs": [],
  579. "$ref": [
  580. "normalize/acl"
  581. ]
  582. }
  583. },
  584. {
  585. "variable": "path",
  586. "label": "Host Path",
  587. "description": "The host path to use for storage.",
  588. "schema": {
  589. "type": "hostpath",
  590. "show_if": [
  591. [
  592. "acl_enable",
  593. "=",
  594. false
  595. ]
  596. ],
  597. "required": true
  598. }
  599. }
  600. ]
  601. }
  602. }
  603. ]
  604. }
  605. },
  606. {
  607. "variable": "themes",
  608. "label": "Themes Storage",
  609. "description": "The folder where all the custom themes are stored.",
  610. "schema": {
  611. "type": "dict",
  612. "attrs": [
  613. {
  614. "variable": "type",
  615. "label": "Type",
  616. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  617. "schema": {
  618. "type": "string",
  619. "required": true,
  620. "default": "ix_volume",
  621. "enum": [
  622. {
  623. "value": "host_path",
  624. "description": "Host Path (Path that already exists on the system)"
  625. },
  626. {
  627. "value": "ix_volume",
  628. "description": "ixVolume (Dataset created automatically by the system)"
  629. }
  630. ]
  631. }
  632. },
  633. {
  634. "variable": "ix_volume_config",
  635. "label": "ixVolume Configuration",
  636. "description": "The configuration for the ixVolume dataset.",
  637. "schema": {
  638. "type": "dict",
  639. "show_if": [
  640. [
  641. "type",
  642. "=",
  643. "ix_volume"
  644. ]
  645. ],
  646. "$ref": [
  647. "normalize/ix_volume"
  648. ],
  649. "attrs": [
  650. {
  651. "variable": "acl_enable",
  652. "label": "Enable ACL",
  653. "description": "Enable ACL for the storage.",
  654. "schema": {
  655. "type": "boolean",
  656. "default": false
  657. }
  658. },
  659. {
  660. "variable": "dataset_name",
  661. "label": "Dataset Name",
  662. "description": "The name of the dataset to use for storage.",
  663. "schema": {
  664. "type": "string",
  665. "required": true,
  666. "hidden": true,
  667. "default": "themes"
  668. }
  669. },
  670. {
  671. "variable": "acl_entries",
  672. "label": "ACL Configuration",
  673. "schema": {
  674. "type": "dict",
  675. "show_if": [
  676. [
  677. "acl_enable",
  678. "=",
  679. true
  680. ]
  681. ],
  682. "attrs": []
  683. }
  684. }
  685. ]
  686. }
  687. },
  688. {
  689. "variable": "host_path_config",
  690. "label": "Host Path Configuration",
  691. "schema": {
  692. "type": "dict",
  693. "show_if": [
  694. [
  695. "type",
  696. "=",
  697. "host_path"
  698. ]
  699. ],
  700. "attrs": [
  701. {
  702. "variable": "acl_enable",
  703. "label": "Enable ACL",
  704. "description": "Enable ACL for the storage.",
  705. "schema": {
  706. "type": "boolean",
  707. "default": false
  708. }
  709. },
  710. {
  711. "variable": "acl",
  712. "label": "ACL Configuration",
  713. "schema": {
  714. "type": "dict",
  715. "show_if": [
  716. [
  717. "acl_enable",
  718. "=",
  719. true
  720. ]
  721. ],
  722. "attrs": [],
  723. "$ref": [
  724. "normalize/acl"
  725. ]
  726. }
  727. },
  728. {
  729. "variable": "path",
  730. "label": "Host Path",
  731. "description": "The host path to use for storage.",
  732. "schema": {
  733. "type": "hostpath",
  734. "show_if": [
  735. [
  736. "acl_enable",
  737. "=",
  738. false
  739. ]
  740. ],
  741. "required": true
  742. }
  743. }
  744. ]
  745. }
  746. }
  747. ]
  748. }
  749. },
  750. {
  751. "variable": "postgres_data",
  752. "label": "Postgres Data Storage",
  753. "description": "The path to store Postgres Data.",
  754. "schema": {
  755. "type": "dict",
  756. "attrs": [
  757. {
  758. "variable": "type",
  759. "label": "Type",
  760. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  761. "schema": {
  762. "type": "string",
  763. "required": true,
  764. "default": "ix_volume",
  765. "enum": [
  766. {
  767. "value": "host_path",
  768. "description": "Host Path (Path that already exists on the system)"
  769. },
  770. {
  771. "value": "ix_volume",
  772. "description": "ixVolume (Dataset created automatically by the system)"
  773. }
  774. ]
  775. }
  776. },
  777. {
  778. "variable": "ix_volume_config",
  779. "label": "ixVolume Configuration",
  780. "description": "The configuration for the ixVolume dataset.",
  781. "schema": {
  782. "type": "dict",
  783. "show_if": [
  784. [
  785. "type",
  786. "=",
  787. "ix_volume"
  788. ]
  789. ],
  790. "$ref": [
  791. "normalize/ix_volume"
  792. ],
  793. "attrs": [
  794. {
  795. "variable": "acl_enable",
  796. "label": "Enable ACL",
  797. "description": "Enable ACL for the storage.",
  798. "schema": {
  799. "type": "boolean",
  800. "default": false
  801. }
  802. },
  803. {
  804. "variable": "dataset_name",
  805. "label": "Dataset Name",
  806. "description": "The name of the dataset to use for storage.",
  807. "schema": {
  808. "type": "string",
  809. "required": true,
  810. "hidden": true,
  811. "default": "pg_data"
  812. }
  813. },
  814. {
  815. "variable": "acl_entries",
  816. "label": "ACL Configuration",
  817. "schema": {
  818. "type": "dict",
  819. "show_if": [
  820. [
  821. "acl_enable",
  822. "=",
  823. true
  824. ]
  825. ],
  826. "attrs": []
  827. }
  828. }
  829. ]
  830. }
  831. },
  832. {
  833. "variable": "host_path_config",
  834. "label": "Host Path Configuration",
  835. "schema": {
  836. "type": "dict",
  837. "show_if": [
  838. [
  839. "type",
  840. "=",
  841. "host_path"
  842. ]
  843. ],
  844. "attrs": [
  845. {
  846. "variable": "acl_enable",
  847. "label": "Enable ACL",
  848. "description": "Enable ACL for the storage.",
  849. "schema": {
  850. "type": "boolean",
  851. "default": false
  852. }
  853. },
  854. {
  855. "variable": "acl",
  856. "label": "ACL Configuration",
  857. "schema": {
  858. "type": "dict",
  859. "show_if": [
  860. [
  861. "acl_enable",
  862. "=",
  863. true
  864. ]
  865. ],
  866. "attrs": [],
  867. "$ref": [
  868. "normalize/acl"
  869. ]
  870. }
  871. },
  872. {
  873. "variable": "path",
  874. "label": "Host Path",
  875. "description": "The host path to use for storage.",
  876. "schema": {
  877. "type": "hostpath",
  878. "show_if": [
  879. [
  880. "acl_enable",
  881. "=",
  882. false
  883. ]
  884. ],
  885. "required": true
  886. }
  887. },
  888. {
  889. "variable": "auto_permissions",
  890. "label": "Automatic Permissions",
  891. "description": "Automatically set permissions for the host path.\nEnabling this, will check the top level directory,</br>\nIf it finds incorrect permissions, it will `chown` the\nhost path to the user and group required for the\npostgres container.\n",
  892. "schema": {
  893. "type": "boolean",
  894. "default": false,
  895. "show_if": [
  896. [
  897. "acl_enable",
  898. "=",
  899. false
  900. ]
  901. ]
  902. }
  903. }
  904. ]
  905. }
  906. }
  907. ]
  908. }
  909. },
  910. {
  911. "variable": "additional_storage",
  912. "label": "Additional Storage",
  913. "schema": {
  914. "type": "list",
  915. "default": [],
  916. "items": [
  917. {
  918. "variable": "storageEntry",
  919. "label": "Storage Entry",
  920. "schema": {
  921. "type": "dict",
  922. "attrs": [
  923. {
  924. "variable": "type",
  925. "label": "Type",
  926. "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",
  927. "schema": {
  928. "type": "string",
  929. "required": true,
  930. "default": "ix_volume",
  931. "enum": [
  932. {
  933. "value": "host_path",
  934. "description": "Host Path (Path that already exists on the system)"
  935. },
  936. {
  937. "value": "ix_volume",
  938. "description": "ixVolume (Dataset created automatically by the system)"
  939. },
  940. {
  941. "value": "cifs",
  942. "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
  943. }
  944. ]
  945. }
  946. },
  947. {
  948. "variable": "read_only",
  949. "label": "Read Only",
  950. "description": "Mount the volume as read only.",
  951. "schema": {
  952. "type": "boolean",
  953. "default": false
  954. }
  955. },
  956. {
  957. "variable": "mount_path",
  958. "label": "Mount Path",
  959. "description": "The path inside the container to mount the storage.",
  960. "schema": {
  961. "type": "path",
  962. "required": true
  963. }
  964. },
  965. {
  966. "variable": "host_path_config",
  967. "label": "Host Path Configuration",
  968. "schema": {
  969. "type": "dict",
  970. "show_if": [
  971. [
  972. "type",
  973. "=",
  974. "host_path"
  975. ]
  976. ],
  977. "attrs": [
  978. {
  979. "variable": "acl_enable",
  980. "label": "Enable ACL",
  981. "description": "Enable ACL for the storage.",
  982. "schema": {
  983. "type": "boolean",
  984. "default": false
  985. }
  986. },
  987. {
  988. "variable": "acl",
  989. "label": "ACL Configuration",
  990. "schema": {
  991. "type": "dict",
  992. "show_if": [
  993. [
  994. "acl_enable",
  995. "=",
  996. true
  997. ]
  998. ],
  999. "attrs": [],
  1000. "$ref": [
  1001. "normalize/acl"
  1002. ]
  1003. }
  1004. },
  1005. {
  1006. "variable": "path",
  1007. "label": "Host Path",
  1008. "description": "The host path to use for storage.",
  1009. "schema": {
  1010. "type": "hostpath",
  1011. "show_if": [
  1012. [
  1013. "acl_enable",
  1014. "=",
  1015. false
  1016. ]
  1017. ],
  1018. "required": true
  1019. }
  1020. }
  1021. ]
  1022. }
  1023. },
  1024. {
  1025. "variable": "ix_volume_config",
  1026. "label": "ixVolume Configuration",
  1027. "description": "The configuration for the ixVolume dataset.",
  1028. "schema": {
  1029. "type": "dict",
  1030. "show_if": [
  1031. [
  1032. "type",
  1033. "=",
  1034. "ix_volume"
  1035. ]
  1036. ],
  1037. "$ref": [
  1038. "normalize/ix_volume"
  1039. ],
  1040. "attrs": [
  1041. {
  1042. "variable": "acl_enable",
  1043. "label": "Enable ACL",
  1044. "description": "Enable ACL for the storage.",
  1045. "schema": {
  1046. "type": "boolean",
  1047. "default": false
  1048. }
  1049. },
  1050. {
  1051. "variable": "dataset_name",
  1052. "label": "Dataset Name",
  1053. "description": "The name of the dataset to use for storage.",
  1054. "schema": {
  1055. "type": "string",
  1056. "required": true,
  1057. "default": "storage_entry"
  1058. }
  1059. },
  1060. {
  1061. "variable": "acl_entries",
  1062. "label": "ACL Configuration",
  1063. "schema": {
  1064. "type": "dict",
  1065. "show_if": [
  1066. [
  1067. "acl_enable",
  1068. "=",
  1069. true
  1070. ]
  1071. ],
  1072. "attrs": [],
  1073. "$ref": [
  1074. "normalize/acl"
  1075. ]
  1076. }
  1077. }
  1078. ]
  1079. }
  1080. },
  1081. {
  1082. "variable": "cifs_config",
  1083. "label": "SMB Configuration",
  1084. "description": "The configuration for the SMB dataset.",
  1085. "schema": {
  1086. "type": "dict",
  1087. "show_if": [
  1088. [
  1089. "type",
  1090. "=",
  1091. "cifs"
  1092. ]
  1093. ],
  1094. "attrs": [
  1095. {
  1096. "variable": "server",
  1097. "label": "Server",
  1098. "description": "The server to mount the SMB share.",
  1099. "schema": {
  1100. "type": "string",
  1101. "required": true
  1102. }
  1103. },
  1104. {
  1105. "variable": "path",
  1106. "label": "Path",
  1107. "description": "The path to mount the SMB share.",
  1108. "schema": {
  1109. "type": "string",
  1110. "required": true
  1111. }
  1112. },
  1113. {
  1114. "variable": "username",
  1115. "label": "Username",
  1116. "description": "The username to use for the SMB share.",
  1117. "schema": {
  1118. "type": "string",
  1119. "required": true
  1120. }
  1121. },
  1122. {
  1123. "variable": "password",
  1124. "label": "Password",
  1125. "description": "The password to use for the SMB share.",
  1126. "schema": {
  1127. "type": "string",
  1128. "required": true,
  1129. "private": true
  1130. }
  1131. },
  1132. {
  1133. "variable": "domain",
  1134. "label": "Domain",
  1135. "description": "The domain to use for the SMB share.",
  1136. "schema": {
  1137. "type": "string"
  1138. }
  1139. }
  1140. ]
  1141. }
  1142. }
  1143. ]
  1144. }
  1145. }
  1146. ]
  1147. }
  1148. }
  1149. ]
  1150. }
  1151. },
  1152. {
  1153. "variable": "labels",
  1154. "label": "",
  1155. "group": "Labels Configuration",
  1156. "schema": {
  1157. "type": "list",
  1158. "default": [],
  1159. "items": [
  1160. {
  1161. "variable": "label",
  1162. "label": "Label",
  1163. "schema": {
  1164. "type": "dict",
  1165. "attrs": [
  1166. {
  1167. "variable": "key",
  1168. "label": "Key",
  1169. "schema": {
  1170. "type": "string",
  1171. "required": true
  1172. }
  1173. },
  1174. {
  1175. "variable": "value",
  1176. "label": "Value",
  1177. "schema": {
  1178. "type": "string",
  1179. "required": true
  1180. }
  1181. },
  1182. {
  1183. "variable": "containers",
  1184. "label": "Containers",
  1185. "description": "Containers where the label should be applied",
  1186. "schema": {
  1187. "type": "list",
  1188. "items": [
  1189. {
  1190. "variable": "container",
  1191. "label": "Container",
  1192. "schema": {
  1193. "type": "string",
  1194. "required": true,
  1195. "enum": [
  1196. {
  1197. "value": "zipline",
  1198. "description": "zipline"
  1199. },
  1200. {
  1201. "value": "postgres",
  1202. "description": "postgres"
  1203. }
  1204. ]
  1205. }
  1206. }
  1207. ]
  1208. }
  1209. }
  1210. ]
  1211. }
  1212. }
  1213. ]
  1214. }
  1215. },
  1216. {
  1217. "variable": "resources",
  1218. "label": "",
  1219. "group": "Resources Configuration",
  1220. "schema": {
  1221. "type": "dict",
  1222. "attrs": [
  1223. {
  1224. "variable": "limits",
  1225. "label": "Limits",
  1226. "schema": {
  1227. "type": "dict",
  1228. "attrs": [
  1229. {
  1230. "variable": "cpus",
  1231. "label": "CPUs",
  1232. "description": "CPUs limit for Zipline.",
  1233. "schema": {
  1234. "type": "int",
  1235. "default": 2,
  1236. "required": true
  1237. }
  1238. },
  1239. {
  1240. "variable": "memory",
  1241. "label": "Memory (in MB)",
  1242. "description": "Memory limit for Zipline.",
  1243. "schema": {
  1244. "type": "int",
  1245. "default": 4096,
  1246. "required": true
  1247. }
  1248. }
  1249. ]
  1250. }
  1251. }
  1252. ]
  1253. }
  1254. }
  1255. ]
  1256. },
  1257. "readme": "<h1>Zipline</h1> <p><a href=\"https://zipline.diced.sh/\">Zipline</a> The next generation ShareX / File upload server.</p>",
  1258. "changelog": null,
  1259. "chart_metadata": {
  1260. "app_version": "4.2.3",
  1261. "capabilities": [],
  1262. "categories": [
  1263. "media"
  1264. ],
  1265. "changelog_url": "https://github.com/diced/zipline/releases",
  1266. "date_added": "2025-05-19",
  1267. "description": "Zipline The next generation ShareX / File upload server.",
  1268. "home": "https://zipline.diced.sh/",
  1269. "host_mounts": [],
  1270. "icon": "https://media.sys.truenas.net/apps/zipline/icons/icon.png",
  1271. "keywords": [
  1272. "zipline",
  1273. "media"
  1274. ],
  1275. "lib_version": "2.1.49",
  1276. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  1277. "maintainers": [
  1278. {
  1279. "email": "dev@ixsystems.com",
  1280. "name": "truenas",
  1281. "url": "https://www.truenas.com/"
  1282. }
  1283. ],
  1284. "name": "zipline",
  1285. "run_as_context": [
  1286. {
  1287. "description": "Zipline runs as any non-root user.",
  1288. "gid": 568,
  1289. "group_name": "zipline",
  1290. "uid": 568,
  1291. "user_name": "zipline"
  1292. },
  1293. {
  1294. "description": "Postgres runs as non-root user.",
  1295. "gid": 999,
  1296. "group_name": "postgres",
  1297. "uid": 999,
  1298. "user_name": "postgres"
  1299. }
  1300. ],
  1301. "sources": [
  1302. "https://github.com/diced/zipline"
  1303. ],
  1304. "title": "Zipline",
  1305. "train": "community",
  1306. "version": "1.0.17"
  1307. }
  1308. }
  1309. }