app_versions.json 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779
  1. {
  2. "1.0.3": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/apps/apps/trains/community/byparr/1.0.3",
  7. "last_update": "2025-09-02 11:33:24",
  8. "required_features": [],
  9. "human_version": "1.2.1_1.0.3",
  10. "version": "1.0.3",
  11. "app_metadata": {
  12. "app_version": "1.2.1",
  13. "capabilities": [],
  14. "categories": [
  15. "networking"
  16. ],
  17. "changelog_url": "https://github.com/ThePhaseless/Byparr/releases",
  18. "date_added": "2025-07-14",
  19. "description": "Byparr is a FlareSolverr drop-in replacement with FastAPI and nodriver",
  20. "home": "https://github.com/ThePhaseless/Byparr",
  21. "host_mounts": [],
  22. "icon": "https://media.sys.truenas.net/apps/byparr/icons/icon.png",
  23. "keywords": [
  24. "networking",
  25. "captcha"
  26. ],
  27. "lib_version": "2.1.49",
  28. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  29. "maintainers": [
  30. {
  31. "email": "dev@ixsystems.com",
  32. "name": "truenas",
  33. "url": "https://www.truenas.com/"
  34. }
  35. ],
  36. "name": "byparr",
  37. "run_as_context": [
  38. {
  39. "description": "Byparr runs as root user.",
  40. "gid": 0,
  41. "group_name": "root",
  42. "uid": 0,
  43. "user_name": "root"
  44. }
  45. ],
  46. "screenshots": [],
  47. "sources": [
  48. "https://github.com/ThePhaseless/Byparr"
  49. ],
  50. "title": "Byparr",
  51. "train": "community",
  52. "version": "1.0.3"
  53. },
  54. "schema": {
  55. "groups": [
  56. {
  57. "name": "Byparr Configuration",
  58. "description": "Configure Byparr"
  59. },
  60. {
  61. "name": "Network Configuration",
  62. "description": "Configure Network for Byparr"
  63. },
  64. {
  65. "name": "Storage Configuration",
  66. "description": "Configure Storage for Byparr"
  67. },
  68. {
  69. "name": "Labels Configuration",
  70. "description": "Configure Labels for Byparr"
  71. },
  72. {
  73. "name": "Resources Configuration",
  74. "description": "Configure Resources for Byparr"
  75. }
  76. ],
  77. "questions": [
  78. {
  79. "variable": "TZ",
  80. "group": "Byparr Configuration",
  81. "label": "Timezone",
  82. "schema": {
  83. "type": "string",
  84. "default": "Etc/UTC",
  85. "required": true,
  86. "$ref": [
  87. "definitions/timezone"
  88. ]
  89. }
  90. },
  91. {
  92. "variable": "byparr",
  93. "label": "",
  94. "group": "Byparr Configuration",
  95. "schema": {
  96. "type": "dict",
  97. "attrs": [
  98. {
  99. "variable": "additional_envs",
  100. "label": "Additional Environment Variables",
  101. "schema": {
  102. "type": "list",
  103. "default": [],
  104. "items": [
  105. {
  106. "variable": "env",
  107. "label": "Environment Variable",
  108. "schema": {
  109. "type": "dict",
  110. "attrs": [
  111. {
  112. "variable": "name",
  113. "label": "Name",
  114. "schema": {
  115. "type": "string",
  116. "required": true
  117. }
  118. },
  119. {
  120. "variable": "value",
  121. "label": "Value",
  122. "schema": {
  123. "type": "string"
  124. }
  125. }
  126. ]
  127. }
  128. }
  129. ]
  130. }
  131. }
  132. ]
  133. }
  134. },
  135. {
  136. "variable": "network",
  137. "label": "",
  138. "group": "Network Configuration",
  139. "schema": {
  140. "type": "dict",
  141. "attrs": [
  142. {
  143. "variable": "web_port",
  144. "label": "WebUI Port",
  145. "schema": {
  146. "type": "dict",
  147. "show_if": [
  148. [
  149. "host_network",
  150. "=",
  151. false
  152. ]
  153. ],
  154. "attrs": [
  155. {
  156. "variable": "bind_mode",
  157. "label": "Port Bind Mode",
  158. "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",
  159. "schema": {
  160. "type": "string",
  161. "default": "published",
  162. "enum": [
  163. {
  164. "value": "published",
  165. "description": "Publish port on the host for external access"
  166. },
  167. {
  168. "value": "exposed",
  169. "description": "Expose port for inter-container communication"
  170. },
  171. {
  172. "value": "",
  173. "description": "None"
  174. }
  175. ]
  176. }
  177. },
  178. {
  179. "variable": "port_number",
  180. "label": "Port Number",
  181. "schema": {
  182. "type": "int",
  183. "default": 30230,
  184. "show_if": [
  185. [
  186. "bind_mode",
  187. "=",
  188. "published"
  189. ]
  190. ],
  191. "min": 1,
  192. "max": 65535,
  193. "required": true
  194. }
  195. },
  196. {
  197. "variable": "host_ips",
  198. "label": "Host IPs",
  199. "description": "IPs on the host to bind this port",
  200. "schema": {
  201. "type": "list",
  202. "show_if": [
  203. [
  204. "bind_mode",
  205. "=",
  206. "published"
  207. ]
  208. ],
  209. "default": [],
  210. "items": [
  211. {
  212. "variable": "host_ip",
  213. "label": "Host IP",
  214. "schema": {
  215. "type": "string",
  216. "required": true,
  217. "$ref": [
  218. "definitions/node_bind_ip"
  219. ]
  220. }
  221. }
  222. ]
  223. }
  224. }
  225. ]
  226. }
  227. },
  228. {
  229. "variable": "host_network",
  230. "label": "Host Network",
  231. "description": "Bind to the host network. It's recommended to keep this disabled.\n",
  232. "schema": {
  233. "type": "boolean",
  234. "default": false
  235. }
  236. }
  237. ]
  238. }
  239. },
  240. {
  241. "variable": "storage",
  242. "label": "",
  243. "group": "Storage Configuration",
  244. "schema": {
  245. "type": "dict",
  246. "attrs": [
  247. {
  248. "variable": "screenshots",
  249. "label": "Screenshots Storage",
  250. "schema": {
  251. "type": "dict",
  252. "attrs": [
  253. {
  254. "variable": "type",
  255. "label": "Type",
  256. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  257. "schema": {
  258. "type": "string",
  259. "required": true,
  260. "default": "ix_volume",
  261. "enum": [
  262. {
  263. "value": "host_path",
  264. "description": "Host Path (Path that already exists on the system)"
  265. },
  266. {
  267. "value": "ix_volume",
  268. "description": "ixVolume (Dataset created automatically by the system)"
  269. }
  270. ]
  271. }
  272. },
  273. {
  274. "variable": "ix_volume_config",
  275. "label": "ixVolume Configuration",
  276. "description": "The configuration for the ixVolume dataset.",
  277. "schema": {
  278. "type": "dict",
  279. "show_if": [
  280. [
  281. "type",
  282. "=",
  283. "ix_volume"
  284. ]
  285. ],
  286. "$ref": [
  287. "normalize/ix_volume"
  288. ],
  289. "attrs": [
  290. {
  291. "variable": "acl_enable",
  292. "label": "Enable ACL",
  293. "description": "Enable ACL for the storage.",
  294. "schema": {
  295. "type": "boolean",
  296. "default": false
  297. }
  298. },
  299. {
  300. "variable": "dataset_name",
  301. "label": "Dataset Name",
  302. "description": "The name of the dataset to use for storage.",
  303. "schema": {
  304. "type": "string",
  305. "required": true,
  306. "hidden": true,
  307. "default": "screenshots"
  308. }
  309. },
  310. {
  311. "variable": "acl_entries",
  312. "label": "ACL Configuration",
  313. "schema": {
  314. "type": "dict",
  315. "show_if": [
  316. [
  317. "acl_enable",
  318. "=",
  319. true
  320. ]
  321. ],
  322. "attrs": []
  323. }
  324. }
  325. ]
  326. }
  327. },
  328. {
  329. "variable": "host_path_config",
  330. "label": "Host Path Configuration",
  331. "schema": {
  332. "type": "dict",
  333. "show_if": [
  334. [
  335. "type",
  336. "=",
  337. "host_path"
  338. ]
  339. ],
  340. "attrs": [
  341. {
  342. "variable": "acl_enable",
  343. "label": "Enable ACL",
  344. "description": "Enable ACL for the storage.",
  345. "schema": {
  346. "type": "boolean",
  347. "default": false
  348. }
  349. },
  350. {
  351. "variable": "acl",
  352. "label": "ACL Configuration",
  353. "schema": {
  354. "type": "dict",
  355. "show_if": [
  356. [
  357. "acl_enable",
  358. "=",
  359. true
  360. ]
  361. ],
  362. "attrs": [],
  363. "$ref": [
  364. "normalize/acl"
  365. ]
  366. }
  367. },
  368. {
  369. "variable": "path",
  370. "label": "Host Path",
  371. "description": "The host path to use for storage.",
  372. "schema": {
  373. "type": "hostpath",
  374. "show_if": [
  375. [
  376. "acl_enable",
  377. "=",
  378. false
  379. ]
  380. ],
  381. "required": true
  382. }
  383. }
  384. ]
  385. }
  386. }
  387. ]
  388. }
  389. },
  390. {
  391. "variable": "additional_storage",
  392. "label": "Additional Storage",
  393. "schema": {
  394. "type": "list",
  395. "default": [],
  396. "items": [
  397. {
  398. "variable": "storageEntry",
  399. "label": "Storage Entry",
  400. "schema": {
  401. "type": "dict",
  402. "attrs": [
  403. {
  404. "variable": "type",
  405. "label": "Type",
  406. "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",
  407. "schema": {
  408. "type": "string",
  409. "required": true,
  410. "default": "ix_volume",
  411. "enum": [
  412. {
  413. "value": "host_path",
  414. "description": "Host Path (Path that already exists on the system)"
  415. },
  416. {
  417. "value": "ix_volume",
  418. "description": "ixVolume (Dataset created automatically by the system)"
  419. },
  420. {
  421. "value": "cifs",
  422. "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
  423. }
  424. ]
  425. }
  426. },
  427. {
  428. "variable": "read_only",
  429. "label": "Read Only",
  430. "description": "Mount the volume as read only.",
  431. "schema": {
  432. "type": "boolean",
  433. "default": false
  434. }
  435. },
  436. {
  437. "variable": "mount_path",
  438. "label": "Mount Path",
  439. "description": "The path inside the container to mount the storage.",
  440. "schema": {
  441. "type": "path",
  442. "required": true
  443. }
  444. },
  445. {
  446. "variable": "host_path_config",
  447. "label": "Host Path Configuration",
  448. "schema": {
  449. "type": "dict",
  450. "show_if": [
  451. [
  452. "type",
  453. "=",
  454. "host_path"
  455. ]
  456. ],
  457. "attrs": [
  458. {
  459. "variable": "acl_enable",
  460. "label": "Enable ACL",
  461. "description": "Enable ACL for the storage.",
  462. "schema": {
  463. "type": "boolean",
  464. "default": false
  465. }
  466. },
  467. {
  468. "variable": "acl",
  469. "label": "ACL Configuration",
  470. "schema": {
  471. "type": "dict",
  472. "show_if": [
  473. [
  474. "acl_enable",
  475. "=",
  476. true
  477. ]
  478. ],
  479. "attrs": [],
  480. "$ref": [
  481. "normalize/acl"
  482. ]
  483. }
  484. },
  485. {
  486. "variable": "path",
  487. "label": "Host Path",
  488. "description": "The host path to use for storage.",
  489. "schema": {
  490. "type": "hostpath",
  491. "show_if": [
  492. [
  493. "acl_enable",
  494. "=",
  495. false
  496. ]
  497. ],
  498. "required": true
  499. }
  500. }
  501. ]
  502. }
  503. },
  504. {
  505. "variable": "ix_volume_config",
  506. "label": "ixVolume Configuration",
  507. "description": "The configuration for the ixVolume dataset.",
  508. "schema": {
  509. "type": "dict",
  510. "show_if": [
  511. [
  512. "type",
  513. "=",
  514. "ix_volume"
  515. ]
  516. ],
  517. "$ref": [
  518. "normalize/ix_volume"
  519. ],
  520. "attrs": [
  521. {
  522. "variable": "acl_enable",
  523. "label": "Enable ACL",
  524. "description": "Enable ACL for the storage.",
  525. "schema": {
  526. "type": "boolean",
  527. "default": false
  528. }
  529. },
  530. {
  531. "variable": "dataset_name",
  532. "label": "Dataset Name",
  533. "description": "The name of the dataset to use for storage.",
  534. "schema": {
  535. "type": "string",
  536. "required": true,
  537. "default": "storage_entry"
  538. }
  539. },
  540. {
  541. "variable": "acl_entries",
  542. "label": "ACL Configuration",
  543. "schema": {
  544. "type": "dict",
  545. "show_if": [
  546. [
  547. "acl_enable",
  548. "=",
  549. true
  550. ]
  551. ],
  552. "attrs": [],
  553. "$ref": [
  554. "normalize/acl"
  555. ]
  556. }
  557. }
  558. ]
  559. }
  560. },
  561. {
  562. "variable": "cifs_config",
  563. "label": "SMB Configuration",
  564. "description": "The configuration for the SMB dataset.",
  565. "schema": {
  566. "type": "dict",
  567. "show_if": [
  568. [
  569. "type",
  570. "=",
  571. "cifs"
  572. ]
  573. ],
  574. "attrs": [
  575. {
  576. "variable": "server",
  577. "label": "Server",
  578. "description": "The server to mount the SMB share.",
  579. "schema": {
  580. "type": "string",
  581. "required": true
  582. }
  583. },
  584. {
  585. "variable": "path",
  586. "label": "Path",
  587. "description": "The path to mount the SMB share.",
  588. "schema": {
  589. "type": "string",
  590. "required": true
  591. }
  592. },
  593. {
  594. "variable": "username",
  595. "label": "Username",
  596. "description": "The username to use for the SMB share.",
  597. "schema": {
  598. "type": "string",
  599. "required": true
  600. }
  601. },
  602. {
  603. "variable": "password",
  604. "label": "Password",
  605. "description": "The password to use for the SMB share.",
  606. "schema": {
  607. "type": "string",
  608. "required": true,
  609. "private": true
  610. }
  611. },
  612. {
  613. "variable": "domain",
  614. "label": "Domain",
  615. "description": "The domain to use for the SMB share.",
  616. "schema": {
  617. "type": "string"
  618. }
  619. }
  620. ]
  621. }
  622. }
  623. ]
  624. }
  625. }
  626. ]
  627. }
  628. }
  629. ]
  630. }
  631. },
  632. {
  633. "variable": "labels",
  634. "label": "",
  635. "group": "Labels Configuration",
  636. "schema": {
  637. "type": "list",
  638. "default": [],
  639. "items": [
  640. {
  641. "variable": "label",
  642. "label": "Label",
  643. "schema": {
  644. "type": "dict",
  645. "attrs": [
  646. {
  647. "variable": "key",
  648. "label": "Key",
  649. "schema": {
  650. "type": "string",
  651. "required": true
  652. }
  653. },
  654. {
  655. "variable": "value",
  656. "label": "Value",
  657. "schema": {
  658. "type": "string",
  659. "required": true
  660. }
  661. },
  662. {
  663. "variable": "containers",
  664. "label": "Containers",
  665. "description": "Containers where the label should be applied",
  666. "schema": {
  667. "type": "list",
  668. "items": [
  669. {
  670. "variable": "container",
  671. "label": "Container",
  672. "schema": {
  673. "type": "string",
  674. "required": true,
  675. "enum": [
  676. {
  677. "value": "byparr",
  678. "description": "byparr"
  679. }
  680. ]
  681. }
  682. }
  683. ]
  684. }
  685. }
  686. ]
  687. }
  688. }
  689. ]
  690. }
  691. },
  692. {
  693. "variable": "resources",
  694. "label": "",
  695. "group": "Resources Configuration",
  696. "schema": {
  697. "type": "dict",
  698. "attrs": [
  699. {
  700. "variable": "limits",
  701. "label": "Limits",
  702. "schema": {
  703. "type": "dict",
  704. "attrs": [
  705. {
  706. "variable": "cpus",
  707. "label": "CPUs",
  708. "description": "CPUs limit for Byparr.",
  709. "schema": {
  710. "type": "int",
  711. "default": 2,
  712. "required": true
  713. }
  714. },
  715. {
  716. "variable": "memory",
  717. "label": "Memory (in MB)",
  718. "description": "Memory limit for Byparr.",
  719. "schema": {
  720. "type": "int",
  721. "default": 4096,
  722. "required": true
  723. }
  724. }
  725. ]
  726. }
  727. }
  728. ]
  729. }
  730. }
  731. ]
  732. },
  733. "readme": "<h1>Byparr</h1> <p><a href=\"https://github.com/ThePhaseless/Byparr\">Byparr</a> is a FlareSolverr drop-in replacement with FastAPI and nodriver</p>",
  734. "changelog": null,
  735. "chart_metadata": {
  736. "app_version": "1.2.1",
  737. "capabilities": [],
  738. "categories": [
  739. "networking"
  740. ],
  741. "changelog_url": "https://github.com/ThePhaseless/Byparr/releases",
  742. "date_added": "2025-07-14",
  743. "description": "Byparr is a FlareSolverr drop-in replacement with FastAPI and nodriver",
  744. "home": "https://github.com/ThePhaseless/Byparr",
  745. "host_mounts": [],
  746. "icon": "https://media.sys.truenas.net/apps/byparr/icons/icon.png",
  747. "keywords": [
  748. "networking",
  749. "captcha"
  750. ],
  751. "lib_version": "2.1.49",
  752. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  753. "maintainers": [
  754. {
  755. "email": "dev@ixsystems.com",
  756. "name": "truenas",
  757. "url": "https://www.truenas.com/"
  758. }
  759. ],
  760. "name": "byparr",
  761. "run_as_context": [
  762. {
  763. "description": "Byparr runs as root user.",
  764. "gid": 0,
  765. "group_name": "root",
  766. "uid": 0,
  767. "user_name": "root"
  768. }
  769. ],
  770. "screenshots": [],
  771. "sources": [
  772. "https://github.com/ThePhaseless/Byparr"
  773. ],
  774. "title": "Byparr",
  775. "train": "community",
  776. "version": "1.0.3"
  777. }
  778. }
  779. }