app_versions.json 68 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167
  1. {
  2. "1.0.14": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/apps/apps/trains/community/kasm-workspaces/1.0.14",
  7. "last_update": "2025-09-02 11:33:24",
  8. "required_features": [],
  9. "human_version": "1.17.0_1.0.14",
  10. "version": "1.0.14",
  11. "app_metadata": {
  12. "app_version": "1.17.0",
  13. "capabilities": [
  14. {
  15. "description": "Kasm is able to write records to audit log",
  16. "name": "AUDIT_WRITE"
  17. },
  18. {
  19. "description": "Kasm is able to change file ownership arbitrarily",
  20. "name": "CHOWN"
  21. },
  22. {
  23. "description": "Kasm is able to bypass file permission checks",
  24. "name": "DAC_OVERRIDE"
  25. },
  26. {
  27. "description": "Kasm is able to bypass permission checks for file operations",
  28. "name": "FOWNER"
  29. },
  30. {
  31. "description": "Kasm is able to preserve set-user-ID and set-group-ID bits",
  32. "name": "FSETID"
  33. },
  34. {
  35. "description": "Kasm is able to send signals to any process",
  36. "name": "KILL"
  37. },
  38. {
  39. "description": "Kasm is able to create special files using mknod()",
  40. "name": "MKNOD"
  41. },
  42. {
  43. "description": "Kasm is able to bind to privileged ports (< 1024)",
  44. "name": "NET_BIND_SERVICE"
  45. },
  46. {
  47. "description": "Kasm is able to use raw and packet sockets",
  48. "name": "NET_RAW"
  49. },
  50. {
  51. "description": "Kasm is able to set file capabilities on other files",
  52. "name": "SETFCAP"
  53. },
  54. {
  55. "description": "Kasm is able to change group ID of processes",
  56. "name": "SETGID"
  57. },
  58. {
  59. "description": "Kasm is able to transfer capabilities between processes",
  60. "name": "SETPCAP"
  61. },
  62. {
  63. "description": "Kasm is able to change user ID of processes",
  64. "name": "SETUID"
  65. },
  66. {
  67. "description": "Kasm is able to use chroot() system call",
  68. "name": "SYS_CHROOT"
  69. }
  70. ],
  71. "categories": [
  72. "productivity"
  73. ],
  74. "changelog_url": "https://www.kasmweb.com/docs/latest/release_notes.html",
  75. "date_added": "2025-03-11",
  76. "description": "Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services.",
  77. "home": "https://www.kasmweb.com",
  78. "host_mounts": [],
  79. "icon": "https://media.sys.truenas.net/apps/kasm-workspaces/icons/icon.png",
  80. "keywords": [
  81. "kasm",
  82. "workspaces"
  83. ],
  84. "lib_version": "2.1.49",
  85. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  86. "maintainers": [
  87. {
  88. "email": "dev@ixsystems.com",
  89. "name": "truenas",
  90. "url": "https://www.truenas.com/"
  91. }
  92. ],
  93. "name": "kasm-workspaces",
  94. "run_as_context": [
  95. {
  96. "description": "Kasm Workspaces runs as root user.",
  97. "gid": 0,
  98. "group_name": "root",
  99. "uid": 0,
  100. "user_name": "root"
  101. }
  102. ],
  103. "screenshots": [],
  104. "sources": [
  105. "https://github.com/linuxserver/docker-kasm"
  106. ],
  107. "title": "Kasm Workspaces",
  108. "train": "community",
  109. "version": "1.0.14"
  110. },
  111. "schema": {
  112. "groups": [
  113. {
  114. "name": "Kasm Workspaces Configuration",
  115. "description": "Configure Kasm Workspaces"
  116. },
  117. {
  118. "name": "User and Group Configuration",
  119. "description": "Configure User and Group for Kasm Workspaces"
  120. },
  121. {
  122. "name": "Network Configuration",
  123. "description": "Configure Network for Kasm Workspaces"
  124. },
  125. {
  126. "name": "Storage Configuration",
  127. "description": "Configure Storage for Kasm Workspaces"
  128. },
  129. {
  130. "name": "Labels Configuration",
  131. "description": "Configure Labels for Kasm Workspaces"
  132. },
  133. {
  134. "name": "Resources Configuration",
  135. "description": "Configure Resources for Kasm Workspaces"
  136. }
  137. ],
  138. "questions": [
  139. {
  140. "variable": "TZ",
  141. "group": "Kasm Workspaces Configuration",
  142. "label": "Timezone",
  143. "schema": {
  144. "type": "string",
  145. "default": "Etc/UTC",
  146. "required": true,
  147. "$ref": [
  148. "definitions/timezone"
  149. ]
  150. }
  151. },
  152. {
  153. "variable": "kasm",
  154. "label": "",
  155. "group": "Kasm Workspaces Configuration",
  156. "schema": {
  157. "type": "dict",
  158. "attrs": [
  159. {
  160. "variable": "gamepad_support",
  161. "label": "Gamepad Support",
  162. "description": "Enable gamepad support for Kasm Workspaces.",
  163. "schema": {
  164. "type": "boolean",
  165. "default": false
  166. }
  167. },
  168. {
  169. "variable": "additional_envs",
  170. "label": "Additional Environment Variables",
  171. "schema": {
  172. "type": "list",
  173. "default": [],
  174. "items": [
  175. {
  176. "variable": "env",
  177. "label": "Environment Variable",
  178. "schema": {
  179. "type": "dict",
  180. "attrs": [
  181. {
  182. "variable": "name",
  183. "label": "Name",
  184. "schema": {
  185. "type": "string",
  186. "required": true
  187. }
  188. },
  189. {
  190. "variable": "value",
  191. "label": "Value",
  192. "schema": {
  193. "type": "string"
  194. }
  195. }
  196. ]
  197. }
  198. }
  199. ]
  200. }
  201. }
  202. ]
  203. }
  204. },
  205. {
  206. "variable": "run_as",
  207. "label": "",
  208. "group": "User and Group Configuration",
  209. "schema": {
  210. "type": "dict",
  211. "attrs": [
  212. {
  213. "variable": "user",
  214. "label": "User ID",
  215. "description": "The user id that Kasm Workspaces files will be owned by.",
  216. "schema": {
  217. "type": "int",
  218. "min": 568,
  219. "default": 568,
  220. "required": true
  221. }
  222. },
  223. {
  224. "variable": "group",
  225. "label": "Group ID",
  226. "description": "The group id that Kasm Workspaces files will be owned by.",
  227. "schema": {
  228. "type": "int",
  229. "min": 568,
  230. "default": 568,
  231. "required": true
  232. }
  233. }
  234. ]
  235. }
  236. },
  237. {
  238. "variable": "network",
  239. "label": "",
  240. "group": "Network Configuration",
  241. "schema": {
  242. "type": "dict",
  243. "attrs": [
  244. {
  245. "variable": "web_port",
  246. "label": "WebUI Port",
  247. "schema": {
  248. "type": "dict",
  249. "attrs": [
  250. {
  251. "variable": "bind_mode",
  252. "label": "Port Bind Mode",
  253. "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",
  254. "schema": {
  255. "type": "string",
  256. "default": "published",
  257. "enum": [
  258. {
  259. "value": "published",
  260. "description": "Publish port on the host for external access"
  261. },
  262. {
  263. "value": "exposed",
  264. "description": "Expose port for inter-container communication"
  265. },
  266. {
  267. "value": "",
  268. "description": "None"
  269. }
  270. ]
  271. }
  272. },
  273. {
  274. "variable": "port_number",
  275. "label": "Port Number",
  276. "schema": {
  277. "type": "int",
  278. "default": 30128,
  279. "min": 1,
  280. "max": 65535,
  281. "required": true
  282. }
  283. },
  284. {
  285. "variable": "host_ips",
  286. "label": "Host IPs",
  287. "description": "IPs on the host to bind this port",
  288. "schema": {
  289. "type": "list",
  290. "show_if": [
  291. [
  292. "bind_mode",
  293. "=",
  294. "published"
  295. ]
  296. ],
  297. "default": [],
  298. "items": [
  299. {
  300. "variable": "host_ip",
  301. "label": "Host IP",
  302. "schema": {
  303. "type": "string",
  304. "required": true,
  305. "$ref": [
  306. "definitions/node_bind_ip"
  307. ]
  308. }
  309. }
  310. ]
  311. }
  312. }
  313. ]
  314. }
  315. },
  316. {
  317. "variable": "setup_port",
  318. "label": "Setup Port",
  319. "schema": {
  320. "type": "dict",
  321. "show_if": [
  322. [
  323. "host_network",
  324. "=",
  325. false
  326. ]
  327. ],
  328. "attrs": [
  329. {
  330. "variable": "bind_mode",
  331. "label": "Port Bind Mode",
  332. "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",
  333. "schema": {
  334. "type": "string",
  335. "default": "published",
  336. "enum": [
  337. {
  338. "value": "published",
  339. "description": "Publish port on the host for external access"
  340. },
  341. {
  342. "value": "exposed",
  343. "description": "Expose port for inter-container communication"
  344. },
  345. {
  346. "value": "",
  347. "description": "None"
  348. }
  349. ]
  350. }
  351. },
  352. {
  353. "variable": "port_number",
  354. "label": "Port Number",
  355. "schema": {
  356. "type": "int",
  357. "default": 30129,
  358. "show_if": [
  359. [
  360. "bind_mode",
  361. "=",
  362. "published"
  363. ]
  364. ],
  365. "min": 1,
  366. "max": 65535,
  367. "required": true
  368. }
  369. },
  370. {
  371. "variable": "host_ips",
  372. "label": "Host IPs",
  373. "description": "IPs on the host to bind this port",
  374. "schema": {
  375. "type": "list",
  376. "show_if": [
  377. [
  378. "bind_mode",
  379. "=",
  380. "published"
  381. ]
  382. ],
  383. "default": [],
  384. "items": [
  385. {
  386. "variable": "host_ip",
  387. "label": "Host IP",
  388. "schema": {
  389. "type": "string",
  390. "required": true,
  391. "$ref": [
  392. "definitions/node_bind_ip"
  393. ]
  394. }
  395. }
  396. ]
  397. }
  398. }
  399. ]
  400. }
  401. },
  402. {
  403. "variable": "host_network",
  404. "label": "Host Network",
  405. "description": "Bind to the host network. It's recommended to keep this disabled.\n",
  406. "schema": {
  407. "type": "boolean",
  408. "default": false
  409. }
  410. }
  411. ]
  412. }
  413. },
  414. {
  415. "variable": "storage",
  416. "label": "",
  417. "group": "Storage Configuration",
  418. "schema": {
  419. "type": "dict",
  420. "attrs": [
  421. {
  422. "variable": "opt",
  423. "label": "Kasm Workspaces Opt Storage",
  424. "description": "The path to store Kasm Workspaces Opt.",
  425. "schema": {
  426. "type": "dict",
  427. "attrs": [
  428. {
  429. "variable": "type",
  430. "label": "Type",
  431. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  432. "schema": {
  433. "type": "string",
  434. "required": true,
  435. "default": "ix_volume",
  436. "enum": [
  437. {
  438. "value": "host_path",
  439. "description": "Host Path (Path that already exists on the system)"
  440. },
  441. {
  442. "value": "ix_volume",
  443. "description": "ixVolume (Dataset created automatically by the system)"
  444. }
  445. ]
  446. }
  447. },
  448. {
  449. "variable": "ix_volume_config",
  450. "label": "ixVolume Configuration",
  451. "description": "The configuration for the ixVolume dataset.",
  452. "schema": {
  453. "type": "dict",
  454. "show_if": [
  455. [
  456. "type",
  457. "=",
  458. "ix_volume"
  459. ]
  460. ],
  461. "$ref": [
  462. "normalize/ix_volume"
  463. ],
  464. "attrs": [
  465. {
  466. "variable": "acl_enable",
  467. "label": "Enable ACL",
  468. "description": "Enable ACL for the storage.",
  469. "schema": {
  470. "type": "boolean",
  471. "default": false
  472. }
  473. },
  474. {
  475. "variable": "dataset_name",
  476. "label": "Dataset Name",
  477. "description": "The name of the dataset to use for storage.",
  478. "schema": {
  479. "type": "string",
  480. "required": true,
  481. "hidden": true,
  482. "default": "opt"
  483. }
  484. },
  485. {
  486. "variable": "acl_entries",
  487. "label": "ACL Configuration",
  488. "schema": {
  489. "type": "dict",
  490. "show_if": [
  491. [
  492. "acl_enable",
  493. "=",
  494. true
  495. ]
  496. ],
  497. "attrs": []
  498. }
  499. }
  500. ]
  501. }
  502. },
  503. {
  504. "variable": "host_path_config",
  505. "label": "Host Path Configuration",
  506. "schema": {
  507. "type": "dict",
  508. "show_if": [
  509. [
  510. "type",
  511. "=",
  512. "host_path"
  513. ]
  514. ],
  515. "attrs": [
  516. {
  517. "variable": "acl_enable",
  518. "label": "Enable ACL",
  519. "description": "Enable ACL for the storage.",
  520. "schema": {
  521. "type": "boolean",
  522. "default": false
  523. }
  524. },
  525. {
  526. "variable": "acl",
  527. "label": "ACL Configuration",
  528. "schema": {
  529. "type": "dict",
  530. "show_if": [
  531. [
  532. "acl_enable",
  533. "=",
  534. true
  535. ]
  536. ],
  537. "attrs": [],
  538. "$ref": [
  539. "normalize/acl"
  540. ]
  541. }
  542. },
  543. {
  544. "variable": "path",
  545. "label": "Host Path",
  546. "description": "The host path to use for storage.",
  547. "schema": {
  548. "type": "hostpath",
  549. "show_if": [
  550. [
  551. "acl_enable",
  552. "=",
  553. false
  554. ]
  555. ],
  556. "required": true
  557. }
  558. }
  559. ]
  560. }
  561. }
  562. ]
  563. }
  564. },
  565. {
  566. "variable": "profiles",
  567. "label": "Kasm Workspaces Profiles Storage",
  568. "description": "The path to store Kasm Workspaces Profiles.",
  569. "schema": {
  570. "type": "dict",
  571. "attrs": [
  572. {
  573. "variable": "type",
  574. "label": "Type",
  575. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  576. "schema": {
  577. "type": "string",
  578. "required": true,
  579. "default": "ix_volume",
  580. "enum": [
  581. {
  582. "value": "host_path",
  583. "description": "Host Path (Path that already exists on the system)"
  584. },
  585. {
  586. "value": "ix_volume",
  587. "description": "ixVolume (Dataset created automatically by the system)"
  588. }
  589. ]
  590. }
  591. },
  592. {
  593. "variable": "ix_volume_config",
  594. "label": "ixVolume Configuration",
  595. "description": "The configuration for the ixVolume dataset.",
  596. "schema": {
  597. "type": "dict",
  598. "show_if": [
  599. [
  600. "type",
  601. "=",
  602. "ix_volume"
  603. ]
  604. ],
  605. "$ref": [
  606. "normalize/ix_volume"
  607. ],
  608. "attrs": [
  609. {
  610. "variable": "acl_enable",
  611. "label": "Enable ACL",
  612. "description": "Enable ACL for the storage.",
  613. "schema": {
  614. "type": "boolean",
  615. "default": false
  616. }
  617. },
  618. {
  619. "variable": "dataset_name",
  620. "label": "Dataset Name",
  621. "description": "The name of the dataset to use for storage.",
  622. "schema": {
  623. "type": "string",
  624. "required": true,
  625. "hidden": true,
  626. "default": "profiles"
  627. }
  628. },
  629. {
  630. "variable": "acl_entries",
  631. "label": "ACL Configuration",
  632. "schema": {
  633. "type": "dict",
  634. "show_if": [
  635. [
  636. "acl_enable",
  637. "=",
  638. true
  639. ]
  640. ],
  641. "attrs": []
  642. }
  643. }
  644. ]
  645. }
  646. },
  647. {
  648. "variable": "host_path_config",
  649. "label": "Host Path Configuration",
  650. "schema": {
  651. "type": "dict",
  652. "show_if": [
  653. [
  654. "type",
  655. "=",
  656. "host_path"
  657. ]
  658. ],
  659. "attrs": [
  660. {
  661. "variable": "acl_enable",
  662. "label": "Enable ACL",
  663. "description": "Enable ACL for the storage.",
  664. "schema": {
  665. "type": "boolean",
  666. "default": false
  667. }
  668. },
  669. {
  670. "variable": "acl",
  671. "label": "ACL Configuration",
  672. "schema": {
  673. "type": "dict",
  674. "show_if": [
  675. [
  676. "acl_enable",
  677. "=",
  678. true
  679. ]
  680. ],
  681. "attrs": [],
  682. "$ref": [
  683. "normalize/acl"
  684. ]
  685. }
  686. },
  687. {
  688. "variable": "path",
  689. "label": "Host Path",
  690. "description": "The host path to use for storage.",
  691. "schema": {
  692. "type": "hostpath",
  693. "show_if": [
  694. [
  695. "acl_enable",
  696. "=",
  697. false
  698. ]
  699. ],
  700. "required": true
  701. }
  702. }
  703. ]
  704. }
  705. }
  706. ]
  707. }
  708. },
  709. {
  710. "variable": "additional_storage",
  711. "label": "Additional Storage",
  712. "schema": {
  713. "type": "list",
  714. "default": [],
  715. "items": [
  716. {
  717. "variable": "storageEntry",
  718. "label": "Storage Entry",
  719. "schema": {
  720. "type": "dict",
  721. "attrs": [
  722. {
  723. "variable": "type",
  724. "label": "Type",
  725. "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",
  726. "schema": {
  727. "type": "string",
  728. "required": true,
  729. "default": "ix_volume",
  730. "enum": [
  731. {
  732. "value": "host_path",
  733. "description": "Host Path (Path that already exists on the system)"
  734. },
  735. {
  736. "value": "ix_volume",
  737. "description": "ixVolume (Dataset created automatically by the system)"
  738. },
  739. {
  740. "value": "cifs",
  741. "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
  742. }
  743. ]
  744. }
  745. },
  746. {
  747. "variable": "read_only",
  748. "label": "Read Only",
  749. "description": "Mount the volume as read only.",
  750. "schema": {
  751. "type": "boolean",
  752. "default": false
  753. }
  754. },
  755. {
  756. "variable": "mount_path",
  757. "label": "Mount Path",
  758. "description": "The path inside the container to mount the storage.",
  759. "schema": {
  760. "type": "path",
  761. "required": true
  762. }
  763. },
  764. {
  765. "variable": "host_path_config",
  766. "label": "Host Path Configuration",
  767. "schema": {
  768. "type": "dict",
  769. "show_if": [
  770. [
  771. "type",
  772. "=",
  773. "host_path"
  774. ]
  775. ],
  776. "attrs": [
  777. {
  778. "variable": "acl_enable",
  779. "label": "Enable ACL",
  780. "description": "Enable ACL for the storage.",
  781. "schema": {
  782. "type": "boolean",
  783. "default": false
  784. }
  785. },
  786. {
  787. "variable": "acl",
  788. "label": "ACL Configuration",
  789. "schema": {
  790. "type": "dict",
  791. "show_if": [
  792. [
  793. "acl_enable",
  794. "=",
  795. true
  796. ]
  797. ],
  798. "attrs": [],
  799. "$ref": [
  800. "normalize/acl"
  801. ]
  802. }
  803. },
  804. {
  805. "variable": "path",
  806. "label": "Host Path",
  807. "description": "The host path to use for storage.",
  808. "schema": {
  809. "type": "hostpath",
  810. "show_if": [
  811. [
  812. "acl_enable",
  813. "=",
  814. false
  815. ]
  816. ],
  817. "required": true
  818. }
  819. }
  820. ]
  821. }
  822. },
  823. {
  824. "variable": "ix_volume_config",
  825. "label": "ixVolume Configuration",
  826. "description": "The configuration for the ixVolume dataset.",
  827. "schema": {
  828. "type": "dict",
  829. "show_if": [
  830. [
  831. "type",
  832. "=",
  833. "ix_volume"
  834. ]
  835. ],
  836. "$ref": [
  837. "normalize/ix_volume"
  838. ],
  839. "attrs": [
  840. {
  841. "variable": "acl_enable",
  842. "label": "Enable ACL",
  843. "description": "Enable ACL for the storage.",
  844. "schema": {
  845. "type": "boolean",
  846. "default": false
  847. }
  848. },
  849. {
  850. "variable": "dataset_name",
  851. "label": "Dataset Name",
  852. "description": "The name of the dataset to use for storage.",
  853. "schema": {
  854. "type": "string",
  855. "required": true,
  856. "default": "storage_entry"
  857. }
  858. },
  859. {
  860. "variable": "acl_entries",
  861. "label": "ACL Configuration",
  862. "schema": {
  863. "type": "dict",
  864. "show_if": [
  865. [
  866. "acl_enable",
  867. "=",
  868. true
  869. ]
  870. ],
  871. "attrs": [],
  872. "$ref": [
  873. "normalize/acl"
  874. ]
  875. }
  876. }
  877. ]
  878. }
  879. },
  880. {
  881. "variable": "cifs_config",
  882. "label": "SMB Configuration",
  883. "description": "The configuration for the SMB dataset.",
  884. "schema": {
  885. "type": "dict",
  886. "show_if": [
  887. [
  888. "type",
  889. "=",
  890. "cifs"
  891. ]
  892. ],
  893. "attrs": [
  894. {
  895. "variable": "server",
  896. "label": "Server",
  897. "description": "The server to mount the SMB share.",
  898. "schema": {
  899. "type": "string",
  900. "required": true
  901. }
  902. },
  903. {
  904. "variable": "path",
  905. "label": "Path",
  906. "description": "The path to mount the SMB share.",
  907. "schema": {
  908. "type": "string",
  909. "required": true
  910. }
  911. },
  912. {
  913. "variable": "username",
  914. "label": "Username",
  915. "description": "The username to use for the SMB share.",
  916. "schema": {
  917. "type": "string",
  918. "required": true
  919. }
  920. },
  921. {
  922. "variable": "password",
  923. "label": "Password",
  924. "description": "The password to use for the SMB share.",
  925. "schema": {
  926. "type": "string",
  927. "required": true,
  928. "private": true
  929. }
  930. },
  931. {
  932. "variable": "domain",
  933. "label": "Domain",
  934. "description": "The domain to use for the SMB share.",
  935. "schema": {
  936. "type": "string"
  937. }
  938. }
  939. ]
  940. }
  941. }
  942. ]
  943. }
  944. }
  945. ]
  946. }
  947. }
  948. ]
  949. }
  950. },
  951. {
  952. "variable": "labels",
  953. "label": "",
  954. "group": "Labels Configuration",
  955. "schema": {
  956. "type": "list",
  957. "default": [],
  958. "items": [
  959. {
  960. "variable": "label",
  961. "label": "Label",
  962. "schema": {
  963. "type": "dict",
  964. "attrs": [
  965. {
  966. "variable": "key",
  967. "label": "Key",
  968. "schema": {
  969. "type": "string",
  970. "required": true
  971. }
  972. },
  973. {
  974. "variable": "value",
  975. "label": "Value",
  976. "schema": {
  977. "type": "string",
  978. "required": true
  979. }
  980. },
  981. {
  982. "variable": "containers",
  983. "label": "Containers",
  984. "description": "Containers where the label should be applied",
  985. "schema": {
  986. "type": "list",
  987. "items": [
  988. {
  989. "variable": "container",
  990. "label": "Container",
  991. "schema": {
  992. "type": "string",
  993. "required": true,
  994. "enum": [
  995. {
  996. "value": "kasm",
  997. "description": "kasm"
  998. }
  999. ]
  1000. }
  1001. }
  1002. ]
  1003. }
  1004. }
  1005. ]
  1006. }
  1007. }
  1008. ]
  1009. }
  1010. },
  1011. {
  1012. "variable": "resources",
  1013. "label": "",
  1014. "group": "Resources Configuration",
  1015. "schema": {
  1016. "type": "dict",
  1017. "attrs": [
  1018. {
  1019. "variable": "limits",
  1020. "label": "Limits",
  1021. "schema": {
  1022. "type": "dict",
  1023. "attrs": [
  1024. {
  1025. "variable": "cpus",
  1026. "label": "CPUs",
  1027. "description": "CPUs limit for Kasm Workspaces.",
  1028. "schema": {
  1029. "type": "int",
  1030. "default": 2,
  1031. "required": true
  1032. }
  1033. },
  1034. {
  1035. "variable": "memory",
  1036. "label": "Memory (in MB)",
  1037. "description": "Memory limit for Kasm Workspaces.",
  1038. "schema": {
  1039. "type": "int",
  1040. "default": 4096,
  1041. "required": true
  1042. }
  1043. }
  1044. ]
  1045. }
  1046. },
  1047. {
  1048. "variable": "gpus",
  1049. "group": "Resources Configuration",
  1050. "label": "GPU Configuration",
  1051. "schema": {
  1052. "type": "dict",
  1053. "$ref": [
  1054. "definitions/gpu_configuration"
  1055. ],
  1056. "attrs": []
  1057. }
  1058. }
  1059. ]
  1060. }
  1061. }
  1062. ]
  1063. },
  1064. "readme": "<h1>Kasm Workspaces</h1> <p><a href=\"https://www.kasmweb.com\">Kasm Workspaces</a> is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services.</p>",
  1065. "changelog": null,
  1066. "chart_metadata": {
  1067. "app_version": "1.17.0",
  1068. "capabilities": [
  1069. {
  1070. "description": "Kasm is able to write records to audit log",
  1071. "name": "AUDIT_WRITE"
  1072. },
  1073. {
  1074. "description": "Kasm is able to change file ownership arbitrarily",
  1075. "name": "CHOWN"
  1076. },
  1077. {
  1078. "description": "Kasm is able to bypass file permission checks",
  1079. "name": "DAC_OVERRIDE"
  1080. },
  1081. {
  1082. "description": "Kasm is able to bypass permission checks for file operations",
  1083. "name": "FOWNER"
  1084. },
  1085. {
  1086. "description": "Kasm is able to preserve set-user-ID and set-group-ID bits",
  1087. "name": "FSETID"
  1088. },
  1089. {
  1090. "description": "Kasm is able to send signals to any process",
  1091. "name": "KILL"
  1092. },
  1093. {
  1094. "description": "Kasm is able to create special files using mknod()",
  1095. "name": "MKNOD"
  1096. },
  1097. {
  1098. "description": "Kasm is able to bind to privileged ports (< 1024)",
  1099. "name": "NET_BIND_SERVICE"
  1100. },
  1101. {
  1102. "description": "Kasm is able to use raw and packet sockets",
  1103. "name": "NET_RAW"
  1104. },
  1105. {
  1106. "description": "Kasm is able to set file capabilities on other files",
  1107. "name": "SETFCAP"
  1108. },
  1109. {
  1110. "description": "Kasm is able to change group ID of processes",
  1111. "name": "SETGID"
  1112. },
  1113. {
  1114. "description": "Kasm is able to transfer capabilities between processes",
  1115. "name": "SETPCAP"
  1116. },
  1117. {
  1118. "description": "Kasm is able to change user ID of processes",
  1119. "name": "SETUID"
  1120. },
  1121. {
  1122. "description": "Kasm is able to use chroot() system call",
  1123. "name": "SYS_CHROOT"
  1124. }
  1125. ],
  1126. "categories": [
  1127. "productivity"
  1128. ],
  1129. "changelog_url": "https://www.kasmweb.com/docs/latest/release_notes.html",
  1130. "date_added": "2025-03-11",
  1131. "description": "Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services.",
  1132. "home": "https://www.kasmweb.com",
  1133. "host_mounts": [],
  1134. "icon": "https://media.sys.truenas.net/apps/kasm-workspaces/icons/icon.png",
  1135. "keywords": [
  1136. "kasm",
  1137. "workspaces"
  1138. ],
  1139. "lib_version": "2.1.49",
  1140. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  1141. "maintainers": [
  1142. {
  1143. "email": "dev@ixsystems.com",
  1144. "name": "truenas",
  1145. "url": "https://www.truenas.com/"
  1146. }
  1147. ],
  1148. "name": "kasm-workspaces",
  1149. "run_as_context": [
  1150. {
  1151. "description": "Kasm Workspaces runs as root user.",
  1152. "gid": 0,
  1153. "group_name": "root",
  1154. "uid": 0,
  1155. "user_name": "root"
  1156. }
  1157. ],
  1158. "screenshots": [],
  1159. "sources": [
  1160. "https://github.com/linuxserver/docker-kasm"
  1161. ],
  1162. "title": "Kasm Workspaces",
  1163. "train": "community",
  1164. "version": "1.0.14"
  1165. }
  1166. }
  1167. }