app_versions.json 78 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054
  1. {
  2. "1.0.1": {
  3. "healthy": true,
  4. "supported": false,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/organizr/1.0.1",
  7. "last_update": "2025-03-06 08:26:26",
  8. "required_features": [
  9. "definitions/timezone",
  10. "normalize/ixVolume",
  11. "normalize/acl"
  12. ],
  13. "human_version": "latest_1.0.1",
  14. "version": "1.0.1",
  15. "chart_metadata": {
  16. "name": "organizr",
  17. "description": "Organizr is a HTPC/Homelab Services Organizer - Written in PHP",
  18. "annotations": {
  19. "title": "Organizr"
  20. },
  21. "type": "application",
  22. "version": "1.0.1",
  23. "apiVersion": "v2",
  24. "appVersion": "latest",
  25. "kubeVersion": ">=1.16.0-0",
  26. "maintainers": [
  27. {
  28. "name": "truenas",
  29. "url": "https://www.truenas.com/",
  30. "email": "dev@ixsystems.com"
  31. }
  32. ],
  33. "dependencies": [
  34. {
  35. "name": "common",
  36. "repository": "file://../../../common",
  37. "version": "1.2.9"
  38. }
  39. ],
  40. "home": "https://github.com/causefx/Organizr",
  41. "icon": "https://media.sys.truenas.net/apps/organizr/icons/icon.png",
  42. "sources": [
  43. "https://hub.docker.com/r/organizr/organizr",
  44. "https://github.com/truenas/charts/tree/master/library/ix-dev/community/organizr",
  45. "https://github.com/causefx/Organizr"
  46. ],
  47. "keywords": [
  48. "organizr",
  49. "dashboard"
  50. ]
  51. },
  52. "app_metadata": {
  53. "runAsContext": [
  54. {
  55. "userName": "root",
  56. "groupName": "root",
  57. "gid": 0,
  58. "uid": 0,
  59. "description": "Organizr runs as root user."
  60. }
  61. ],
  62. "capabilities": [
  63. {
  64. "name": "CHOWN",
  65. "description": "Organizr is able to chown files."
  66. },
  67. {
  68. "name": "FOWNER",
  69. "description": "Organizr is able to bypass file ownership checks for it's sub-processes."
  70. },
  71. {
  72. "name": "DAC_OVERRIDE",
  73. "description": "Organizr is able to bypass file permission checks for it's sub-processes."
  74. },
  75. {
  76. "name": "SETGID",
  77. "description": "Organizr is able to switch group for sub-processes."
  78. },
  79. {
  80. "name": "SETUID",
  81. "description": "Organizr is able to switch user for sub-processes."
  82. }
  83. ],
  84. "hostMounts": []
  85. },
  86. "schema": {
  87. "groups": [
  88. {
  89. "name": "Organizr Configuration",
  90. "description": "Configure Organizr"
  91. },
  92. {
  93. "name": "User and Group Configuration",
  94. "description": "Configure User and Group for Organizr"
  95. },
  96. {
  97. "name": "Network Configuration",
  98. "description": "Configure Network for Organizr"
  99. },
  100. {
  101. "name": "Storage Configuration",
  102. "description": "Configure Storage for Organizr"
  103. },
  104. {
  105. "name": "Resources Configuration",
  106. "description": "Configure Resources for Organizr"
  107. }
  108. ],
  109. "portals": {
  110. "web_portal": {
  111. "protocols": [
  112. "$kubernetes-resource_configmap_portal_protocol"
  113. ],
  114. "host": [
  115. "$kubernetes-resource_configmap_portal_host"
  116. ],
  117. "ports": [
  118. "$kubernetes-resource_configmap_portal_port"
  119. ],
  120. "path": "$kubernetes-resource_configmap_portal_path"
  121. }
  122. },
  123. "questions": [
  124. {
  125. "variable": "TZ",
  126. "group": "Organizr Configuration",
  127. "label": "Timezone",
  128. "schema": {
  129. "type": "string",
  130. "default": "America/Los_Angeles",
  131. "required": true,
  132. "$ref": [
  133. "definitions/timezone"
  134. ],
  135. "enum": [
  136. {
  137. "value": "Asia/Damascus",
  138. "description": "'Asia/Damascus' timezone"
  139. },
  140. {
  141. "value": "Asia/Saigon",
  142. "description": "'Asia/Saigon' timezone"
  143. }
  144. ]
  145. }
  146. },
  147. {
  148. "variable": "organizrConfig",
  149. "label": "",
  150. "group": "Organizr Configuration",
  151. "schema": {
  152. "type": "dict",
  153. "attrs": [
  154. {
  155. "variable": "additionalEnvs",
  156. "label": "Additional Environment Variables",
  157. "description": "Configure additional environment variables for Organizr.",
  158. "schema": {
  159. "type": "list",
  160. "default": [],
  161. "items": [
  162. {
  163. "variable": "env",
  164. "label": "Environment Variable",
  165. "schema": {
  166. "type": "dict",
  167. "attrs": [
  168. {
  169. "variable": "name",
  170. "label": "Name",
  171. "schema": {
  172. "type": "string",
  173. "required": true
  174. }
  175. },
  176. {
  177. "variable": "value",
  178. "label": "Value",
  179. "schema": {
  180. "type": "string",
  181. "required": true
  182. }
  183. }
  184. ]
  185. }
  186. }
  187. ]
  188. }
  189. }
  190. ]
  191. }
  192. },
  193. {
  194. "variable": "organizrNetwork",
  195. "label": "",
  196. "group": "Network Configuration",
  197. "schema": {
  198. "type": "dict",
  199. "attrs": [
  200. {
  201. "variable": "webPort",
  202. "label": "Web Port",
  203. "description": "The port for the Organizr Web UI.",
  204. "schema": {
  205. "type": "int",
  206. "default": 31013,
  207. "min": 9000,
  208. "max": 65535,
  209. "required": true
  210. }
  211. }
  212. ]
  213. }
  214. },
  215. {
  216. "variable": "organizrID",
  217. "label": "",
  218. "group": "User and Group Configuration",
  219. "schema": {
  220. "type": "dict",
  221. "attrs": [
  222. {
  223. "variable": "user",
  224. "label": "User ID",
  225. "description": "The user id that Organizr files will be owned by.",
  226. "schema": {
  227. "type": "int",
  228. "min": 568,
  229. "default": 568,
  230. "required": true
  231. }
  232. },
  233. {
  234. "variable": "group",
  235. "label": "Group ID",
  236. "description": "The group id that Organizr files will be owned by.",
  237. "schema": {
  238. "type": "int",
  239. "min": 568,
  240. "default": 568,
  241. "required": true
  242. }
  243. }
  244. ]
  245. }
  246. },
  247. {
  248. "variable": "organizrStorage",
  249. "label": "",
  250. "group": "Storage Configuration",
  251. "schema": {
  252. "type": "dict",
  253. "attrs": [
  254. {
  255. "variable": "config",
  256. "label": "Organizr Config Storage",
  257. "description": "The path to store Organizr Configuration.",
  258. "schema": {
  259. "type": "dict",
  260. "attrs": [
  261. {
  262. "variable": "type",
  263. "label": "Type",
  264. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  265. "schema": {
  266. "type": "string",
  267. "required": true,
  268. "immutable": true,
  269. "default": "ixVolume",
  270. "enum": [
  271. {
  272. "value": "hostPath",
  273. "description": "Host Path (Path that already exists on the system)"
  274. },
  275. {
  276. "value": "ixVolume",
  277. "description": "ixVolume (Dataset created automatically by the system)"
  278. }
  279. ]
  280. }
  281. },
  282. {
  283. "variable": "ixVolumeConfig",
  284. "label": "ixVolume Configuration",
  285. "description": "The configuration for the ixVolume dataset.",
  286. "schema": {
  287. "type": "dict",
  288. "show_if": [
  289. [
  290. "type",
  291. "=",
  292. "ixVolume"
  293. ]
  294. ],
  295. "$ref": [
  296. "normalize/ixVolume"
  297. ],
  298. "attrs": [
  299. {
  300. "variable": "aclEnable",
  301. "label": "Enable ACL",
  302. "description": "Enable ACL for the dataset.",
  303. "schema": {
  304. "type": "boolean",
  305. "default": false
  306. }
  307. },
  308. {
  309. "variable": "datasetName",
  310. "label": "Dataset Name",
  311. "description": "The name of the dataset to use for storage.",
  312. "schema": {
  313. "type": "string",
  314. "required": true,
  315. "immutable": true,
  316. "hidden": true,
  317. "default": "config"
  318. }
  319. },
  320. {
  321. "variable": "aclEntries",
  322. "label": "ACL Configuration",
  323. "schema": {
  324. "type": "dict",
  325. "show_if": [
  326. [
  327. "aclEnable",
  328. "=",
  329. true
  330. ]
  331. ],
  332. "attrs": [
  333. {
  334. "variable": "path",
  335. "label": "Path",
  336. "description": "Path to perform ACL",
  337. "schema": {
  338. "type": "string",
  339. "hidden": true
  340. }
  341. },
  342. {
  343. "variable": "entries",
  344. "label": "ACL Entries",
  345. "description": "ACL Entries",
  346. "schema": {
  347. "type": "list",
  348. "items": [
  349. {
  350. "variable": "aclEntry",
  351. "label": "ACL Entry",
  352. "schema": {
  353. "type": "dict",
  354. "attrs": [
  355. {
  356. "variable": "id_type",
  357. "label": "ID Type",
  358. "schema": {
  359. "type": "string",
  360. "enum": [
  361. {
  362. "value": "USER",
  363. "description": "Entry is for a USER"
  364. },
  365. {
  366. "value": "GROUP",
  367. "description": "Entry is for a GROUP"
  368. }
  369. ],
  370. "default": "USER"
  371. }
  372. },
  373. {
  374. "variable": "id",
  375. "label": "ID",
  376. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  377. "schema": {
  378. "type": "int",
  379. "required": true,
  380. "min": 0
  381. }
  382. },
  383. {
  384. "variable": "access",
  385. "label": "Access",
  386. "schema": {
  387. "type": "string",
  388. "enum": [
  389. {
  390. "value": "READ",
  391. "description": "Read Access"
  392. },
  393. {
  394. "value": "MODIFY",
  395. "description": "Modify Access"
  396. },
  397. {
  398. "value": "FULL_CONTROL",
  399. "description": "FULL_CONTROL Access"
  400. }
  401. ]
  402. }
  403. }
  404. ]
  405. }
  406. }
  407. ]
  408. }
  409. }
  410. ]
  411. }
  412. }
  413. ]
  414. }
  415. },
  416. {
  417. "variable": "hostPathConfig",
  418. "label": "Host Path Configuration",
  419. "schema": {
  420. "type": "dict",
  421. "show_if": [
  422. [
  423. "type",
  424. "=",
  425. "hostPath"
  426. ]
  427. ],
  428. "attrs": [
  429. {
  430. "variable": "aclEnable",
  431. "label": "Enable ACL",
  432. "description": "Enable ACL for the dataset.",
  433. "schema": {
  434. "type": "boolean",
  435. "default": false
  436. }
  437. },
  438. {
  439. "variable": "acl",
  440. "label": "ACL Configuration",
  441. "schema": {
  442. "type": "dict",
  443. "show_if": [
  444. [
  445. "aclEnable",
  446. "=",
  447. true
  448. ]
  449. ],
  450. "attrs": [
  451. {
  452. "variable": "path",
  453. "label": "Host Path",
  454. "description": "Host Path to perform ACL",
  455. "schema": {
  456. "type": "hostpath",
  457. "required": true,
  458. "empty": false
  459. }
  460. },
  461. {
  462. "variable": "entries",
  463. "label": "ACL Entries",
  464. "description": "ACL Entries",
  465. "schema": {
  466. "type": "list",
  467. "items": [
  468. {
  469. "variable": "aclEntry",
  470. "label": "ACL Entry",
  471. "schema": {
  472. "type": "dict",
  473. "attrs": [
  474. {
  475. "variable": "id_type",
  476. "label": "ID Type",
  477. "schema": {
  478. "type": "string",
  479. "enum": [
  480. {
  481. "value": "USER",
  482. "description": "Entry is for a USER"
  483. },
  484. {
  485. "value": "GROUP",
  486. "description": "Entry is for a GROUP"
  487. }
  488. ],
  489. "default": "USER"
  490. }
  491. },
  492. {
  493. "variable": "id",
  494. "label": "ID",
  495. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  496. "schema": {
  497. "type": "int",
  498. "required": true,
  499. "min": 0
  500. }
  501. },
  502. {
  503. "variable": "access",
  504. "label": "Access",
  505. "schema": {
  506. "type": "string",
  507. "enum": [
  508. {
  509. "value": "READ",
  510. "description": "Read Access"
  511. },
  512. {
  513. "value": "MODIFY",
  514. "description": "Modify Access"
  515. },
  516. {
  517. "value": "FULL_CONTROL",
  518. "description": "FULL_CONTROL Access"
  519. }
  520. ]
  521. }
  522. }
  523. ]
  524. }
  525. }
  526. ]
  527. }
  528. },
  529. {
  530. "variable": "options",
  531. "label": "ACL Options",
  532. "schema": {
  533. "type": "dict",
  534. "attrs": [
  535. {
  536. "variable": "force",
  537. "label": "Force Flag",
  538. "description": "Enabling `Force` applies ACL even if the path has existing data",
  539. "schema": {
  540. "type": "boolean",
  541. "default": false
  542. }
  543. }
  544. ]
  545. }
  546. }
  547. ],
  548. "$ref": [
  549. "normalize/acl"
  550. ]
  551. }
  552. },
  553. {
  554. "variable": "hostPath",
  555. "label": "Host Path",
  556. "description": "The host path to use for storage.",
  557. "schema": {
  558. "type": "hostpath",
  559. "show_if": [
  560. [
  561. "aclEnable",
  562. "=",
  563. false
  564. ]
  565. ],
  566. "required": true
  567. }
  568. }
  569. ]
  570. }
  571. }
  572. ]
  573. }
  574. },
  575. {
  576. "variable": "additionalStorages",
  577. "label": "Additional Storage",
  578. "description": "Additional storage for Organizr.",
  579. "schema": {
  580. "type": "list",
  581. "default": [],
  582. "items": [
  583. {
  584. "variable": "storageEntry",
  585. "label": "Storage Entry",
  586. "schema": {
  587. "type": "dict",
  588. "attrs": [
  589. {
  590. "variable": "type",
  591. "label": "Type",
  592. "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 a persistent volume claim.\n",
  593. "schema": {
  594. "type": "string",
  595. "required": true,
  596. "default": "ixVolume",
  597. "immutable": true,
  598. "enum": [
  599. {
  600. "value": "hostPath",
  601. "description": "Host Path (Path that already exists on the system)"
  602. },
  603. {
  604. "value": "ixVolume",
  605. "description": "ixVolume (Dataset created automatically by the system)"
  606. },
  607. {
  608. "value": "smb-pv-pvc",
  609. "description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
  610. }
  611. ]
  612. }
  613. },
  614. {
  615. "variable": "readOnly",
  616. "label": "Read Only",
  617. "description": "Mount the volume as read only.",
  618. "schema": {
  619. "type": "boolean",
  620. "default": false
  621. }
  622. },
  623. {
  624. "variable": "mountPath",
  625. "label": "Mount Path",
  626. "description": "The path inside the container to mount the storage.",
  627. "schema": {
  628. "type": "path",
  629. "required": true
  630. }
  631. },
  632. {
  633. "variable": "hostPathConfig",
  634. "label": "Host Path Configuration",
  635. "schema": {
  636. "type": "dict",
  637. "show_if": [
  638. [
  639. "type",
  640. "=",
  641. "hostPath"
  642. ]
  643. ],
  644. "attrs": [
  645. {
  646. "variable": "aclEnable",
  647. "label": "Enable ACL",
  648. "description": "Enable ACL for the dataset.",
  649. "schema": {
  650. "type": "boolean",
  651. "default": false
  652. }
  653. },
  654. {
  655. "variable": "acl",
  656. "label": "ACL Configuration",
  657. "schema": {
  658. "type": "dict",
  659. "show_if": [
  660. [
  661. "aclEnable",
  662. "=",
  663. true
  664. ]
  665. ],
  666. "attrs": [
  667. {
  668. "variable": "path",
  669. "label": "Host Path",
  670. "description": "Host Path to perform ACL",
  671. "schema": {
  672. "type": "hostpath",
  673. "required": true,
  674. "empty": false
  675. }
  676. },
  677. {
  678. "variable": "entries",
  679. "label": "ACL Entries",
  680. "description": "ACL Entries",
  681. "schema": {
  682. "type": "list",
  683. "items": [
  684. {
  685. "variable": "aclEntry",
  686. "label": "ACL Entry",
  687. "schema": {
  688. "type": "dict",
  689. "attrs": [
  690. {
  691. "variable": "id_type",
  692. "label": "ID Type",
  693. "schema": {
  694. "type": "string",
  695. "enum": [
  696. {
  697. "value": "USER",
  698. "description": "Entry is for a USER"
  699. },
  700. {
  701. "value": "GROUP",
  702. "description": "Entry is for a GROUP"
  703. }
  704. ],
  705. "default": "USER"
  706. }
  707. },
  708. {
  709. "variable": "id",
  710. "label": "ID",
  711. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  712. "schema": {
  713. "type": "int",
  714. "required": true,
  715. "min": 0
  716. }
  717. },
  718. {
  719. "variable": "access",
  720. "label": "Access",
  721. "schema": {
  722. "type": "string",
  723. "enum": [
  724. {
  725. "value": "READ",
  726. "description": "Read Access"
  727. },
  728. {
  729. "value": "MODIFY",
  730. "description": "Modify Access"
  731. },
  732. {
  733. "value": "FULL_CONTROL",
  734. "description": "FULL_CONTROL Access"
  735. }
  736. ]
  737. }
  738. }
  739. ]
  740. }
  741. }
  742. ]
  743. }
  744. },
  745. {
  746. "variable": "options",
  747. "label": "ACL Options",
  748. "schema": {
  749. "type": "dict",
  750. "attrs": [
  751. {
  752. "variable": "force",
  753. "label": "Force Flag",
  754. "description": "Enabling `Force` applies ACL even if the path has existing data",
  755. "schema": {
  756. "type": "boolean",
  757. "default": false
  758. }
  759. }
  760. ]
  761. }
  762. }
  763. ],
  764. "$ref": [
  765. "normalize/acl"
  766. ]
  767. }
  768. },
  769. {
  770. "variable": "hostPath",
  771. "label": "Host Path",
  772. "description": "The host path to use for storage.",
  773. "schema": {
  774. "type": "hostpath",
  775. "show_if": [
  776. [
  777. "aclEnable",
  778. "=",
  779. false
  780. ]
  781. ],
  782. "required": true
  783. }
  784. }
  785. ]
  786. }
  787. },
  788. {
  789. "variable": "ixVolumeConfig",
  790. "label": "ixVolume Configuration",
  791. "description": "The configuration for the ixVolume dataset.",
  792. "schema": {
  793. "type": "dict",
  794. "show_if": [
  795. [
  796. "type",
  797. "=",
  798. "ixVolume"
  799. ]
  800. ],
  801. "$ref": [
  802. "normalize/ixVolume"
  803. ],
  804. "attrs": [
  805. {
  806. "variable": "aclEnable",
  807. "label": "Enable ACL",
  808. "description": "Enable ACL for the dataset.",
  809. "schema": {
  810. "type": "boolean",
  811. "default": false
  812. }
  813. },
  814. {
  815. "variable": "datasetName",
  816. "label": "Dataset Name",
  817. "description": "The name of the dataset to use for storage.",
  818. "schema": {
  819. "type": "string",
  820. "required": true,
  821. "immutable": true,
  822. "default": "storage_entry"
  823. }
  824. },
  825. {
  826. "variable": "aclEntries",
  827. "label": "ACL Configuration",
  828. "schema": {
  829. "type": "dict",
  830. "show_if": [
  831. [
  832. "aclEnable",
  833. "=",
  834. true
  835. ]
  836. ],
  837. "attrs": [
  838. {
  839. "variable": "path",
  840. "label": "Path",
  841. "description": "Path to perform ACL",
  842. "schema": {
  843. "type": "string",
  844. "hidden": true
  845. }
  846. },
  847. {
  848. "variable": "entries",
  849. "label": "ACL Entries",
  850. "description": "ACL Entries",
  851. "schema": {
  852. "type": "list",
  853. "items": [
  854. {
  855. "variable": "aclEntry",
  856. "label": "ACL Entry",
  857. "schema": {
  858. "type": "dict",
  859. "attrs": [
  860. {
  861. "variable": "id_type",
  862. "label": "ID Type",
  863. "schema": {
  864. "type": "string",
  865. "enum": [
  866. {
  867. "value": "USER",
  868. "description": "Entry is for a USER"
  869. },
  870. {
  871. "value": "GROUP",
  872. "description": "Entry is for a GROUP"
  873. }
  874. ],
  875. "default": "USER"
  876. }
  877. },
  878. {
  879. "variable": "id",
  880. "label": "ID",
  881. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  882. "schema": {
  883. "type": "int",
  884. "required": true,
  885. "min": 0
  886. }
  887. },
  888. {
  889. "variable": "access",
  890. "label": "Access",
  891. "schema": {
  892. "type": "string",
  893. "enum": [
  894. {
  895. "value": "READ",
  896. "description": "Read Access"
  897. },
  898. {
  899. "value": "MODIFY",
  900. "description": "Modify Access"
  901. },
  902. {
  903. "value": "FULL_CONTROL",
  904. "description": "FULL_CONTROL Access"
  905. }
  906. ]
  907. }
  908. }
  909. ]
  910. }
  911. }
  912. ]
  913. }
  914. }
  915. ]
  916. }
  917. }
  918. ]
  919. }
  920. },
  921. {
  922. "variable": "smbConfig",
  923. "label": "SMB Share Configuration",
  924. "description": "The configuration for the SMB Share.",
  925. "schema": {
  926. "type": "dict",
  927. "show_if": [
  928. [
  929. "type",
  930. "=",
  931. "smb-pv-pvc"
  932. ]
  933. ],
  934. "attrs": [
  935. {
  936. "variable": "server",
  937. "label": "Server",
  938. "description": "The server for the SMB share.",
  939. "schema": {
  940. "type": "string",
  941. "required": true
  942. }
  943. },
  944. {
  945. "variable": "share",
  946. "label": "Share",
  947. "description": "The share name for the SMB share.",
  948. "schema": {
  949. "type": "string",
  950. "required": true
  951. }
  952. },
  953. {
  954. "variable": "domain",
  955. "label": "Domain (Optional)",
  956. "description": "The domain for the SMB share.",
  957. "schema": {
  958. "type": "string"
  959. }
  960. },
  961. {
  962. "variable": "username",
  963. "label": "Username",
  964. "description": "The username for the SMB share.",
  965. "schema": {
  966. "type": "string",
  967. "required": true
  968. }
  969. },
  970. {
  971. "variable": "password",
  972. "label": "Password",
  973. "description": "The password for the SMB share.",
  974. "schema": {
  975. "type": "string",
  976. "required": true,
  977. "private": true
  978. }
  979. },
  980. {
  981. "variable": "size",
  982. "label": "Size (in Gi)",
  983. "description": "The size of the volume quota.",
  984. "schema": {
  985. "type": "int",
  986. "required": true,
  987. "min": 1,
  988. "default": 1
  989. }
  990. }
  991. ]
  992. }
  993. }
  994. ]
  995. }
  996. }
  997. ]
  998. }
  999. }
  1000. ]
  1001. }
  1002. },
  1003. {
  1004. "variable": "resources",
  1005. "group": "Resources Configuration",
  1006. "label": "",
  1007. "schema": {
  1008. "type": "dict",
  1009. "attrs": [
  1010. {
  1011. "variable": "limits",
  1012. "label": "Limits",
  1013. "schema": {
  1014. "type": "dict",
  1015. "attrs": [
  1016. {
  1017. "variable": "cpu",
  1018. "label": "CPU",
  1019. "description": "CPU limit for Organizr.",
  1020. "schema": {
  1021. "type": "string",
  1022. "max_length": 6,
  1023. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  1024. "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",
  1025. "default": "4000m",
  1026. "required": true
  1027. }
  1028. },
  1029. {
  1030. "variable": "memory",
  1031. "label": "Memory",
  1032. "description": "Memory limit for Organizr.",
  1033. "schema": {
  1034. "type": "string",
  1035. "max_length": 12,
  1036. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  1037. "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",
  1038. "default": "8Gi",
  1039. "required": true
  1040. }
  1041. }
  1042. ]
  1043. }
  1044. }
  1045. ]
  1046. }
  1047. }
  1048. ]
  1049. },
  1050. "app_readme": "<h1>Organizr</h1>\n<p><a href=\"https://docs.organizr.app/\">Organizr</a> is a HTPC/Homelab Services Organizer - Written in PHP</p>",
  1051. "detailed_readme": "<h1>Organizr</h1>\n<p><a href=\"https://docs.organizr.app/\">Organizr</a> is a HTPC/Homelab Services Organizer - Written in PHP</p>",
  1052. "changelog": null
  1053. }
  1054. }