app_versions.json 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716
  1. {
  2. "1.2.3": {
  3. "healthy": true,
  4. "supported": false,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/logseq/1.2.3",
  7. "last_update": "2025-03-06 08:26:26",
  8. "required_features": [
  9. "normalize/ixVolume",
  10. "normalize/acl",
  11. "definitions/certificate"
  12. ],
  13. "human_version": "latest_1.2.3",
  14. "version": "1.2.3",
  15. "chart_metadata": {
  16. "name": "logseq",
  17. "description": "Logseq is a privacy-first, open-source platform for knowledge management and collaboration.",
  18. "annotations": {
  19. "title": "Logseq"
  20. },
  21. "type": "application",
  22. "version": "1.2.3",
  23. "apiVersion": "v2",
  24. "appVersion": "latest",
  25. "kubeVersion": ">=1.16.0-0",
  26. "maintainers": [
  27. {
  28. "name": "truenas",
  29. "url": "https://www.truenas.com/",
  30. "email": "dev@ixsystems.com"
  31. }
  32. ],
  33. "dependencies": [
  34. {
  35. "name": "common",
  36. "repository": "file://../../../common",
  37. "version": "1.2.9"
  38. }
  39. ],
  40. "home": "https://logseq.com/",
  41. "icon": "https://media.sys.truenas.net/apps/logseq/icons/icon.png",
  42. "sources": [
  43. "https://github.com/logseq/logseq",
  44. "https://github.com/truenas/charts/tree/master/library/ix-dev/community/logseq"
  45. ],
  46. "keywords": [
  47. "knowledge",
  48. "management"
  49. ]
  50. },
  51. "app_metadata": {
  52. "runAsContext": [
  53. {
  54. "userName": "logseq",
  55. "groupName": "logseq",
  56. "gid": 568,
  57. "uid": 568,
  58. "description": "Logseq can run as any non-root user."
  59. }
  60. ],
  61. "capabilities": [],
  62. "hostMounts": []
  63. },
  64. "schema": {
  65. "groups": [
  66. {
  67. "name": "Logseq Configuration",
  68. "description": "Configure Logseq"
  69. },
  70. {
  71. "name": "User and Group Configuration",
  72. "description": "Configure User and Group for Logseq"
  73. },
  74. {
  75. "name": "Network Configuration",
  76. "description": "Configure Network for Logseq"
  77. },
  78. {
  79. "name": "Storage Configuration",
  80. "description": "Configure Storage for Logseq"
  81. },
  82. {
  83. "name": "Resources Configuration",
  84. "description": "Configure Resources for Logseq"
  85. }
  86. ],
  87. "portals": {
  88. "web_portal": {
  89. "protocols": [
  90. "$kubernetes-resource_configmap_portal_protocol"
  91. ],
  92. "host": [
  93. "$kubernetes-resource_configmap_portal_host"
  94. ],
  95. "ports": [
  96. "$kubernetes-resource_configmap_portal_port"
  97. ],
  98. "path": "$kubernetes-resource_configmap_portal_path"
  99. }
  100. },
  101. "questions": [
  102. {
  103. "variable": "logseqConfig",
  104. "label": "",
  105. "group": "Logseq Configuration",
  106. "schema": {
  107. "type": "dict",
  108. "attrs": [
  109. {
  110. "variable": "additionalEnvs",
  111. "label": "Additional Environment Variables",
  112. "description": "Configure additional environment variables for Logseq.",
  113. "schema": {
  114. "type": "list",
  115. "default": [],
  116. "items": [
  117. {
  118. "variable": "env",
  119. "label": "Environment Variable",
  120. "schema": {
  121. "type": "dict",
  122. "attrs": [
  123. {
  124. "variable": "name",
  125. "label": "Name",
  126. "schema": {
  127. "type": "string",
  128. "required": true
  129. }
  130. },
  131. {
  132. "variable": "value",
  133. "label": "Value",
  134. "schema": {
  135. "type": "string",
  136. "required": true
  137. }
  138. }
  139. ]
  140. }
  141. }
  142. ]
  143. }
  144. }
  145. ]
  146. }
  147. },
  148. {
  149. "variable": "logseqRunAs",
  150. "label": "",
  151. "group": "User and Group Configuration",
  152. "schema": {
  153. "type": "dict",
  154. "attrs": [
  155. {
  156. "variable": "user",
  157. "label": "User ID",
  158. "description": "The user id that Logseq will run as.",
  159. "schema": {
  160. "type": "int",
  161. "min": 2,
  162. "default": 568,
  163. "required": true
  164. }
  165. },
  166. {
  167. "variable": "group",
  168. "label": "Group ID",
  169. "description": "The group id that Logseq will run as.",
  170. "schema": {
  171. "type": "int",
  172. "min": 2,
  173. "default": 568,
  174. "required": true
  175. }
  176. }
  177. ]
  178. }
  179. },
  180. {
  181. "variable": "logseqNetwork",
  182. "label": "",
  183. "group": "Network Configuration",
  184. "schema": {
  185. "type": "dict",
  186. "attrs": [
  187. {
  188. "variable": "webPort",
  189. "label": "Web Port",
  190. "description": "The port for the Logseq Web UI.",
  191. "schema": {
  192. "type": "int",
  193. "default": 30079,
  194. "min": 9000,
  195. "max": 65535,
  196. "required": true
  197. }
  198. },
  199. {
  200. "variable": "certificateID",
  201. "label": "Certificate",
  202. "description": "The certificate to use for Logseq.",
  203. "schema": {
  204. "type": "int",
  205. "null": true,
  206. "$ref": [
  207. "definitions/certificate"
  208. ],
  209. "enum": [
  210. {
  211. "value": null,
  212. "description": "No Certificate"
  213. }
  214. ],
  215. "default": null
  216. }
  217. },
  218. {
  219. "variable": "hostNetwork",
  220. "label": "Host Network",
  221. "description": "Bind to the host network. It's recommended to keep this disabled.</br>\n",
  222. "schema": {
  223. "type": "boolean",
  224. "default": false
  225. }
  226. }
  227. ]
  228. }
  229. },
  230. {
  231. "variable": "logseqStorage",
  232. "label": "",
  233. "group": "Storage Configuration",
  234. "schema": {
  235. "type": "dict",
  236. "attrs": [
  237. {
  238. "variable": "additionalStorages",
  239. "label": "Additional Storage",
  240. "description": "Additional storage for Logseq.",
  241. "schema": {
  242. "type": "list",
  243. "default": [],
  244. "items": [
  245. {
  246. "variable": "storageEntry",
  247. "label": "Storage Entry",
  248. "schema": {
  249. "type": "dict",
  250. "attrs": [
  251. {
  252. "variable": "type",
  253. "label": "Type",
  254. "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",
  255. "schema": {
  256. "type": "string",
  257. "required": true,
  258. "default": "ixVolume",
  259. "immutable": true,
  260. "enum": [
  261. {
  262. "value": "hostPath",
  263. "description": "Host Path (Path that already exists on the system)"
  264. },
  265. {
  266. "value": "ixVolume",
  267. "description": "ixVolume (Dataset created automatically by the system)"
  268. },
  269. {
  270. "value": "smb-pv-pvc",
  271. "description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
  272. }
  273. ]
  274. }
  275. },
  276. {
  277. "variable": "readOnly",
  278. "label": "Read Only",
  279. "description": "Mount the volume as read only.",
  280. "schema": {
  281. "type": "boolean",
  282. "default": false
  283. }
  284. },
  285. {
  286. "variable": "mountPath",
  287. "label": "Mount Path",
  288. "description": "The path inside the container to mount the storage.",
  289. "schema": {
  290. "type": "path",
  291. "required": true
  292. }
  293. },
  294. {
  295. "variable": "hostPathConfig",
  296. "label": "Host Path Configuration",
  297. "schema": {
  298. "type": "dict",
  299. "show_if": [
  300. [
  301. "type",
  302. "=",
  303. "hostPath"
  304. ]
  305. ],
  306. "attrs": [
  307. {
  308. "variable": "aclEnable",
  309. "label": "Enable ACL",
  310. "description": "Enable ACL for the dataset.",
  311. "schema": {
  312. "type": "boolean",
  313. "default": false
  314. }
  315. },
  316. {
  317. "variable": "acl",
  318. "label": "ACL Configuration",
  319. "schema": {
  320. "type": "dict",
  321. "show_if": [
  322. [
  323. "aclEnable",
  324. "=",
  325. true
  326. ]
  327. ],
  328. "attrs": [
  329. {
  330. "variable": "path",
  331. "label": "Host Path",
  332. "description": "Host Path to perform ACL",
  333. "schema": {
  334. "type": "hostpath",
  335. "required": true,
  336. "empty": false
  337. }
  338. },
  339. {
  340. "variable": "entries",
  341. "label": "ACL Entries",
  342. "description": "ACL Entries",
  343. "schema": {
  344. "type": "list",
  345. "items": [
  346. {
  347. "variable": "aclEntry",
  348. "label": "ACL Entry",
  349. "schema": {
  350. "type": "dict",
  351. "attrs": [
  352. {
  353. "variable": "id_type",
  354. "label": "ID Type",
  355. "schema": {
  356. "type": "string",
  357. "enum": [
  358. {
  359. "value": "USER",
  360. "description": "Entry is for a USER"
  361. },
  362. {
  363. "value": "GROUP",
  364. "description": "Entry is for a GROUP"
  365. }
  366. ],
  367. "default": "USER"
  368. }
  369. },
  370. {
  371. "variable": "id",
  372. "label": "ID",
  373. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  374. "schema": {
  375. "type": "int",
  376. "required": true,
  377. "min": 0
  378. }
  379. },
  380. {
  381. "variable": "access",
  382. "label": "Access",
  383. "schema": {
  384. "type": "string",
  385. "enum": [
  386. {
  387. "value": "READ",
  388. "description": "Read Access"
  389. },
  390. {
  391. "value": "MODIFY",
  392. "description": "Modify Access"
  393. },
  394. {
  395. "value": "FULL_CONTROL",
  396. "description": "FULL_CONTROL Access"
  397. }
  398. ]
  399. }
  400. }
  401. ]
  402. }
  403. }
  404. ]
  405. }
  406. },
  407. {
  408. "variable": "options",
  409. "label": "ACL Options",
  410. "schema": {
  411. "type": "dict",
  412. "attrs": [
  413. {
  414. "variable": "force",
  415. "label": "Force Flag",
  416. "description": "Enabling `Force` applies ACL even if the path has existing data",
  417. "schema": {
  418. "type": "boolean",
  419. "default": false
  420. }
  421. }
  422. ]
  423. }
  424. }
  425. ],
  426. "$ref": [
  427. "normalize/acl"
  428. ]
  429. }
  430. },
  431. {
  432. "variable": "hostPath",
  433. "label": "Host Path",
  434. "description": "The host path to use for storage.",
  435. "schema": {
  436. "type": "hostpath",
  437. "show_if": [
  438. [
  439. "aclEnable",
  440. "=",
  441. false
  442. ]
  443. ],
  444. "required": true
  445. }
  446. }
  447. ]
  448. }
  449. },
  450. {
  451. "variable": "ixVolumeConfig",
  452. "label": "ixVolume Configuration",
  453. "description": "The configuration for the ixVolume dataset.",
  454. "schema": {
  455. "type": "dict",
  456. "show_if": [
  457. [
  458. "type",
  459. "=",
  460. "ixVolume"
  461. ]
  462. ],
  463. "$ref": [
  464. "normalize/ixVolume"
  465. ],
  466. "attrs": [
  467. {
  468. "variable": "aclEnable",
  469. "label": "Enable ACL",
  470. "description": "Enable ACL for the dataset.",
  471. "schema": {
  472. "type": "boolean",
  473. "default": false
  474. }
  475. },
  476. {
  477. "variable": "datasetName",
  478. "label": "Dataset Name",
  479. "description": "The name of the dataset to use for storage.",
  480. "schema": {
  481. "type": "string",
  482. "required": true,
  483. "immutable": true,
  484. "default": "storage_entry"
  485. }
  486. },
  487. {
  488. "variable": "aclEntries",
  489. "label": "ACL Configuration",
  490. "schema": {
  491. "type": "dict",
  492. "show_if": [
  493. [
  494. "aclEnable",
  495. "=",
  496. true
  497. ]
  498. ],
  499. "attrs": [
  500. {
  501. "variable": "path",
  502. "label": "Path",
  503. "description": "Path to perform ACL",
  504. "schema": {
  505. "type": "string",
  506. "hidden": true
  507. }
  508. },
  509. {
  510. "variable": "entries",
  511. "label": "ACL Entries",
  512. "description": "ACL Entries",
  513. "schema": {
  514. "type": "list",
  515. "items": [
  516. {
  517. "variable": "aclEntry",
  518. "label": "ACL Entry",
  519. "schema": {
  520. "type": "dict",
  521. "attrs": [
  522. {
  523. "variable": "id_type",
  524. "label": "ID Type",
  525. "schema": {
  526. "type": "string",
  527. "enum": [
  528. {
  529. "value": "USER",
  530. "description": "Entry is for a USER"
  531. },
  532. {
  533. "value": "GROUP",
  534. "description": "Entry is for a GROUP"
  535. }
  536. ],
  537. "default": "USER"
  538. }
  539. },
  540. {
  541. "variable": "id",
  542. "label": "ID",
  543. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  544. "schema": {
  545. "type": "int",
  546. "required": true,
  547. "min": 0
  548. }
  549. },
  550. {
  551. "variable": "access",
  552. "label": "Access",
  553. "schema": {
  554. "type": "string",
  555. "enum": [
  556. {
  557. "value": "READ",
  558. "description": "Read Access"
  559. },
  560. {
  561. "value": "MODIFY",
  562. "description": "Modify Access"
  563. },
  564. {
  565. "value": "FULL_CONTROL",
  566. "description": "FULL_CONTROL Access"
  567. }
  568. ]
  569. }
  570. }
  571. ]
  572. }
  573. }
  574. ]
  575. }
  576. }
  577. ]
  578. }
  579. }
  580. ]
  581. }
  582. },
  583. {
  584. "variable": "smbConfig",
  585. "label": "SMB Share Configuration",
  586. "description": "The configuration for the SMB Share.",
  587. "schema": {
  588. "type": "dict",
  589. "show_if": [
  590. [
  591. "type",
  592. "=",
  593. "smb-pv-pvc"
  594. ]
  595. ],
  596. "attrs": [
  597. {
  598. "variable": "server",
  599. "label": "Server",
  600. "description": "The server for the SMB share.",
  601. "schema": {
  602. "type": "string",
  603. "required": true
  604. }
  605. },
  606. {
  607. "variable": "share",
  608. "label": "Share",
  609. "description": "The share name for the SMB share.",
  610. "schema": {
  611. "type": "string",
  612. "required": true
  613. }
  614. },
  615. {
  616. "variable": "domain",
  617. "label": "Domain (Optional)",
  618. "description": "The domain for the SMB share.",
  619. "schema": {
  620. "type": "string"
  621. }
  622. },
  623. {
  624. "variable": "username",
  625. "label": "Username",
  626. "description": "The username for the SMB share.",
  627. "schema": {
  628. "type": "string",
  629. "required": true
  630. }
  631. },
  632. {
  633. "variable": "password",
  634. "label": "Password",
  635. "description": "The password for the SMB share.",
  636. "schema": {
  637. "type": "string",
  638. "required": true,
  639. "private": true
  640. }
  641. },
  642. {
  643. "variable": "size",
  644. "label": "Size (in Gi)",
  645. "description": "The size of the volume quota.",
  646. "schema": {
  647. "type": "int",
  648. "required": true,
  649. "min": 1,
  650. "default": 1
  651. }
  652. }
  653. ]
  654. }
  655. }
  656. ]
  657. }
  658. }
  659. ]
  660. }
  661. }
  662. ]
  663. }
  664. },
  665. {
  666. "variable": "resources",
  667. "group": "Resources Configuration",
  668. "label": "",
  669. "schema": {
  670. "type": "dict",
  671. "attrs": [
  672. {
  673. "variable": "limits",
  674. "label": "Limits",
  675. "schema": {
  676. "type": "dict",
  677. "attrs": [
  678. {
  679. "variable": "cpu",
  680. "label": "CPU",
  681. "description": "CPU limit for Logseq.",
  682. "schema": {
  683. "type": "string",
  684. "max_length": 6,
  685. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  686. "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",
  687. "default": "4000m",
  688. "required": true
  689. }
  690. },
  691. {
  692. "variable": "memory",
  693. "label": "Memory",
  694. "description": "Memory limit for Logseq.",
  695. "schema": {
  696. "type": "string",
  697. "max_length": 12,
  698. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  699. "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",
  700. "default": "8Gi",
  701. "required": true
  702. }
  703. }
  704. ]
  705. }
  706. }
  707. ]
  708. }
  709. }
  710. ]
  711. },
  712. "app_readme": "<h1>Logseq</h1>\n<p><a href=\"https://logseq.com/\">Logseq</a> is a privacy-first, open-source platform for knowledge management and collaboration.</p>\n<p>HTTPS is <strong>required</strong> in order to use Logseq.</p>\n<p>Either by using the Certificate selection or with an external reverse proxy.</p>",
  713. "detailed_readme": "<h1>Logseq</h1>\n<p><a href=\"https://logseq.com/\">Logseq</a> is a privacy-first, open-source platform for knowledge management and collaboration.</p>\n<p>HTTPS is <strong>required</strong> in order to use Logseq.</p>\n<p>Either by using the Certificate selection or with an external reverse proxy.</p>",
  714. "changelog": null
  715. }
  716. }