app_versions.json 90 KB

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