app_versions.json 60 KB

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