app_versions.json 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782
  1. {
  2. "1.0.3": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/freshrss/1.0.3",
  7. "last_update": "2023-11-14 10:11:57",
  8. "required_features": [
  9. "definitions/timezone",
  10. "normalize/ixVolume"
  11. ],
  12. "human_version": "1.22.1_1.0.3",
  13. "version": "1.0.3",
  14. "chart_metadata": {
  15. "name": "freshrss",
  16. "description": "FreshRSS is a free, self-hostable news aggregator",
  17. "annotations": {
  18. "title": "FreshRSS"
  19. },
  20. "type": "application",
  21. "version": "1.0.3",
  22. "apiVersion": "v2",
  23. "appVersion": "1.22.1",
  24. "kubeVersion": ">=1.16.0-0",
  25. "maintainers": [
  26. {
  27. "name": "truenas",
  28. "url": "https://www.truenas.com/",
  29. "email": "dev@ixsystems.com"
  30. }
  31. ],
  32. "dependencies": [
  33. {
  34. "name": "common",
  35. "repository": "file://../../../common",
  36. "version": "1.2.2"
  37. }
  38. ],
  39. "home": "https://freshrss.org/",
  40. "icon": "https://media.sys.truenas.net/apps/freshrss/icons/icon.png",
  41. "sources": [
  42. "https://github.com/FreshRSS/FreshRSS",
  43. "https://github.com/truenas/charts/tree/master/library/ix-dev/community/freshrss",
  44. "https://hub.docker.com/r/freshrss/freshrss"
  45. ],
  46. "keywords": [
  47. "rss",
  48. "news"
  49. ]
  50. },
  51. "app_metadata": {
  52. "runAsContext": [
  53. {
  54. "userName": "root",
  55. "groupName": "root",
  56. "gid": 0,
  57. "uid": 0,
  58. "description": "FreshRSS runs as root user"
  59. }
  60. ],
  61. "capabilities": [
  62. {
  63. "name": "CHOWN",
  64. "description": "FreshRSS is able to chown files."
  65. },
  66. {
  67. "name": "SETGID",
  68. "description": "FreshRSS is able to set group ID for it's sub-processes."
  69. },
  70. {
  71. "name": "SETUID",
  72. "description": "FreshRSS is able to set user ID for it's sub-processes."
  73. }
  74. ],
  75. "hostMounts": []
  76. },
  77. "schema": {
  78. "groups": [
  79. {
  80. "name": "FreshRSS Configuration",
  81. "description": "Configure FreshRSS"
  82. },
  83. {
  84. "name": "Network Configuration",
  85. "description": "Configure Network for FreshRSS"
  86. },
  87. {
  88. "name": "Storage Configuration",
  89. "description": "Configure Storage for FreshRSS"
  90. },
  91. {
  92. "name": "Resources Configuration",
  93. "description": "Configure Resources for FreshRSS"
  94. }
  95. ],
  96. "portals": {
  97. "web_portal": {
  98. "protocols": [
  99. "$kubernetes-resource_configmap_portal_protocol"
  100. ],
  101. "host": [
  102. "$kubernetes-resource_configmap_portal_host"
  103. ],
  104. "ports": [
  105. "$kubernetes-resource_configmap_portal_port"
  106. ],
  107. "path": "$kubernetes-resource_configmap_portal_path"
  108. }
  109. },
  110. "questions": [
  111. {
  112. "variable": "TZ",
  113. "group": "FreshRSS Configuration",
  114. "label": "Timezone",
  115. "schema": {
  116. "type": "string",
  117. "default": "America/Los_Angeles",
  118. "required": true,
  119. "$ref": [
  120. "definitions/timezone"
  121. ],
  122. "enum": [
  123. {
  124. "value": "Asia/Damascus",
  125. "description": "'Asia/Damascus' timezone"
  126. },
  127. {
  128. "value": "Asia/Saigon",
  129. "description": "'Asia/Saigon' timezone"
  130. }
  131. ]
  132. }
  133. },
  134. {
  135. "variable": "freshrssConfig",
  136. "label": "",
  137. "group": "FreshRSS Configuration",
  138. "schema": {
  139. "type": "dict",
  140. "attrs": [
  141. {
  142. "variable": "defaultAdmin",
  143. "label": "Default Admin Username",
  144. "description": "The default admin username for FreshRSS.",
  145. "schema": {
  146. "type": "string",
  147. "default": "",
  148. "required": true,
  149. "immutable": true
  150. }
  151. },
  152. {
  153. "variable": "defaultAdminPass",
  154. "label": "Default Admin Password",
  155. "description": "The default admin password for FreshRSS.",
  156. "schema": {
  157. "type": "string",
  158. "default": "",
  159. "required": true,
  160. "immutable": true,
  161. "private": true
  162. }
  163. },
  164. {
  165. "variable": "enableCron",
  166. "label": "Enable Cron",
  167. "description": "Enable cron for FreshRSS.",
  168. "schema": {
  169. "type": "boolean",
  170. "default": false
  171. }
  172. },
  173. {
  174. "variable": "cronSchedule",
  175. "label": "Cron Schedule",
  176. "description": "The cron schedule for FreshRSS.</br>\nDefault: */20 * * * * (every 20 minutes)\n",
  177. "schema": {
  178. "type": "string",
  179. "default": "*/20 * * * *",
  180. "show_if": [
  181. [
  182. "enableCron",
  183. "=",
  184. true
  185. ]
  186. ],
  187. "required": true
  188. }
  189. },
  190. {
  191. "variable": "additionalEnvs",
  192. "label": "Additional Environment Variables",
  193. "description": "Configure additional environment variables for FreshRSS.",
  194. "schema": {
  195. "type": "list",
  196. "default": [],
  197. "items": [
  198. {
  199. "variable": "env",
  200. "label": "Environment Variable",
  201. "schema": {
  202. "type": "dict",
  203. "attrs": [
  204. {
  205. "variable": "name",
  206. "label": "Name",
  207. "schema": {
  208. "type": "string",
  209. "required": true
  210. }
  211. },
  212. {
  213. "variable": "value",
  214. "label": "Value",
  215. "schema": {
  216. "type": "string",
  217. "required": true
  218. }
  219. }
  220. ]
  221. }
  222. }
  223. ]
  224. }
  225. }
  226. ]
  227. }
  228. },
  229. {
  230. "variable": "freshrssNetwork",
  231. "label": "",
  232. "group": "Network Configuration",
  233. "schema": {
  234. "type": "dict",
  235. "attrs": [
  236. {
  237. "variable": "webPort",
  238. "label": "Web Port",
  239. "description": "The port for the FreshRSS Web UI.",
  240. "schema": {
  241. "type": "int",
  242. "default": 31000,
  243. "min": 9000,
  244. "max": 65535,
  245. "required": true
  246. }
  247. },
  248. {
  249. "variable": "hostNetwork",
  250. "label": "Host Network",
  251. "description": "Bind to the host network. It's recommended to keep this disabled.</br>\n",
  252. "schema": {
  253. "type": "boolean",
  254. "default": false
  255. }
  256. }
  257. ]
  258. }
  259. },
  260. {
  261. "variable": "freshrssStorage",
  262. "label": "",
  263. "group": "Storage Configuration",
  264. "schema": {
  265. "type": "dict",
  266. "attrs": [
  267. {
  268. "variable": "data",
  269. "label": "FreshRSS Data Storage",
  270. "description": "The path to store FreshRSS Data.",
  271. "schema": {
  272. "type": "dict",
  273. "attrs": [
  274. {
  275. "variable": "type",
  276. "label": "Type",
  277. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  278. "schema": {
  279. "type": "string",
  280. "required": true,
  281. "immutable": true,
  282. "default": "ixVolume",
  283. "enum": [
  284. {
  285. "value": "hostPath",
  286. "description": "Host Path (Path that already exists on the system)"
  287. },
  288. {
  289. "value": "ixVolume",
  290. "description": "ixVolume (Dataset created automatically by the system)"
  291. }
  292. ]
  293. }
  294. },
  295. {
  296. "variable": "datasetName",
  297. "label": "Dataset Name",
  298. "schema": {
  299. "type": "string",
  300. "show_if": [
  301. [
  302. "type",
  303. "=",
  304. "ixVolume"
  305. ]
  306. ],
  307. "required": true,
  308. "hidden": true,
  309. "immutable": true,
  310. "default": "data",
  311. "$ref": [
  312. "normalize/ixVolume"
  313. ]
  314. }
  315. },
  316. {
  317. "variable": "hostPath",
  318. "label": "Host Path",
  319. "schema": {
  320. "type": "hostpath",
  321. "show_if": [
  322. [
  323. "type",
  324. "=",
  325. "hostPath"
  326. ]
  327. ],
  328. "immutable": true,
  329. "required": true
  330. }
  331. }
  332. ]
  333. }
  334. },
  335. {
  336. "variable": "extensions",
  337. "label": "FreshRSS Extensions Storage",
  338. "description": "The path to store FreshRSS Extensions.",
  339. "schema": {
  340. "type": "dict",
  341. "attrs": [
  342. {
  343. "variable": "type",
  344. "label": "Type",
  345. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  346. "schema": {
  347. "type": "string",
  348. "required": true,
  349. "immutable": true,
  350. "default": "ixVolume",
  351. "enum": [
  352. {
  353. "value": "hostPath",
  354. "description": "Host Path (Path that already exists on the system)"
  355. },
  356. {
  357. "value": "ixVolume",
  358. "description": "ixVolume (Dataset created automatically by the system)"
  359. }
  360. ]
  361. }
  362. },
  363. {
  364. "variable": "datasetName",
  365. "label": "Dataset Name",
  366. "schema": {
  367. "type": "string",
  368. "show_if": [
  369. [
  370. "type",
  371. "=",
  372. "ixVolume"
  373. ]
  374. ],
  375. "required": true,
  376. "hidden": true,
  377. "immutable": true,
  378. "default": "extensions",
  379. "$ref": [
  380. "normalize/ixVolume"
  381. ]
  382. }
  383. },
  384. {
  385. "variable": "hostPath",
  386. "label": "Host Path",
  387. "schema": {
  388. "type": "hostpath",
  389. "show_if": [
  390. [
  391. "type",
  392. "=",
  393. "hostPath"
  394. ]
  395. ],
  396. "immutable": true,
  397. "required": true
  398. }
  399. }
  400. ]
  401. }
  402. },
  403. {
  404. "variable": "pgData",
  405. "label": "Postgres Data Storage",
  406. "description": "The path to store Postgres Data.",
  407. "schema": {
  408. "type": "dict",
  409. "attrs": [
  410. {
  411. "variable": "type",
  412. "label": "Type",
  413. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  414. "schema": {
  415. "type": "string",
  416. "required": true,
  417. "immutable": true,
  418. "default": "ixVolume",
  419. "enum": [
  420. {
  421. "value": "hostPath",
  422. "description": "Host Path (Path that already exists on the system)"
  423. },
  424. {
  425. "value": "ixVolume",
  426. "description": "ixVolume (Dataset created automatically by the system)"
  427. }
  428. ]
  429. }
  430. },
  431. {
  432. "variable": "datasetName",
  433. "label": "Dataset Name",
  434. "schema": {
  435. "type": "string",
  436. "show_if": [
  437. [
  438. "type",
  439. "=",
  440. "ixVolume"
  441. ]
  442. ],
  443. "required": true,
  444. "hidden": true,
  445. "immutable": true,
  446. "default": "pgData",
  447. "$ref": [
  448. "normalize/ixVolume"
  449. ]
  450. }
  451. },
  452. {
  453. "variable": "hostPath",
  454. "label": "Host Path",
  455. "schema": {
  456. "type": "hostpath",
  457. "show_if": [
  458. [
  459. "type",
  460. "=",
  461. "hostPath"
  462. ]
  463. ],
  464. "immutable": true,
  465. "required": true
  466. }
  467. }
  468. ]
  469. }
  470. },
  471. {
  472. "variable": "pgBackup",
  473. "label": "Postgres Backup Storage",
  474. "description": "The path to store Postgres Backup.",
  475. "schema": {
  476. "type": "dict",
  477. "attrs": [
  478. {
  479. "variable": "type",
  480. "label": "Type",
  481. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  482. "schema": {
  483. "type": "string",
  484. "required": true,
  485. "immutable": true,
  486. "default": "ixVolume",
  487. "enum": [
  488. {
  489. "value": "hostPath",
  490. "description": "Host Path (Path that already exists on the system)"
  491. },
  492. {
  493. "value": "ixVolume",
  494. "description": "ixVolume (Dataset created automatically by the system)"
  495. }
  496. ]
  497. }
  498. },
  499. {
  500. "variable": "datasetName",
  501. "label": "Dataset Name",
  502. "schema": {
  503. "type": "string",
  504. "show_if": [
  505. [
  506. "type",
  507. "=",
  508. "ixVolume"
  509. ]
  510. ],
  511. "required": true,
  512. "hidden": true,
  513. "immutable": true,
  514. "default": "pgBackup",
  515. "$ref": [
  516. "normalize/ixVolume"
  517. ]
  518. }
  519. },
  520. {
  521. "variable": "hostPath",
  522. "label": "Host Path",
  523. "schema": {
  524. "type": "hostpath",
  525. "show_if": [
  526. [
  527. "type",
  528. "=",
  529. "hostPath"
  530. ]
  531. ],
  532. "immutable": true,
  533. "required": true
  534. }
  535. }
  536. ]
  537. }
  538. },
  539. {
  540. "variable": "additionalStorages",
  541. "label": "Additional Storage",
  542. "description": "Additional storage for FreshRSS.",
  543. "schema": {
  544. "type": "list",
  545. "default": [],
  546. "items": [
  547. {
  548. "variable": "storageEntry",
  549. "label": "Storage Entry",
  550. "schema": {
  551. "type": "dict",
  552. "attrs": [
  553. {
  554. "variable": "type",
  555. "label": "Type",
  556. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to a persistent volume claim.\n",
  557. "schema": {
  558. "type": "string",
  559. "required": true,
  560. "immutable": true,
  561. "default": "ixVolume",
  562. "enum": [
  563. {
  564. "value": "hostPath",
  565. "description": "Host Path (Path that already exists on the system)"
  566. },
  567. {
  568. "value": "ixVolume",
  569. "description": "ixVolume (Dataset created automatically by the system)"
  570. },
  571. {
  572. "value": "smb-pv-pvc",
  573. "description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
  574. }
  575. ]
  576. }
  577. },
  578. {
  579. "variable": "mountPath",
  580. "label": "Mount Path",
  581. "description": "The path inside the container to mount the storage.",
  582. "schema": {
  583. "type": "path",
  584. "required": true
  585. }
  586. },
  587. {
  588. "variable": "hostPath",
  589. "label": "Host Path",
  590. "description": "The host path to use for storage.",
  591. "schema": {
  592. "type": "hostpath",
  593. "show_if": [
  594. [
  595. "type",
  596. "=",
  597. "hostPath"
  598. ]
  599. ],
  600. "required": true
  601. }
  602. },
  603. {
  604. "variable": "datasetName",
  605. "label": "Dataset Name",
  606. "description": "The name of the dataset to use for storage.",
  607. "schema": {
  608. "type": "string",
  609. "show_if": [
  610. [
  611. "type",
  612. "=",
  613. "ixVolume"
  614. ]
  615. ],
  616. "required": true,
  617. "immutable": true,
  618. "default": "storage_entry",
  619. "$ref": [
  620. "normalize/ixVolume"
  621. ]
  622. }
  623. },
  624. {
  625. "variable": "server",
  626. "label": "Server",
  627. "description": "The server for the SMB share.",
  628. "schema": {
  629. "type": "string",
  630. "show_if": [
  631. [
  632. "type",
  633. "=",
  634. "smb-pv-pvc"
  635. ]
  636. ],
  637. "required": true
  638. }
  639. },
  640. {
  641. "variable": "share",
  642. "label": "Share",
  643. "description": "The share name for the SMB share.",
  644. "schema": {
  645. "type": "string",
  646. "show_if": [
  647. [
  648. "type",
  649. "=",
  650. "smb-pv-pvc"
  651. ]
  652. ],
  653. "required": true
  654. }
  655. },
  656. {
  657. "variable": "domain",
  658. "label": "Domain (Optional)",
  659. "description": "The domain for the SMB share.",
  660. "schema": {
  661. "type": "string",
  662. "show_if": [
  663. [
  664. "type",
  665. "=",
  666. "smb-pv-pvc"
  667. ]
  668. ]
  669. }
  670. },
  671. {
  672. "variable": "username",
  673. "label": "Username",
  674. "description": "The username for the SMB share.",
  675. "schema": {
  676. "type": "string",
  677. "show_if": [
  678. [
  679. "type",
  680. "=",
  681. "smb-pv-pvc"
  682. ]
  683. ],
  684. "required": true
  685. }
  686. },
  687. {
  688. "variable": "password",
  689. "label": "Password",
  690. "description": "The password for the SMB share.",
  691. "schema": {
  692. "type": "string",
  693. "show_if": [
  694. [
  695. "type",
  696. "=",
  697. "smb-pv-pvc"
  698. ]
  699. ],
  700. "required": true,
  701. "private": true
  702. }
  703. },
  704. {
  705. "variable": "size",
  706. "label": "Size (in Gi)",
  707. "description": "The size of the volume quota.",
  708. "schema": {
  709. "type": "int",
  710. "show_if": [
  711. [
  712. "type",
  713. "=",
  714. "smb-pv-pvc"
  715. ]
  716. ],
  717. "required": true,
  718. "min": 1,
  719. "default": 1
  720. }
  721. }
  722. ]
  723. }
  724. }
  725. ]
  726. }
  727. }
  728. ]
  729. }
  730. },
  731. {
  732. "variable": "resources",
  733. "group": "Resources Configuration",
  734. "label": "",
  735. "schema": {
  736. "type": "dict",
  737. "attrs": [
  738. {
  739. "variable": "limits",
  740. "label": "Limits",
  741. "schema": {
  742. "type": "dict",
  743. "attrs": [
  744. {
  745. "variable": "cpu",
  746. "label": "CPU",
  747. "description": "CPU limit for FreshRSS.",
  748. "schema": {
  749. "type": "string",
  750. "max_length": 6,
  751. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  752. "valid_chars_error": "Valid CPU limit formats are</br>\n- Plain Integer - eg. 1</br>\n- Float - eg. 0.5</br>\n- Milicpu - eg. 500m\n",
  753. "default": "4000m",
  754. "required": true
  755. }
  756. },
  757. {
  758. "variable": "memory",
  759. "label": "Memory",
  760. "description": "Memory limit for FreshRSS.",
  761. "schema": {
  762. "type": "string",
  763. "max_length": 12,
  764. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  765. "valid_chars_error": "Valid Memory limit formats are</br>\n- Suffixed with E/P/T/G/M/K - eg. 1G</br>\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>\n- Plain Integer in bytes - eg. 1024</br>\n- Exponent - eg. 134e6\n",
  766. "default": "8Gi",
  767. "required": true
  768. }
  769. }
  770. ]
  771. }
  772. }
  773. ]
  774. }
  775. }
  776. ]
  777. },
  778. "app_readme": "<h1>FreshRSS</h1>\n<p><a href=\"https://freshrss.org/\">FreshRSS</a> is a free, self-hostable news aggregator</p>",
  779. "detailed_readme": "<h1>FreshRSS</h1>\n<p><a href=\"https://freshrss.org/\">FreshRSS</a> is a free, self-hostable news aggregator</p>",
  780. "changelog": null
  781. }
  782. }