app_versions.json 71 KB

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