app_versions.json 82 KB

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