app_versions.json 49 KB

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