app_versions.json 52 KB

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