app_versions.json 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  1. {
  2. "1.0.7": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/joplin/1.0.7",
  7. "last_update": "2023-11-21 08:14:57",
  8. "required_features": [
  9. "normalize/ixVolume"
  10. ],
  11. "human_version": "2.13.3_1.0.7",
  12. "version": "1.0.7",
  13. "chart_metadata": {
  14. "name": "joplin",
  15. "description": "Joplin is an open source note-taking app. Capture your thoughts and securely access them from any device",
  16. "annotations": {
  17. "title": "Joplin"
  18. },
  19. "type": "application",
  20. "version": "1.0.7",
  21. "apiVersion": "v2",
  22. "appVersion": "2.13.3",
  23. "kubeVersion": ">=1.16.0-0",
  24. "maintainers": [
  25. {
  26. "name": "truenas",
  27. "url": "https://www.truenas.com/",
  28. "email": "dev@ixsystems.com"
  29. }
  30. ],
  31. "dependencies": [
  32. {
  33. "name": "common",
  34. "repository": "file://../../../common",
  35. "version": "1.2.2"
  36. }
  37. ],
  38. "home": "https://joplinapp.org/",
  39. "icon": "https://media.sys.truenas.net/apps/joplin/icons/icon.png",
  40. "sources": [
  41. "https://github.com/laurent22/joplin",
  42. "https://github.com/truenas/charts/tree/master/library/ix-dev/community/joplin",
  43. "https://hub.docker.com/r/joplin/server/"
  44. ],
  45. "keywords": [
  46. "notes"
  47. ]
  48. },
  49. "app_metadata": {
  50. "runAsContext": [
  51. {
  52. "userName": "joplin",
  53. "groupName": "joplin",
  54. "gid": 1001,
  55. "uid": 1001,
  56. "description": "Joplin can run as a non-root user."
  57. }
  58. ],
  59. "capabilities": [],
  60. "hostMounts": []
  61. },
  62. "schema": {
  63. "groups": [
  64. {
  65. "name": "Joplin Configuration",
  66. "description": "Configure Joplin"
  67. },
  68. {
  69. "name": "Network Configuration",
  70. "description": "Configure Network for Joplin"
  71. },
  72. {
  73. "name": "Storage Configuration",
  74. "description": "Configure Storage for Joplin"
  75. },
  76. {
  77. "name": "Resources Configuration",
  78. "description": "Configure Resources for Joplin"
  79. }
  80. ],
  81. "portals": {
  82. "web_portal": {
  83. "protocols": [
  84. "$kubernetes-resource_configmap_portal_protocol"
  85. ],
  86. "host": [
  87. "$kubernetes-resource_configmap_portal_host"
  88. ],
  89. "ports": [
  90. "$kubernetes-resource_configmap_portal_port"
  91. ],
  92. "path": "$kubernetes-resource_configmap_portal_path"
  93. }
  94. },
  95. "questions": [
  96. {
  97. "variable": "joplinConfig",
  98. "label": "",
  99. "group": "Joplin Configuration",
  100. "schema": {
  101. "type": "dict",
  102. "attrs": [
  103. {
  104. "variable": "baseUrl",
  105. "label": "Base URL",
  106. "description": "The base URL for Joplin.</br>\nExamples:</br>\nhttps://joplin.example.com\nhttp://192.168.1.100:30062\n",
  107. "schema": {
  108. "type": "uri",
  109. "default": "",
  110. "required": true
  111. }
  112. },
  113. {
  114. "variable": "additionalEnvs",
  115. "label": "Additional Environment Variables",
  116. "description": "Configure additional environment variables for Joplin.",
  117. "schema": {
  118. "type": "list",
  119. "default": [],
  120. "items": [
  121. {
  122. "variable": "env",
  123. "label": "Environment Variable",
  124. "schema": {
  125. "type": "dict",
  126. "attrs": [
  127. {
  128. "variable": "name",
  129. "label": "Name",
  130. "schema": {
  131. "type": "string",
  132. "required": true
  133. }
  134. },
  135. {
  136. "variable": "value",
  137. "label": "Value",
  138. "schema": {
  139. "type": "string",
  140. "required": true
  141. }
  142. }
  143. ]
  144. }
  145. }
  146. ]
  147. }
  148. }
  149. ]
  150. }
  151. },
  152. {
  153. "variable": "joplinNetwork",
  154. "label": "",
  155. "group": "Network Configuration",
  156. "schema": {
  157. "type": "dict",
  158. "attrs": [
  159. {
  160. "variable": "webPort",
  161. "label": "Web Port",
  162. "description": "The port for the Joplin Web UI.",
  163. "schema": {
  164. "type": "int",
  165. "default": 30062,
  166. "min": 9000,
  167. "max": 65535,
  168. "required": true
  169. }
  170. },
  171. {
  172. "variable": "hostNetwork",
  173. "label": "Host Network",
  174. "description": "Bind to the host network. It's recommended to keep this disabled.</br>\n",
  175. "schema": {
  176. "type": "boolean",
  177. "default": false
  178. }
  179. }
  180. ]
  181. }
  182. },
  183. {
  184. "variable": "joplinStorage",
  185. "label": "",
  186. "group": "Storage Configuration",
  187. "schema": {
  188. "type": "dict",
  189. "attrs": [
  190. {
  191. "variable": "pgData",
  192. "label": "Joplin Postgres Data Storage",
  193. "description": "The path to store Joplin Postgres Data.",
  194. "schema": {
  195. "type": "dict",
  196. "attrs": [
  197. {
  198. "variable": "type",
  199. "label": "Type",
  200. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  201. "schema": {
  202. "type": "string",
  203. "required": true,
  204. "immutable": true,
  205. "default": "ixVolume",
  206. "enum": [
  207. {
  208. "value": "hostPath",
  209. "description": "Host Path (Path that already exists on the system)"
  210. },
  211. {
  212. "value": "ixVolume",
  213. "description": "ixVolume (Dataset created automatically by the system)"
  214. }
  215. ]
  216. }
  217. },
  218. {
  219. "variable": "datasetName",
  220. "label": "Dataset Name",
  221. "schema": {
  222. "type": "string",
  223. "show_if": [
  224. [
  225. "type",
  226. "=",
  227. "ixVolume"
  228. ]
  229. ],
  230. "required": true,
  231. "hidden": true,
  232. "immutable": true,
  233. "default": "pgData",
  234. "$ref": [
  235. "normalize/ixVolume"
  236. ]
  237. }
  238. },
  239. {
  240. "variable": "hostPath",
  241. "label": "Host Path",
  242. "schema": {
  243. "type": "hostpath",
  244. "show_if": [
  245. [
  246. "type",
  247. "=",
  248. "hostPath"
  249. ]
  250. ],
  251. "immutable": true,
  252. "required": true
  253. }
  254. }
  255. ]
  256. }
  257. },
  258. {
  259. "variable": "pgBackup",
  260. "label": "Joplin Postgres Backup Storage",
  261. "description": "The path to store Joplin Postgres Backup.",
  262. "schema": {
  263. "type": "dict",
  264. "attrs": [
  265. {
  266. "variable": "type",
  267. "label": "Type",
  268. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  269. "schema": {
  270. "type": "string",
  271. "required": true,
  272. "immutable": true,
  273. "default": "ixVolume",
  274. "enum": [
  275. {
  276. "value": "hostPath",
  277. "description": "Host Path (Path that already exists on the system)"
  278. },
  279. {
  280. "value": "ixVolume",
  281. "description": "ixVolume (Dataset created automatically by the system)"
  282. }
  283. ]
  284. }
  285. },
  286. {
  287. "variable": "datasetName",
  288. "label": "Dataset Name",
  289. "schema": {
  290. "type": "string",
  291. "show_if": [
  292. [
  293. "type",
  294. "=",
  295. "ixVolume"
  296. ]
  297. ],
  298. "required": true,
  299. "hidden": true,
  300. "immutable": true,
  301. "default": "pgBackup",
  302. "$ref": [
  303. "normalize/ixVolume"
  304. ]
  305. }
  306. },
  307. {
  308. "variable": "hostPath",
  309. "label": "Host Path",
  310. "schema": {
  311. "type": "hostpath",
  312. "show_if": [
  313. [
  314. "type",
  315. "=",
  316. "hostPath"
  317. ]
  318. ],
  319. "immutable": true,
  320. "required": true
  321. }
  322. }
  323. ]
  324. }
  325. }
  326. ]
  327. }
  328. },
  329. {
  330. "variable": "resources",
  331. "group": "Resources Configuration",
  332. "label": "",
  333. "schema": {
  334. "type": "dict",
  335. "attrs": [
  336. {
  337. "variable": "limits",
  338. "label": "Limits",
  339. "schema": {
  340. "type": "dict",
  341. "attrs": [
  342. {
  343. "variable": "cpu",
  344. "label": "CPU",
  345. "description": "CPU limit for Joplin.",
  346. "schema": {
  347. "type": "string",
  348. "max_length": 6,
  349. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  350. "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",
  351. "default": "4000m",
  352. "required": true
  353. }
  354. },
  355. {
  356. "variable": "memory",
  357. "label": "Memory",
  358. "description": "Memory limit for Joplin.",
  359. "schema": {
  360. "type": "string",
  361. "max_length": 12,
  362. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  363. "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",
  364. "default": "8Gi",
  365. "required": true
  366. }
  367. }
  368. ]
  369. }
  370. }
  371. ]
  372. }
  373. }
  374. ]
  375. },
  376. "app_readme": "<h1>Joplin</h1>\n<p><a href=\"https://joplinapp.org\">Joplin</a> is an open source note-taking app. Capture your thoughts and securely access them from any device</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>postgres</code> directories.\nAfterward, the <code>postgres</code> container will run as a <strong>non</strong>-root user (<code>999</code>).\nOn each upgrade, a container will be launched with <strong>root</strong> privileges in order to apply the correct\npermissions to the <code>postgres</code> <strong>backups</strong> directory. Container that performs the backup will run as a <strong>non</strong>-root user (<code>999</code>) afterwards.\nKeep in mind the permissions on the backup directory will be changed to <code>999:999</code> on <strong>every</strong> update.\nBut will only be changed once for the <code>postgres</code> data directories.</p>\n</blockquote>",
  377. "detailed_readme": "<h1>Joplin</h1>\n<p><a href=\"https://joplinapp.org\">Joplin</a> is an open source note-taking app. Capture your thoughts and securely access them from any device</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>postgres</code> directories.\nAfterward, the <code>postgres</code> container will run as a <strong>non</strong>-root user (<code>999</code>).\nOn each upgrade, a container will be launched with <strong>root</strong> privileges in order to apply the correct\npermissions to the <code>postgres</code> <strong>backups</strong> directory. Container that performs the backup will run as a <strong>non</strong>-root user (<code>999</code>) afterwards.\nKeep in mind the permissions on the backup directory will be changed to <code>999:999</code> on <strong>every</strong> update.\nBut will only be changed once for the <code>postgres</code> data directories.</p>\n</blockquote>",
  378. "changelog": null
  379. }
  380. }