app_versions.json 61 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042
  1. {
  2. "1.0.5": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/apps/apps/trains/community/makemkv/1.0.5",
  7. "last_update": "2025-09-02 11:33:24",
  8. "required_features": [],
  9. "human_version": "v25.08.1_1.0.5",
  10. "version": "1.0.5",
  11. "app_metadata": {
  12. "app_version": "v25.08.1",
  13. "capabilities": [
  14. {
  15. "description": "MakeMKV is able to change file ownership arbitrarily",
  16. "name": "CHOWN"
  17. },
  18. {
  19. "description": "MakeMKV is able to bypass file permission checks",
  20. "name": "DAC_OVERRIDE"
  21. },
  22. {
  23. "description": "MakeMKV is able to bypass permission checks for file operations",
  24. "name": "FOWNER"
  25. },
  26. {
  27. "description": "MakeMKV is able to send signals to any process",
  28. "name": "KILL"
  29. },
  30. {
  31. "description": "MakeMKV is able to bind to privileged ports (< 1024)",
  32. "name": "NET_BIND_SERVICE"
  33. },
  34. {
  35. "description": "MakeMKV is able to change group ID of processes",
  36. "name": "SETGID"
  37. },
  38. {
  39. "description": "MakeMKV is able to change user ID of processes",
  40. "name": "SETUID"
  41. }
  42. ],
  43. "categories": [
  44. "media"
  45. ],
  46. "changelog_url": "https://github.com/jlesage/docker-makemkv/releases",
  47. "date_added": "2025-07-30",
  48. "description": "MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can be played everywhere",
  49. "home": "https://www.makemkv.com/",
  50. "host_mounts": [],
  51. "icon": "https://media.sys.truenas.net/apps/makemkv/icons/icon.png",
  52. "keywords": [
  53. "media",
  54. "video",
  55. "ripping"
  56. ],
  57. "lib_version": "2.1.49",
  58. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  59. "maintainers": [
  60. {
  61. "email": "dev@ixsystems.com",
  62. "name": "truenas",
  63. "url": "https://www.truenas.com/"
  64. }
  65. ],
  66. "name": "makemkv",
  67. "run_as_context": [
  68. {
  69. "description": "MakeMKV runs as root user.",
  70. "gid": 0,
  71. "group_name": "root",
  72. "uid": 0,
  73. "user_name": "root"
  74. }
  75. ],
  76. "screenshots": [],
  77. "sources": [
  78. "https://github.com/jlesage/docker-makemkv"
  79. ],
  80. "title": "MakeMKV",
  81. "train": "community",
  82. "version": "1.0.5"
  83. },
  84. "schema": {
  85. "groups": [
  86. {
  87. "name": "MakeMKV Configuration",
  88. "description": "Configure MakeMKV"
  89. },
  90. {
  91. "name": "User and Group Configuration",
  92. "description": "Configure User and Group for MakeMKV"
  93. },
  94. {
  95. "name": "Network Configuration",
  96. "description": "Configure Network for MakeMKV"
  97. },
  98. {
  99. "name": "Storage Configuration",
  100. "description": "Configure Storage for MakeMKV"
  101. },
  102. {
  103. "name": "Labels Configuration",
  104. "description": "Configure Labels for MakeMKV"
  105. },
  106. {
  107. "name": "Resources Configuration",
  108. "description": "Configure Resources for MakeMKV"
  109. }
  110. ],
  111. "questions": [
  112. {
  113. "variable": "TZ",
  114. "group": "MakeMKV Configuration",
  115. "label": "Timezone",
  116. "schema": {
  117. "type": "string",
  118. "default": "Etc/UTC",
  119. "required": true,
  120. "$ref": [
  121. "definitions/timezone"
  122. ]
  123. }
  124. },
  125. {
  126. "variable": "makemkv",
  127. "label": "",
  128. "group": "MakeMKV Configuration",
  129. "schema": {
  130. "type": "dict",
  131. "attrs": [
  132. {
  133. "variable": "devices",
  134. "label": "Devices",
  135. "description": "Examples:\n- Host Device: /dev/sr0, Container Device: /dev/sr0\n- Host Device: /dev/sg0, Container Device: /dev/sg0\n",
  136. "schema": {
  137. "type": "list",
  138. "default": [],
  139. "items": [
  140. {
  141. "variable": "device",
  142. "label": "Device",
  143. "schema": {
  144. "type": "dict",
  145. "attrs": [
  146. {
  147. "variable": "host_device",
  148. "label": "Host Device",
  149. "schema": {
  150. "type": "string",
  151. "required": true
  152. }
  153. },
  154. {
  155. "variable": "container_device",
  156. "label": "Container Device",
  157. "schema": {
  158. "type": "string",
  159. "required": true
  160. }
  161. }
  162. ]
  163. }
  164. }
  165. ]
  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 MakeMKV 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 MakeMKV 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": 30234,
  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": "host_network",
  318. "label": "Host Network",
  319. "description": "Bind to the host network. It's recommended to keep this disabled.\n",
  320. "schema": {
  321. "type": "boolean",
  322. "default": false
  323. }
  324. }
  325. ]
  326. }
  327. },
  328. {
  329. "variable": "storage",
  330. "label": "",
  331. "group": "Storage Configuration",
  332. "schema": {
  333. "type": "dict",
  334. "attrs": [
  335. {
  336. "variable": "config",
  337. "label": "MakeMKV Config Storage",
  338. "description": "The path to store MakeMKV Config.",
  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. "default": "ix_volume",
  350. "enum": [
  351. {
  352. "value": "host_path",
  353. "description": "Host Path (Path that already exists on the system)"
  354. },
  355. {
  356. "value": "ix_volume",
  357. "description": "ixVolume (Dataset created automatically by the system)"
  358. }
  359. ]
  360. }
  361. },
  362. {
  363. "variable": "ix_volume_config",
  364. "label": "ixVolume Configuration",
  365. "description": "The configuration for the ixVolume dataset.",
  366. "schema": {
  367. "type": "dict",
  368. "show_if": [
  369. [
  370. "type",
  371. "=",
  372. "ix_volume"
  373. ]
  374. ],
  375. "$ref": [
  376. "normalize/ix_volume"
  377. ],
  378. "attrs": [
  379. {
  380. "variable": "acl_enable",
  381. "label": "Enable ACL",
  382. "description": "Enable ACL for the storage.",
  383. "schema": {
  384. "type": "boolean",
  385. "default": false
  386. }
  387. },
  388. {
  389. "variable": "dataset_name",
  390. "label": "Dataset Name",
  391. "description": "The name of the dataset to use for storage.",
  392. "schema": {
  393. "type": "string",
  394. "required": true,
  395. "hidden": true,
  396. "default": "config"
  397. }
  398. },
  399. {
  400. "variable": "acl_entries",
  401. "label": "ACL Configuration",
  402. "schema": {
  403. "type": "dict",
  404. "show_if": [
  405. [
  406. "acl_enable",
  407. "=",
  408. true
  409. ]
  410. ],
  411. "attrs": []
  412. }
  413. }
  414. ]
  415. }
  416. },
  417. {
  418. "variable": "host_path_config",
  419. "label": "Host Path Configuration",
  420. "schema": {
  421. "type": "dict",
  422. "show_if": [
  423. [
  424. "type",
  425. "=",
  426. "host_path"
  427. ]
  428. ],
  429. "attrs": [
  430. {
  431. "variable": "acl_enable",
  432. "label": "Enable ACL",
  433. "description": "Enable ACL for the storage.",
  434. "schema": {
  435. "type": "boolean",
  436. "default": false
  437. }
  438. },
  439. {
  440. "variable": "acl",
  441. "label": "ACL Configuration",
  442. "schema": {
  443. "type": "dict",
  444. "show_if": [
  445. [
  446. "acl_enable",
  447. "=",
  448. true
  449. ]
  450. ],
  451. "attrs": [],
  452. "$ref": [
  453. "normalize/acl"
  454. ]
  455. }
  456. },
  457. {
  458. "variable": "path",
  459. "label": "Host Path",
  460. "description": "The host path to use for storage.",
  461. "schema": {
  462. "type": "hostpath",
  463. "show_if": [
  464. [
  465. "acl_enable",
  466. "=",
  467. false
  468. ]
  469. ],
  470. "required": true
  471. }
  472. }
  473. ]
  474. }
  475. }
  476. ]
  477. }
  478. },
  479. {
  480. "variable": "output",
  481. "label": "MakeMKV Output Storage",
  482. "description": "The target path to store MakeMKV conversions.",
  483. "schema": {
  484. "type": "dict",
  485. "attrs": [
  486. {
  487. "variable": "type",
  488. "label": "Type",
  489. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  490. "schema": {
  491. "type": "string",
  492. "required": true,
  493. "default": "ix_volume",
  494. "enum": [
  495. {
  496. "value": "host_path",
  497. "description": "Host Path (Path that already exists on the system)"
  498. },
  499. {
  500. "value": "ix_volume",
  501. "description": "ixVolume (Dataset created automatically by the system)"
  502. }
  503. ]
  504. }
  505. },
  506. {
  507. "variable": "ix_volume_config",
  508. "label": "ixVolume Configuration",
  509. "description": "The configuration for the ixVolume dataset.",
  510. "schema": {
  511. "type": "dict",
  512. "show_if": [
  513. [
  514. "type",
  515. "=",
  516. "ix_volume"
  517. ]
  518. ],
  519. "$ref": [
  520. "normalize/ix_volume"
  521. ],
  522. "attrs": [
  523. {
  524. "variable": "acl_enable",
  525. "label": "Enable ACL",
  526. "description": "Enable ACL for the storage.",
  527. "schema": {
  528. "type": "boolean",
  529. "default": false
  530. }
  531. },
  532. {
  533. "variable": "dataset_name",
  534. "label": "Dataset Name",
  535. "description": "The name of the dataset to use for storage.",
  536. "schema": {
  537. "type": "string",
  538. "required": true,
  539. "hidden": true,
  540. "default": "output"
  541. }
  542. },
  543. {
  544. "variable": "acl_entries",
  545. "label": "ACL Configuration",
  546. "schema": {
  547. "type": "dict",
  548. "show_if": [
  549. [
  550. "acl_enable",
  551. "=",
  552. true
  553. ]
  554. ],
  555. "attrs": []
  556. }
  557. }
  558. ]
  559. }
  560. },
  561. {
  562. "variable": "host_path_config",
  563. "label": "Host Path Configuration",
  564. "schema": {
  565. "type": "dict",
  566. "show_if": [
  567. [
  568. "type",
  569. "=",
  570. "host_path"
  571. ]
  572. ],
  573. "attrs": [
  574. {
  575. "variable": "acl_enable",
  576. "label": "Enable ACL",
  577. "description": "Enable ACL for the storage.",
  578. "schema": {
  579. "type": "boolean",
  580. "default": false
  581. }
  582. },
  583. {
  584. "variable": "acl",
  585. "label": "ACL Configuration",
  586. "schema": {
  587. "type": "dict",
  588. "show_if": [
  589. [
  590. "acl_enable",
  591. "=",
  592. true
  593. ]
  594. ],
  595. "attrs": [],
  596. "$ref": [
  597. "normalize/acl"
  598. ]
  599. }
  600. },
  601. {
  602. "variable": "path",
  603. "label": "Host Path",
  604. "description": "The host path to use for storage.",
  605. "schema": {
  606. "type": "hostpath",
  607. "show_if": [
  608. [
  609. "acl_enable",
  610. "=",
  611. false
  612. ]
  613. ],
  614. "required": true
  615. }
  616. }
  617. ]
  618. }
  619. }
  620. ]
  621. }
  622. },
  623. {
  624. "variable": "additional_storage",
  625. "label": "Additional Storage",
  626. "schema": {
  627. "type": "list",
  628. "default": [],
  629. "items": [
  630. {
  631. "variable": "storageEntry",
  632. "label": "Storage Entry",
  633. "schema": {
  634. "type": "dict",
  635. "attrs": [
  636. {
  637. "variable": "type",
  638. "label": "Type",
  639. "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",
  640. "schema": {
  641. "type": "string",
  642. "required": true,
  643. "default": "ix_volume",
  644. "enum": [
  645. {
  646. "value": "host_path",
  647. "description": "Host Path (Path that already exists on the system)"
  648. },
  649. {
  650. "value": "ix_volume",
  651. "description": "ixVolume (Dataset created automatically by the system)"
  652. },
  653. {
  654. "value": "cifs",
  655. "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
  656. }
  657. ]
  658. }
  659. },
  660. {
  661. "variable": "read_only",
  662. "label": "Read Only",
  663. "description": "Mount the volume as read only.",
  664. "schema": {
  665. "type": "boolean",
  666. "default": false
  667. }
  668. },
  669. {
  670. "variable": "mount_path",
  671. "label": "Mount Path",
  672. "description": "The path inside the container to mount the storage.",
  673. "schema": {
  674. "type": "path",
  675. "required": true
  676. }
  677. },
  678. {
  679. "variable": "host_path_config",
  680. "label": "Host Path Configuration",
  681. "schema": {
  682. "type": "dict",
  683. "show_if": [
  684. [
  685. "type",
  686. "=",
  687. "host_path"
  688. ]
  689. ],
  690. "attrs": [
  691. {
  692. "variable": "acl_enable",
  693. "label": "Enable ACL",
  694. "description": "Enable ACL for the storage.",
  695. "schema": {
  696. "type": "boolean",
  697. "default": false
  698. }
  699. },
  700. {
  701. "variable": "acl",
  702. "label": "ACL Configuration",
  703. "schema": {
  704. "type": "dict",
  705. "show_if": [
  706. [
  707. "acl_enable",
  708. "=",
  709. true
  710. ]
  711. ],
  712. "attrs": [],
  713. "$ref": [
  714. "normalize/acl"
  715. ]
  716. }
  717. },
  718. {
  719. "variable": "path",
  720. "label": "Host Path",
  721. "description": "The host path to use for storage.",
  722. "schema": {
  723. "type": "hostpath",
  724. "show_if": [
  725. [
  726. "acl_enable",
  727. "=",
  728. false
  729. ]
  730. ],
  731. "required": true
  732. }
  733. }
  734. ]
  735. }
  736. },
  737. {
  738. "variable": "ix_volume_config",
  739. "label": "ixVolume Configuration",
  740. "description": "The configuration for the ixVolume dataset.",
  741. "schema": {
  742. "type": "dict",
  743. "show_if": [
  744. [
  745. "type",
  746. "=",
  747. "ix_volume"
  748. ]
  749. ],
  750. "$ref": [
  751. "normalize/ix_volume"
  752. ],
  753. "attrs": [
  754. {
  755. "variable": "acl_enable",
  756. "label": "Enable ACL",
  757. "description": "Enable ACL for the storage.",
  758. "schema": {
  759. "type": "boolean",
  760. "default": false
  761. }
  762. },
  763. {
  764. "variable": "dataset_name",
  765. "label": "Dataset Name",
  766. "description": "The name of the dataset to use for storage.",
  767. "schema": {
  768. "type": "string",
  769. "required": true,
  770. "default": "storage_entry"
  771. }
  772. },
  773. {
  774. "variable": "acl_entries",
  775. "label": "ACL Configuration",
  776. "schema": {
  777. "type": "dict",
  778. "show_if": [
  779. [
  780. "acl_enable",
  781. "=",
  782. true
  783. ]
  784. ],
  785. "attrs": [],
  786. "$ref": [
  787. "normalize/acl"
  788. ]
  789. }
  790. }
  791. ]
  792. }
  793. },
  794. {
  795. "variable": "cifs_config",
  796. "label": "SMB Configuration",
  797. "description": "The configuration for the SMB dataset.",
  798. "schema": {
  799. "type": "dict",
  800. "show_if": [
  801. [
  802. "type",
  803. "=",
  804. "cifs"
  805. ]
  806. ],
  807. "attrs": [
  808. {
  809. "variable": "server",
  810. "label": "Server",
  811. "description": "The server to mount the SMB share.",
  812. "schema": {
  813. "type": "string",
  814. "required": true
  815. }
  816. },
  817. {
  818. "variable": "path",
  819. "label": "Path",
  820. "description": "The path to mount the SMB share.",
  821. "schema": {
  822. "type": "string",
  823. "required": true
  824. }
  825. },
  826. {
  827. "variable": "username",
  828. "label": "Username",
  829. "description": "The username to use for the SMB share.",
  830. "schema": {
  831. "type": "string",
  832. "required": true
  833. }
  834. },
  835. {
  836. "variable": "password",
  837. "label": "Password",
  838. "description": "The password to use for the SMB share.",
  839. "schema": {
  840. "type": "string",
  841. "required": true,
  842. "private": true
  843. }
  844. },
  845. {
  846. "variable": "domain",
  847. "label": "Domain",
  848. "description": "The domain to use for the SMB share.",
  849. "schema": {
  850. "type": "string"
  851. }
  852. }
  853. ]
  854. }
  855. }
  856. ]
  857. }
  858. }
  859. ]
  860. }
  861. }
  862. ]
  863. }
  864. },
  865. {
  866. "variable": "labels",
  867. "label": "",
  868. "group": "Labels Configuration",
  869. "schema": {
  870. "type": "list",
  871. "default": [],
  872. "items": [
  873. {
  874. "variable": "label",
  875. "label": "Label",
  876. "schema": {
  877. "type": "dict",
  878. "attrs": [
  879. {
  880. "variable": "key",
  881. "label": "Key",
  882. "schema": {
  883. "type": "string",
  884. "required": true
  885. }
  886. },
  887. {
  888. "variable": "value",
  889. "label": "Value",
  890. "schema": {
  891. "type": "string",
  892. "required": true
  893. }
  894. },
  895. {
  896. "variable": "containers",
  897. "label": "Containers",
  898. "description": "Containers where the label should be applied",
  899. "schema": {
  900. "type": "list",
  901. "items": [
  902. {
  903. "variable": "container",
  904. "label": "Container",
  905. "schema": {
  906. "type": "string",
  907. "required": true,
  908. "enum": [
  909. {
  910. "value": "makemkv",
  911. "description": "makemkv"
  912. }
  913. ]
  914. }
  915. }
  916. ]
  917. }
  918. }
  919. ]
  920. }
  921. }
  922. ]
  923. }
  924. },
  925. {
  926. "variable": "resources",
  927. "label": "",
  928. "group": "Resources Configuration",
  929. "schema": {
  930. "type": "dict",
  931. "attrs": [
  932. {
  933. "variable": "limits",
  934. "label": "Limits",
  935. "schema": {
  936. "type": "dict",
  937. "attrs": [
  938. {
  939. "variable": "cpus",
  940. "label": "CPUs",
  941. "description": "CPUs limit for MakeMKV.",
  942. "schema": {
  943. "type": "int",
  944. "default": 2,
  945. "required": true
  946. }
  947. },
  948. {
  949. "variable": "memory",
  950. "label": "Memory (in MB)",
  951. "description": "Memory limit for MakeMKV.",
  952. "schema": {
  953. "type": "int",
  954. "default": 4096,
  955. "required": true
  956. }
  957. }
  958. ]
  959. }
  960. }
  961. ]
  962. }
  963. }
  964. ]
  965. },
  966. "readme": "<h1>MakeMKV</h1> <p><a href=\"https://www.makemkv.com/\">MakeMKV</a> - MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can be played everywhere</p>",
  967. "changelog": null,
  968. "chart_metadata": {
  969. "app_version": "v25.08.1",
  970. "capabilities": [
  971. {
  972. "description": "MakeMKV is able to change file ownership arbitrarily",
  973. "name": "CHOWN"
  974. },
  975. {
  976. "description": "MakeMKV is able to bypass file permission checks",
  977. "name": "DAC_OVERRIDE"
  978. },
  979. {
  980. "description": "MakeMKV is able to bypass permission checks for file operations",
  981. "name": "FOWNER"
  982. },
  983. {
  984. "description": "MakeMKV is able to send signals to any process",
  985. "name": "KILL"
  986. },
  987. {
  988. "description": "MakeMKV is able to bind to privileged ports (< 1024)",
  989. "name": "NET_BIND_SERVICE"
  990. },
  991. {
  992. "description": "MakeMKV is able to change group ID of processes",
  993. "name": "SETGID"
  994. },
  995. {
  996. "description": "MakeMKV is able to change user ID of processes",
  997. "name": "SETUID"
  998. }
  999. ],
  1000. "categories": [
  1001. "media"
  1002. ],
  1003. "changelog_url": "https://github.com/jlesage/docker-makemkv/releases",
  1004. "date_added": "2025-07-30",
  1005. "description": "MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can be played everywhere",
  1006. "home": "https://www.makemkv.com/",
  1007. "host_mounts": [],
  1008. "icon": "https://media.sys.truenas.net/apps/makemkv/icons/icon.png",
  1009. "keywords": [
  1010. "media",
  1011. "video",
  1012. "ripping"
  1013. ],
  1014. "lib_version": "2.1.49",
  1015. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  1016. "maintainers": [
  1017. {
  1018. "email": "dev@ixsystems.com",
  1019. "name": "truenas",
  1020. "url": "https://www.truenas.com/"
  1021. }
  1022. ],
  1023. "name": "makemkv",
  1024. "run_as_context": [
  1025. {
  1026. "description": "MakeMKV runs as root user.",
  1027. "gid": 0,
  1028. "group_name": "root",
  1029. "uid": 0,
  1030. "user_name": "root"
  1031. }
  1032. ],
  1033. "screenshots": [],
  1034. "sources": [
  1035. "https://github.com/jlesage/docker-makemkv"
  1036. ],
  1037. "title": "MakeMKV",
  1038. "train": "community",
  1039. "version": "1.0.5"
  1040. }
  1041. }
  1042. }