app_versions.json 65 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064
  1. {
  2. "1.3.12": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/apps/apps/trains/community/invidious/1.3.12",
  7. "last_update": "2025-09-02 11:33:24",
  8. "required_features": [],
  9. "human_version": "2.20250517.0_1.3.12",
  10. "version": "1.3.12",
  11. "app_metadata": {
  12. "annotations": {
  13. "min_scale_version": "24.10.2.2"
  14. },
  15. "app_version": "2.20250517.0",
  16. "capabilities": [],
  17. "categories": [
  18. "media"
  19. ],
  20. "changelog_url": "https://github.com/iv-org/invidious/blob/master/CHANGELOG.md",
  21. "date_added": "2024-09-05",
  22. "description": "Invidious is an alternative front-end to YouTube",
  23. "home": "https://invidious.io/",
  24. "host_mounts": [],
  25. "icon": "https://media.sys.truenas.net/apps/invidious/icons/icon.svg",
  26. "keywords": [
  27. "youtube"
  28. ],
  29. "lib_version": "2.1.49",
  30. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  31. "maintainers": [
  32. {
  33. "email": "dev@ixsystems.com",
  34. "name": "truenas",
  35. "url": "https://www.truenas.com/"
  36. }
  37. ],
  38. "name": "invidious",
  39. "run_as_context": [
  40. {
  41. "description": "Invidious runs as non-root user.",
  42. "gid": 1000,
  43. "group_name": "invidious",
  44. "uid": 1000,
  45. "user_name": "invidious"
  46. },
  47. {
  48. "description": "Postgres runs as non-root user.",
  49. "gid": 999,
  50. "group_name": "postgres",
  51. "uid": 999,
  52. "user_name": "postgres"
  53. }
  54. ],
  55. "screenshots": [
  56. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot1.png",
  57. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot2.png",
  58. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot3.png",
  59. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot4.png",
  60. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot5.png",
  61. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot6.png"
  62. ],
  63. "sources": [
  64. "https://invidious.io/",
  65. "https://quay.io/repository/invidious"
  66. ],
  67. "title": "Invidious",
  68. "train": "community",
  69. "version": "1.3.12"
  70. },
  71. "schema": {
  72. "groups": [
  73. {
  74. "name": "Invidious Configuration",
  75. "description": "Configure Invidious"
  76. },
  77. {
  78. "name": "Network Configuration",
  79. "description": "Configure Network for Invidious"
  80. },
  81. {
  82. "name": "Storage Configuration",
  83. "description": "Configure Storage for Invidious"
  84. },
  85. {
  86. "name": "Labels Configuration",
  87. "description": "Configure Labels for Invidious"
  88. },
  89. {
  90. "name": "Resources Configuration",
  91. "description": "Configure Resources for Invidious"
  92. }
  93. ],
  94. "questions": [
  95. {
  96. "variable": "invidious",
  97. "label": "",
  98. "group": "Invidious Configuration",
  99. "schema": {
  100. "type": "dict",
  101. "attrs": [
  102. {
  103. "variable": "postgres_image_selector",
  104. "label": "Postgres Image (CAUTION)",
  105. "description": "If you are changing this after the postgres directory has been initialized,</br>\nSTOP! and make sure you have a backup of your data.</br>\nChanging this will trigger an one way database upgrade.</br>\nYou can only select newer versions of postgres.</br>\nSelecting an older version will refuse to start.</br>\nIf something goes wrong, you will have to restore from backup.\n",
  106. "schema": {
  107. "type": "string",
  108. "default": "postgres_17_image",
  109. "required": true,
  110. "enum": [
  111. {
  112. "value": "postgres_15_image",
  113. "description": "Postgres 15"
  114. },
  115. {
  116. "value": "postgres_17_image",
  117. "description": "Postgres 17"
  118. }
  119. ]
  120. }
  121. },
  122. {
  123. "variable": "db_password",
  124. "label": "Database Password",
  125. "description": "The password for Invidious.",
  126. "schema": {
  127. "type": "string",
  128. "default": "",
  129. "required": true,
  130. "private": true
  131. }
  132. },
  133. {
  134. "variable": "hmac_secret",
  135. "label": "HMAC Secret",
  136. "description": "The HMAC secret for Invidious.",
  137. "schema": {
  138. "type": "string",
  139. "default": "",
  140. "required": true,
  141. "private": true
  142. }
  143. },
  144. {
  145. "variable": "enable_inv_sig_helper",
  146. "label": "Enable Inv Sig Helper",
  147. "description": "Enable Invidious Signature Helper.",
  148. "schema": {
  149. "type": "boolean",
  150. "default": false
  151. }
  152. },
  153. {
  154. "variable": "po_token",
  155. "label": "PO Token",
  156. "description": "The PO token for Invidious.</br>\nSee https://github.com/iv-org/invidious/issues/4734#issuecomment-2290075097\n",
  157. "schema": {
  158. "type": "string",
  159. "default": "",
  160. "private": true
  161. }
  162. },
  163. {
  164. "variable": "visitor_data",
  165. "label": "Visitor Data",
  166. "description": "The visitor data for Invidious.</br>\nSee https://github.com/iv-org/invidious/issues/4734#issuecomment-2290075097\n",
  167. "schema": {
  168. "type": "string",
  169. "default": "",
  170. "private": true
  171. }
  172. },
  173. {
  174. "variable": "admins",
  175. "label": "Admins",
  176. "description": "List of usernames that will be granted administrator rights.",
  177. "schema": {
  178. "type": "list",
  179. "default": [],
  180. "items": [
  181. {
  182. "variable": "admin",
  183. "label": "Admin",
  184. "schema": {
  185. "type": "string",
  186. "required": true
  187. }
  188. }
  189. ]
  190. }
  191. },
  192. {
  193. "variable": "registration_enabled",
  194. "label": "Registration Enabled",
  195. "description": "Enable registration for Invidious.",
  196. "schema": {
  197. "type": "boolean",
  198. "default": true
  199. }
  200. },
  201. {
  202. "variable": "login_enabled",
  203. "label": "Login Enabled",
  204. "description": "Enable login for Invidious.",
  205. "schema": {
  206. "type": "boolean",
  207. "default": true
  208. }
  209. },
  210. {
  211. "variable": "captcha_enabled",
  212. "label": "Captcha Enabled",
  213. "description": "Enable captcha for Invidious.",
  214. "schema": {
  215. "type": "boolean",
  216. "default": true
  217. }
  218. },
  219. {
  220. "variable": "additional_envs",
  221. "label": "Additional Environment Variables",
  222. "schema": {
  223. "type": "list",
  224. "default": [],
  225. "items": [
  226. {
  227. "variable": "env",
  228. "label": "Environment Variable",
  229. "schema": {
  230. "type": "dict",
  231. "attrs": [
  232. {
  233. "variable": "name",
  234. "label": "Name",
  235. "schema": {
  236. "type": "string",
  237. "required": true
  238. }
  239. },
  240. {
  241. "variable": "value",
  242. "label": "Value",
  243. "schema": {
  244. "type": "string"
  245. }
  246. }
  247. ]
  248. }
  249. }
  250. ]
  251. }
  252. }
  253. ]
  254. }
  255. },
  256. {
  257. "variable": "network",
  258. "label": "",
  259. "group": "Network Configuration",
  260. "schema": {
  261. "type": "dict",
  262. "attrs": [
  263. {
  264. "variable": "web_port",
  265. "label": "WebUI Port",
  266. "description": "The port for Invidious WebUI",
  267. "schema": {
  268. "type": "dict",
  269. "attrs": [
  270. {
  271. "variable": "bind_mode",
  272. "label": "Port Bind Mode",
  273. "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",
  274. "schema": {
  275. "type": "string",
  276. "default": "published",
  277. "enum": [
  278. {
  279. "value": "published",
  280. "description": "Publish port on the host for external access"
  281. },
  282. {
  283. "value": "exposed",
  284. "description": "Expose port for inter-container communication"
  285. },
  286. {
  287. "value": "",
  288. "description": "None"
  289. }
  290. ]
  291. }
  292. },
  293. {
  294. "variable": "port_number",
  295. "label": "Port Number",
  296. "schema": {
  297. "type": "int",
  298. "default": 31008,
  299. "min": 1,
  300. "max": 65535,
  301. "required": true
  302. }
  303. },
  304. {
  305. "variable": "host_ips",
  306. "label": "Host IPs",
  307. "description": "IPs on the host to bind this port",
  308. "schema": {
  309. "type": "list",
  310. "show_if": [
  311. [
  312. "bind_mode",
  313. "=",
  314. "published"
  315. ]
  316. ],
  317. "default": [],
  318. "items": [
  319. {
  320. "variable": "host_ip",
  321. "label": "Host IP",
  322. "schema": {
  323. "type": "string",
  324. "required": true,
  325. "$ref": [
  326. "definitions/node_bind_ip"
  327. ]
  328. }
  329. }
  330. ]
  331. }
  332. }
  333. ]
  334. }
  335. }
  336. ]
  337. }
  338. },
  339. {
  340. "variable": "storage",
  341. "label": "",
  342. "group": "Storage Configuration",
  343. "schema": {
  344. "type": "dict",
  345. "attrs": [
  346. {
  347. "variable": "config",
  348. "label": "Invidious Config Storage",
  349. "description": "The path to store Invidious Config.",
  350. "schema": {
  351. "type": "dict",
  352. "attrs": [
  353. {
  354. "variable": "type",
  355. "label": "Type",
  356. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  357. "schema": {
  358. "type": "string",
  359. "required": true,
  360. "default": "ix_volume",
  361. "enum": [
  362. {
  363. "value": "host_path",
  364. "description": "Host Path (Path that already exists on the system)"
  365. },
  366. {
  367. "value": "ix_volume",
  368. "description": "ixVolume (Dataset created automatically by the system)"
  369. }
  370. ]
  371. }
  372. },
  373. {
  374. "variable": "ix_volume_config",
  375. "label": "ixVolume Configuration",
  376. "description": "The configuration for the ixVolume dataset.",
  377. "schema": {
  378. "type": "dict",
  379. "show_if": [
  380. [
  381. "type",
  382. "=",
  383. "ix_volume"
  384. ]
  385. ],
  386. "$ref": [
  387. "normalize/ix_volume"
  388. ],
  389. "attrs": [
  390. {
  391. "variable": "acl_enable",
  392. "label": "Enable ACL",
  393. "description": "Enable ACL for the storage.",
  394. "schema": {
  395. "type": "boolean",
  396. "default": false
  397. }
  398. },
  399. {
  400. "variable": "dataset_name",
  401. "label": "Dataset Name",
  402. "description": "The name of the dataset to use for storage.",
  403. "schema": {
  404. "type": "string",
  405. "required": true,
  406. "hidden": true,
  407. "default": "config"
  408. }
  409. },
  410. {
  411. "variable": "acl_entries",
  412. "label": "ACL Configuration",
  413. "schema": {
  414. "type": "dict",
  415. "show_if": [
  416. [
  417. "acl_enable",
  418. "=",
  419. true
  420. ]
  421. ],
  422. "attrs": []
  423. }
  424. }
  425. ]
  426. }
  427. },
  428. {
  429. "variable": "host_path_config",
  430. "label": "Host Path Configuration",
  431. "schema": {
  432. "type": "dict",
  433. "show_if": [
  434. [
  435. "type",
  436. "=",
  437. "host_path"
  438. ]
  439. ],
  440. "attrs": [
  441. {
  442. "variable": "acl_enable",
  443. "label": "Enable ACL",
  444. "description": "Enable ACL for the storage.",
  445. "schema": {
  446. "type": "boolean",
  447. "default": false
  448. }
  449. },
  450. {
  451. "variable": "acl",
  452. "label": "ACL Configuration",
  453. "schema": {
  454. "type": "dict",
  455. "show_if": [
  456. [
  457. "acl_enable",
  458. "=",
  459. true
  460. ]
  461. ],
  462. "attrs": [],
  463. "$ref": [
  464. "normalize/acl"
  465. ]
  466. }
  467. },
  468. {
  469. "variable": "path",
  470. "label": "Host Path",
  471. "description": "The host path to use for storage.",
  472. "schema": {
  473. "type": "hostpath",
  474. "show_if": [
  475. [
  476. "acl_enable",
  477. "=",
  478. false
  479. ]
  480. ],
  481. "required": true
  482. }
  483. }
  484. ]
  485. }
  486. }
  487. ]
  488. }
  489. },
  490. {
  491. "variable": "postgres_data",
  492. "label": "Invidious Postgres Data Storage",
  493. "description": "The path to store Invidious Postgres Data.",
  494. "schema": {
  495. "type": "dict",
  496. "attrs": [
  497. {
  498. "variable": "type",
  499. "label": "Type",
  500. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  501. "schema": {
  502. "type": "string",
  503. "required": true,
  504. "default": "ix_volume",
  505. "enum": [
  506. {
  507. "value": "host_path",
  508. "description": "Host Path (Path that already exists on the system)"
  509. },
  510. {
  511. "value": "ix_volume",
  512. "description": "ixVolume (Dataset created automatically by the system)"
  513. }
  514. ]
  515. }
  516. },
  517. {
  518. "variable": "ix_volume_config",
  519. "label": "ixVolume Configuration",
  520. "description": "The configuration for the ixVolume dataset.",
  521. "schema": {
  522. "type": "dict",
  523. "show_if": [
  524. [
  525. "type",
  526. "=",
  527. "ix_volume"
  528. ]
  529. ],
  530. "$ref": [
  531. "normalize/ix_volume"
  532. ],
  533. "attrs": [
  534. {
  535. "variable": "acl_enable",
  536. "label": "Enable ACL",
  537. "description": "Enable ACL for the storage.",
  538. "schema": {
  539. "type": "boolean",
  540. "default": false
  541. }
  542. },
  543. {
  544. "variable": "dataset_name",
  545. "label": "Dataset Name",
  546. "description": "The name of the dataset to use for storage.",
  547. "schema": {
  548. "type": "string",
  549. "required": true,
  550. "hidden": true,
  551. "default": "postgres_data"
  552. }
  553. },
  554. {
  555. "variable": "acl_entries",
  556. "label": "ACL Configuration",
  557. "schema": {
  558. "type": "dict",
  559. "show_if": [
  560. [
  561. "acl_enable",
  562. "=",
  563. true
  564. ]
  565. ],
  566. "attrs": []
  567. }
  568. }
  569. ]
  570. }
  571. },
  572. {
  573. "variable": "host_path_config",
  574. "label": "Host Path Configuration",
  575. "schema": {
  576. "type": "dict",
  577. "show_if": [
  578. [
  579. "type",
  580. "=",
  581. "host_path"
  582. ]
  583. ],
  584. "attrs": [
  585. {
  586. "variable": "acl_enable",
  587. "label": "Enable ACL",
  588. "description": "Enable ACL for the storage.",
  589. "schema": {
  590. "type": "boolean",
  591. "default": false
  592. }
  593. },
  594. {
  595. "variable": "acl",
  596. "label": "ACL Configuration",
  597. "schema": {
  598. "type": "dict",
  599. "show_if": [
  600. [
  601. "acl_enable",
  602. "=",
  603. true
  604. ]
  605. ],
  606. "attrs": [],
  607. "$ref": [
  608. "normalize/acl"
  609. ]
  610. }
  611. },
  612. {
  613. "variable": "path",
  614. "label": "Host Path",
  615. "description": "The host path to use for storage.",
  616. "schema": {
  617. "type": "hostpath",
  618. "show_if": [
  619. [
  620. "acl_enable",
  621. "=",
  622. false
  623. ]
  624. ],
  625. "required": true
  626. }
  627. },
  628. {
  629. "variable": "auto_permissions",
  630. "label": "Automatic Permissions",
  631. "description": "Automatically set permissions for the host path.\nEnabling this, will check the top level directory,</br>\nIf it finds incorrect permissions, it will `chown` the\nhost path to the user and group required for the\npostgres container.\n",
  632. "schema": {
  633. "type": "boolean",
  634. "default": false,
  635. "show_if": [
  636. [
  637. "acl_enable",
  638. "=",
  639. false
  640. ]
  641. ]
  642. }
  643. }
  644. ]
  645. }
  646. }
  647. ]
  648. }
  649. },
  650. {
  651. "variable": "additional_storage",
  652. "label": "Additional Storage",
  653. "schema": {
  654. "type": "list",
  655. "default": [],
  656. "items": [
  657. {
  658. "variable": "storageEntry",
  659. "label": "Storage Entry",
  660. "schema": {
  661. "type": "dict",
  662. "attrs": [
  663. {
  664. "variable": "type",
  665. "label": "Type",
  666. "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",
  667. "schema": {
  668. "type": "string",
  669. "required": true,
  670. "default": "ix_volume",
  671. "enum": [
  672. {
  673. "value": "host_path",
  674. "description": "Host Path (Path that already exists on the system)"
  675. },
  676. {
  677. "value": "ix_volume",
  678. "description": "ixVolume (Dataset created automatically by the system)"
  679. },
  680. {
  681. "value": "cifs",
  682. "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
  683. }
  684. ]
  685. }
  686. },
  687. {
  688. "variable": "read_only",
  689. "label": "Read Only",
  690. "description": "Mount the volume as read only.",
  691. "schema": {
  692. "type": "boolean",
  693. "default": false
  694. }
  695. },
  696. {
  697. "variable": "mount_path",
  698. "label": "Mount Path",
  699. "description": "The path inside the container to mount the storage.",
  700. "schema": {
  701. "type": "path",
  702. "required": true
  703. }
  704. },
  705. {
  706. "variable": "host_path_config",
  707. "label": "Host Path Configuration",
  708. "schema": {
  709. "type": "dict",
  710. "show_if": [
  711. [
  712. "type",
  713. "=",
  714. "host_path"
  715. ]
  716. ],
  717. "attrs": [
  718. {
  719. "variable": "acl_enable",
  720. "label": "Enable ACL",
  721. "description": "Enable ACL for the storage.",
  722. "schema": {
  723. "type": "boolean",
  724. "default": false
  725. }
  726. },
  727. {
  728. "variable": "acl",
  729. "label": "ACL Configuration",
  730. "schema": {
  731. "type": "dict",
  732. "show_if": [
  733. [
  734. "acl_enable",
  735. "=",
  736. true
  737. ]
  738. ],
  739. "attrs": [],
  740. "$ref": [
  741. "normalize/acl"
  742. ]
  743. }
  744. },
  745. {
  746. "variable": "path",
  747. "label": "Host Path",
  748. "description": "The host path to use for storage.",
  749. "schema": {
  750. "type": "hostpath",
  751. "show_if": [
  752. [
  753. "acl_enable",
  754. "=",
  755. false
  756. ]
  757. ],
  758. "required": true
  759. }
  760. }
  761. ]
  762. }
  763. },
  764. {
  765. "variable": "ix_volume_config",
  766. "label": "ixVolume Configuration",
  767. "description": "The configuration for the ixVolume dataset.",
  768. "schema": {
  769. "type": "dict",
  770. "show_if": [
  771. [
  772. "type",
  773. "=",
  774. "ix_volume"
  775. ]
  776. ],
  777. "$ref": [
  778. "normalize/ix_volume"
  779. ],
  780. "attrs": [
  781. {
  782. "variable": "acl_enable",
  783. "label": "Enable ACL",
  784. "description": "Enable ACL for the storage.",
  785. "schema": {
  786. "type": "boolean",
  787. "default": false
  788. }
  789. },
  790. {
  791. "variable": "dataset_name",
  792. "label": "Dataset Name",
  793. "description": "The name of the dataset to use for storage.",
  794. "schema": {
  795. "type": "string",
  796. "required": true,
  797. "default": "storage_entry"
  798. }
  799. },
  800. {
  801. "variable": "acl_entries",
  802. "label": "ACL Configuration",
  803. "schema": {
  804. "type": "dict",
  805. "show_if": [
  806. [
  807. "acl_enable",
  808. "=",
  809. true
  810. ]
  811. ],
  812. "attrs": [],
  813. "$ref": [
  814. "normalize/acl"
  815. ]
  816. }
  817. }
  818. ]
  819. }
  820. },
  821. {
  822. "variable": "cifs_config",
  823. "label": "SMB Configuration",
  824. "description": "The configuration for the SMB dataset.",
  825. "schema": {
  826. "type": "dict",
  827. "show_if": [
  828. [
  829. "type",
  830. "=",
  831. "cifs"
  832. ]
  833. ],
  834. "attrs": [
  835. {
  836. "variable": "server",
  837. "label": "Server",
  838. "description": "The server to mount the SMB share.",
  839. "schema": {
  840. "type": "string",
  841. "required": true
  842. }
  843. },
  844. {
  845. "variable": "path",
  846. "label": "Path",
  847. "description": "The path to mount the SMB share.",
  848. "schema": {
  849. "type": "string",
  850. "required": true
  851. }
  852. },
  853. {
  854. "variable": "username",
  855. "label": "Username",
  856. "description": "The username to use for the SMB share.",
  857. "schema": {
  858. "type": "string",
  859. "required": true
  860. }
  861. },
  862. {
  863. "variable": "password",
  864. "label": "Password",
  865. "description": "The password to use for the SMB share.",
  866. "schema": {
  867. "type": "string",
  868. "required": true,
  869. "private": true
  870. }
  871. },
  872. {
  873. "variable": "domain",
  874. "label": "Domain",
  875. "description": "The domain to use for the SMB share.",
  876. "schema": {
  877. "type": "string"
  878. }
  879. }
  880. ]
  881. }
  882. }
  883. ]
  884. }
  885. }
  886. ]
  887. }
  888. }
  889. ]
  890. }
  891. },
  892. {
  893. "variable": "labels",
  894. "label": "",
  895. "group": "Labels Configuration",
  896. "schema": {
  897. "type": "list",
  898. "default": [],
  899. "items": [
  900. {
  901. "variable": "label",
  902. "label": "Label",
  903. "schema": {
  904. "type": "dict",
  905. "attrs": [
  906. {
  907. "variable": "key",
  908. "label": "Key",
  909. "schema": {
  910. "type": "string",
  911. "required": true
  912. }
  913. },
  914. {
  915. "variable": "value",
  916. "label": "Value",
  917. "schema": {
  918. "type": "string",
  919. "required": true
  920. }
  921. },
  922. {
  923. "variable": "containers",
  924. "label": "Containers",
  925. "description": "Containers where the label should be applied",
  926. "schema": {
  927. "type": "list",
  928. "items": [
  929. {
  930. "variable": "container",
  931. "label": "Container",
  932. "schema": {
  933. "type": "string",
  934. "required": true,
  935. "enum": [
  936. {
  937. "value": "invidious",
  938. "description": "invidious"
  939. },
  940. {
  941. "value": "signature-helper",
  942. "description": "signature-helper"
  943. },
  944. {
  945. "value": "postgres",
  946. "description": "postgres"
  947. }
  948. ]
  949. }
  950. }
  951. ]
  952. }
  953. }
  954. ]
  955. }
  956. }
  957. ]
  958. }
  959. },
  960. {
  961. "variable": "resources",
  962. "label": "",
  963. "group": "Resources Configuration",
  964. "schema": {
  965. "type": "dict",
  966. "attrs": [
  967. {
  968. "variable": "limits",
  969. "label": "Limits",
  970. "schema": {
  971. "type": "dict",
  972. "attrs": [
  973. {
  974. "variable": "cpus",
  975. "label": "CPUs",
  976. "description": "CPUs limit for Invidious.",
  977. "schema": {
  978. "type": "int",
  979. "default": 2,
  980. "required": true
  981. }
  982. },
  983. {
  984. "variable": "memory",
  985. "label": "Memory (in MB)",
  986. "description": "Memory limit for Invidious.",
  987. "schema": {
  988. "type": "int",
  989. "default": 4096,
  990. "required": true
  991. }
  992. }
  993. ]
  994. }
  995. }
  996. ]
  997. }
  998. }
  999. ]
  1000. },
  1001. "readme": "<h1>Invidious</h1> <p><a href=\"https://invidious.io/\">Invidious</a> is an alternative front-end to YouTube.</p> <p>Additional configuration can be specified</p> <ul> <li>Via <a href=\"https://github.com/iv-org/invidious/pull/1702\">environment variables</a></li> <li>By editing the file <code>/config/config.yaml</code> (see <a href=\"https://github.com/iv-org/invidious/blob/master/config/config.example.yml\">example</a>)</li> </ul>",
  1002. "changelog": null,
  1003. "chart_metadata": {
  1004. "annotations": {
  1005. "min_scale_version": "24.10.2.2"
  1006. },
  1007. "app_version": "2.20250517.0",
  1008. "capabilities": [],
  1009. "categories": [
  1010. "media"
  1011. ],
  1012. "changelog_url": "https://github.com/iv-org/invidious/blob/master/CHANGELOG.md",
  1013. "date_added": "2024-09-05",
  1014. "description": "Invidious is an alternative front-end to YouTube",
  1015. "home": "https://invidious.io/",
  1016. "host_mounts": [],
  1017. "icon": "https://media.sys.truenas.net/apps/invidious/icons/icon.svg",
  1018. "keywords": [
  1019. "youtube"
  1020. ],
  1021. "lib_version": "2.1.49",
  1022. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  1023. "maintainers": [
  1024. {
  1025. "email": "dev@ixsystems.com",
  1026. "name": "truenas",
  1027. "url": "https://www.truenas.com/"
  1028. }
  1029. ],
  1030. "name": "invidious",
  1031. "run_as_context": [
  1032. {
  1033. "description": "Invidious runs as non-root user.",
  1034. "gid": 1000,
  1035. "group_name": "invidious",
  1036. "uid": 1000,
  1037. "user_name": "invidious"
  1038. },
  1039. {
  1040. "description": "Postgres runs as non-root user.",
  1041. "gid": 999,
  1042. "group_name": "postgres",
  1043. "uid": 999,
  1044. "user_name": "postgres"
  1045. }
  1046. ],
  1047. "screenshots": [
  1048. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot1.png",
  1049. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot2.png",
  1050. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot3.png",
  1051. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot4.png",
  1052. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot5.png",
  1053. "https://media.sys.truenas.net/apps/invidious/screenshots/screenshot6.png"
  1054. ],
  1055. "sources": [
  1056. "https://invidious.io/",
  1057. "https://quay.io/repository/invidious"
  1058. ],
  1059. "title": "Invidious",
  1060. "train": "community",
  1061. "version": "1.3.12"
  1062. }
  1063. }
  1064. }