app_versions.json 89 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506
  1. {
  2. "1.2.10": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/apps/apps/trains/community/piwigo/1.2.10",
  7. "last_update": "2025-09-02 11:33:24",
  8. "required_features": [],
  9. "human_version": "15.6.0_1.2.10",
  10. "version": "1.2.10",
  11. "app_metadata": {
  12. "annotations": {
  13. "min_scale_version": "24.10.2.2"
  14. },
  15. "app_version": "15.6.0",
  16. "capabilities": [
  17. {
  18. "description": "Piwigo is able to change file ownership arbitrarily",
  19. "name": "CHOWN"
  20. },
  21. {
  22. "description": "Piwigo is able to bypass file permission checks",
  23. "name": "DAC_OVERRIDE"
  24. },
  25. {
  26. "description": "Piwigo is able to bypass permission checks for file operations",
  27. "name": "FOWNER"
  28. },
  29. {
  30. "description": "Piwigo is able to bind to privileged ports (< 1024)",
  31. "name": "NET_BIND_SERVICE"
  32. },
  33. {
  34. "description": "Piwigo is able to change group ID of processes",
  35. "name": "SETGID"
  36. },
  37. {
  38. "description": "Piwigo is able to change user ID of processes",
  39. "name": "SETUID"
  40. }
  41. ],
  42. "categories": [
  43. "media"
  44. ],
  45. "changelog_url": "https://piwigo.org/forum/viewforum.php?id=23",
  46. "date_added": "2024-09-19",
  47. "description": "Piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures.",
  48. "home": "https://piwigo.org",
  49. "host_mounts": [],
  50. "icon": "https://media.sys.truenas.net/apps/piwigo/icons/icon.svg",
  51. "keywords": [
  52. "photo",
  53. "gallery"
  54. ],
  55. "lib_version": "2.1.49",
  56. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  57. "maintainers": [
  58. {
  59. "email": "dev@ixsystems.com",
  60. "name": "truenas",
  61. "url": "https://www.truenas.com/"
  62. }
  63. ],
  64. "name": "piwigo",
  65. "run_as_context": [
  66. {
  67. "description": "Piwigo runs as root user.",
  68. "gid": 0,
  69. "group_name": "root",
  70. "uid": 0,
  71. "user_name": "root"
  72. },
  73. {
  74. "description": "MariaDB runs as non-root user.",
  75. "gid": 999,
  76. "group_name": "mariadb",
  77. "uid": 999,
  78. "user_name": "mariadb"
  79. }
  80. ],
  81. "screenshots": [
  82. "https://media.sys.truenas.net/apps/piwigo/screenshots/screenshot1.png",
  83. "https://media.sys.truenas.net/apps/piwigo/screenshots/screenshot2.png"
  84. ],
  85. "sources": [
  86. "https://github.com/linuxserver/docker-piwigo"
  87. ],
  88. "title": "Piwigo",
  89. "train": "community",
  90. "version": "1.2.10"
  91. },
  92. "schema": {
  93. "groups": [
  94. {
  95. "name": "Piwigo Configuration",
  96. "description": "Configure Piwigo"
  97. },
  98. {
  99. "name": "User and Group Configuration",
  100. "description": "Configure User and Group for Piwigo"
  101. },
  102. {
  103. "name": "Network Configuration",
  104. "description": "Configure Network for Piwigo"
  105. },
  106. {
  107. "name": "Storage Configuration",
  108. "description": "Configure Storage for Piwigo"
  109. },
  110. {
  111. "name": "Labels Configuration",
  112. "description": "Configure Labels for Piwigo"
  113. },
  114. {
  115. "name": "Resources Configuration",
  116. "description": "Configure Resources for Piwigo"
  117. }
  118. ],
  119. "questions": [
  120. {
  121. "variable": "piwigo",
  122. "label": "",
  123. "group": "Piwigo Configuration",
  124. "schema": {
  125. "type": "dict",
  126. "attrs": [
  127. {
  128. "variable": "db_password",
  129. "label": "Database Password",
  130. "description": "The database password for Piwigo.",
  131. "schema": {
  132. "type": "string",
  133. "default": "",
  134. "required": true,
  135. "private": true
  136. }
  137. },
  138. {
  139. "variable": "db_root_password",
  140. "label": "Root Database Password",
  141. "description": "The root database password for Piwigo.",
  142. "schema": {
  143. "type": "string",
  144. "default": "",
  145. "required": true,
  146. "private": true
  147. }
  148. },
  149. {
  150. "variable": "admin_name",
  151. "label": "Admin Name",
  152. "description": "The admin name for Piwigo.</br>\nOnly used when Piwigo is first installed.</br>\nYou can change it later in the Piwigo WebUI.\n",
  153. "schema": {
  154. "type": "string",
  155. "required": true,
  156. "immutable": true,
  157. "default": ""
  158. }
  159. },
  160. {
  161. "variable": "admin_password",
  162. "label": "Admin Password",
  163. "description": "The admin password for Piwigo.</br>\nOnly used when Piwigo is first installed.</br>\nYou can change it later in the Piwigo WebUI.\n",
  164. "schema": {
  165. "type": "string",
  166. "required": true,
  167. "immutable": true,
  168. "password": true,
  169. "default": ""
  170. }
  171. },
  172. {
  173. "variable": "admin_email",
  174. "label": "Admin Mail",
  175. "description": "The admin mail for Piwigo.</br>\nOnly used when Piwigo is first installed.</br>\nYou can change it later in the Piwigo WebUI.\n",
  176. "schema": {
  177. "type": "string",
  178. "valid_chars": "^.+@.+\\..+$",
  179. "valid_chars_error": "The email address is not valid.",
  180. "required": true,
  181. "immutable": true,
  182. "default": ""
  183. }
  184. },
  185. {
  186. "variable": "language",
  187. "label": "Language",
  188. "description": "The language for Piwigo.</br>\nOnly used when Piwigo is first installed.\n",
  189. "schema": {
  190. "type": "string",
  191. "required": true,
  192. "immutable": true,
  193. "default": "en_UK",
  194. "enum": [
  195. {
  196. "value": "af_ZA",
  197. "description": "Afrikaans [ZA]"
  198. },
  199. {
  200. "value": "es_AR",
  201. "description": "Argentina [AR]"
  202. },
  203. {
  204. "value": "az_AZ",
  205. "description": "Az\u0259rbaycanca [AZ]"
  206. },
  207. {
  208. "value": "id_ID",
  209. "description": "Bahasa Indonesia [ID]"
  210. },
  211. {
  212. "value": "pt_BR",
  213. "description": "Brasil [BR]"
  214. },
  215. {
  216. "value": "br_FR",
  217. "description": "Brezhoneg [FR]"
  218. },
  219. {
  220. "value": "ca_ES",
  221. "description": "Catal\u00e0 [CA]"
  222. },
  223. {
  224. "value": "da_DK",
  225. "description": "Dansk [DK]"
  226. },
  227. {
  228. "value": "de_DE",
  229. "description": "Deutsch [DE]"
  230. },
  231. {
  232. "value": "dv_MV",
  233. "description": "Dhivehi [MV]"
  234. },
  235. {
  236. "value": "en_GB",
  237. "description": "English [GB]"
  238. },
  239. {
  240. "value": "en_UK",
  241. "description": "English [UK]"
  242. },
  243. {
  244. "value": "en_US",
  245. "description": "English [US]"
  246. },
  247. {
  248. "value": "es_ES",
  249. "description": "Espa\u00f1ol [ES]"
  250. },
  251. {
  252. "value": "eo_EO",
  253. "description": "Esperanto [EO]"
  254. },
  255. {
  256. "value": "et_EE",
  257. "description": "Estonian [EE]"
  258. },
  259. {
  260. "value": "eu_ES",
  261. "description": "Euskara [ES]"
  262. },
  263. {
  264. "value": "fi_FI",
  265. "description": "Finnish [FI]"
  266. },
  267. {
  268. "value": "fr_FR",
  269. "description": "Fran\u00e7ais [FR]"
  270. },
  271. {
  272. "value": "fr_CA",
  273. "description": "Fran\u00e7ais [QC]"
  274. },
  275. {
  276. "value": "ga_IE",
  277. "description": "Gaeilge [IE]"
  278. },
  279. {
  280. "value": "gl_ES",
  281. "description": "Galego [ES]"
  282. },
  283. {
  284. "value": "hr_HR",
  285. "description": "Hrvatski [HR]"
  286. },
  287. {
  288. "value": "it_IT",
  289. "description": "Italiano [IT]"
  290. },
  291. {
  292. "value": "lv_LV",
  293. "description": "Latvie\u0161u [LV]"
  294. },
  295. {
  296. "value": "lt_LT",
  297. "description": "Lietuviu [LT]"
  298. },
  299. {
  300. "value": "lb_LU",
  301. "description": "L\u00ebtzebuergesch [LU]"
  302. },
  303. {
  304. "value": "hu_HU",
  305. "description": "Magyar [HU]"
  306. },
  307. {
  308. "value": "ms_MY",
  309. "description": "Malay [MY]"
  310. },
  311. {
  312. "value": "es_MX",
  313. "description": "M\u00e9xico [MX]"
  314. },
  315. {
  316. "value": "nl_NL",
  317. "description": "Nederlands [NL]"
  318. },
  319. {
  320. "value": "nb_NO",
  321. "description": "Norsk bokm\u00e5l [NO]"
  322. },
  323. {
  324. "value": "nn_NO",
  325. "description": "Norwegian nynorsk [NO]"
  326. },
  327. {
  328. "value": "pl_PL",
  329. "description": "Polski [PL]"
  330. },
  331. {
  332. "value": "pt_PT",
  333. "description": "Portugu\u00eas [PT]"
  334. },
  335. {
  336. "value": "ro_RO",
  337. "description": "Rom\u00e2n\u0103 [RO]"
  338. },
  339. {
  340. "value": "sk_SK",
  341. "description": "Slovensky [SK]"
  342. },
  343. {
  344. "value": "sl_SI",
  345. "description": "Sloven\u0161cina [SI]"
  346. },
  347. {
  348. "value": "sh_RS",
  349. "description": "Srpski [SR]"
  350. },
  351. {
  352. "value": "sv_SE",
  353. "description": "Svenska [SE]"
  354. },
  355. {
  356. "value": "vi_VN",
  357. "description": "Ti\u1ebfng Vi\u1ec7t [VN]"
  358. },
  359. {
  360. "value": "tr_TR",
  361. "description": "T\u00fcrk\u00e7e [TR]"
  362. },
  363. {
  364. "value": "wo_SN",
  365. "description": "Wolof [SN]"
  366. },
  367. {
  368. "value": "is_IS",
  369. "description": "\u00cdslenska [IS]"
  370. },
  371. {
  372. "value": "cs_CZ",
  373. "description": "\u010cesky [CZ]"
  374. },
  375. {
  376. "value": "el_GR",
  377. "description": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac [GR]"
  378. },
  379. {
  380. "value": "bg_BG",
  381. "description": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 [BG]"
  382. },
  383. {
  384. "value": "mk_MK",
  385. "description": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 [MK]"
  386. },
  387. {
  388. "value": "mn_MN",
  389. "description": "\u041c\u043e\u043d\u0433\u043e\u043b [MN]"
  390. },
  391. {
  392. "value": "ru_RU",
  393. "description": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439 [RU]"
  394. },
  395. {
  396. "value": "sr_RS",
  397. "description": "\u0421\u0440\u043f\u0441\u043a\u0438 [SR]"
  398. },
  399. {
  400. "value": "uk_UA",
  401. "description": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430 [UA]"
  402. },
  403. {
  404. "value": "he_IL",
  405. "description": "\u05e2\u05d1\u05e8\u05d9\u05ea [IL]"
  406. },
  407. {
  408. "value": "ar_EG",
  409. "description": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u0645\u0635"
  410. },
  411. {
  412. "value": "ar_SA",
  413. "description": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629 [AR]"
  414. },
  415. {
  416. "value": "ar_MA",
  417. "description": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629 [MA]"
  418. },
  419. {
  420. "value": "fa_IR",
  421. "description": "\u067e\u0627\u0631\u0633\u06cc [IR]"
  422. },
  423. {
  424. "value": "kok_IN",
  425. "description": "\u0915\u094b\u0902\u0915\u0923\u0940 [IN]"
  426. },
  427. {
  428. "value": "bn_IN",
  429. "description": "\u09ac\u09be\u0982\u09b2\u09be[IN]"
  430. },
  431. {
  432. "value": "gu_IN",
  433. "description": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0[IN]"
  434. },
  435. {
  436. "value": "ta_IN",
  437. "description": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd [IN]"
  438. },
  439. {
  440. "value": "kn_IN",
  441. "description": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1 [IN]"
  442. },
  443. {
  444. "value": "th_TH",
  445. "description": "\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22 [TH]"
  446. },
  447. {
  448. "value": "ka_GE",
  449. "description": "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8 [GE]"
  450. },
  451. {
  452. "value": "km_KH",
  453. "description": "\u1781\u17d2\u1798\u17c2\u179a [KH]"
  454. },
  455. {
  456. "value": "zh_TW",
  457. "description": "\u4e2d\u6587 (\u7e41\u9ad4) [TW]"
  458. },
  459. {
  460. "value": "zh_HK",
  461. "description": "\u4e2d\u6587 (\u9999\u6e2f) [HK]"
  462. },
  463. {
  464. "value": "ja_JP",
  465. "description": "\u65e5\u672c\u8a9e [JP]"
  466. },
  467. {
  468. "value": "zh_CN",
  469. "description": "\u7b80\u4f53\u4e2d\u6587 [CN]"
  470. },
  471. {
  472. "value": "ko_KR",
  473. "description": "\ud55c\uad6d\uc5b4 [KR]"
  474. }
  475. ]
  476. }
  477. },
  478. {
  479. "variable": "additional_envs",
  480. "label": "Additional Environment Variables",
  481. "schema": {
  482. "type": "list",
  483. "default": [],
  484. "items": [
  485. {
  486. "variable": "env",
  487. "label": "Environment Variable",
  488. "schema": {
  489. "type": "dict",
  490. "attrs": [
  491. {
  492. "variable": "name",
  493. "label": "Name",
  494. "schema": {
  495. "type": "string",
  496. "required": true
  497. }
  498. },
  499. {
  500. "variable": "value",
  501. "label": "Value",
  502. "schema": {
  503. "type": "string"
  504. }
  505. }
  506. ]
  507. }
  508. }
  509. ]
  510. }
  511. }
  512. ]
  513. }
  514. },
  515. {
  516. "variable": "run_as",
  517. "label": "",
  518. "group": "User and Group Configuration",
  519. "schema": {
  520. "type": "dict",
  521. "attrs": [
  522. {
  523. "variable": "user",
  524. "label": "User ID",
  525. "description": "The user id that Piwigo files will be owned by.",
  526. "schema": {
  527. "type": "int",
  528. "min": 568,
  529. "default": 568,
  530. "required": true
  531. }
  532. },
  533. {
  534. "variable": "group",
  535. "label": "Group ID",
  536. "description": "The group id that Piwigo files will be owned by.",
  537. "schema": {
  538. "type": "int",
  539. "min": 568,
  540. "default": 568,
  541. "required": true
  542. }
  543. }
  544. ]
  545. }
  546. },
  547. {
  548. "variable": "network",
  549. "label": "",
  550. "group": "Network Configuration",
  551. "schema": {
  552. "type": "dict",
  553. "attrs": [
  554. {
  555. "variable": "web_port",
  556. "label": "WebUI Port",
  557. "schema": {
  558. "type": "dict",
  559. "attrs": [
  560. {
  561. "variable": "bind_mode",
  562. "label": "Port Bind Mode",
  563. "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",
  564. "schema": {
  565. "type": "string",
  566. "default": "published",
  567. "enum": [
  568. {
  569. "value": "published",
  570. "description": "Publish port on the host for external access"
  571. },
  572. {
  573. "value": "exposed",
  574. "description": "Expose port for inter-container communication"
  575. },
  576. {
  577. "value": "",
  578. "description": "None"
  579. }
  580. ]
  581. }
  582. },
  583. {
  584. "variable": "port_number",
  585. "label": "Port Number",
  586. "schema": {
  587. "type": "int",
  588. "show_if": [
  589. [
  590. "bind_mode",
  591. "=",
  592. "published"
  593. ]
  594. ],
  595. "default": 30066,
  596. "min": 1,
  597. "max": 65535,
  598. "required": true
  599. }
  600. },
  601. {
  602. "variable": "host_ips",
  603. "label": "Host IPs",
  604. "description": "IPs on the host to bind this port",
  605. "schema": {
  606. "type": "list",
  607. "show_if": [
  608. [
  609. "bind_mode",
  610. "=",
  611. "published"
  612. ]
  613. ],
  614. "default": [],
  615. "items": [
  616. {
  617. "variable": "host_ip",
  618. "label": "Host IP",
  619. "schema": {
  620. "type": "string",
  621. "required": true,
  622. "$ref": [
  623. "definitions/node_bind_ip"
  624. ]
  625. }
  626. }
  627. ]
  628. }
  629. }
  630. ]
  631. }
  632. }
  633. ]
  634. }
  635. },
  636. {
  637. "variable": "storage",
  638. "label": "",
  639. "group": "Storage Configuration",
  640. "schema": {
  641. "type": "dict",
  642. "attrs": [
  643. {
  644. "variable": "config",
  645. "label": "Piwigo Config Storage",
  646. "description": "The path to store Piwigo Config.",
  647. "schema": {
  648. "type": "dict",
  649. "attrs": [
  650. {
  651. "variable": "type",
  652. "label": "Type",
  653. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  654. "schema": {
  655. "type": "string",
  656. "required": true,
  657. "default": "ix_volume",
  658. "enum": [
  659. {
  660. "value": "host_path",
  661. "description": "Host Path (Path that already exists on the system)"
  662. },
  663. {
  664. "value": "ix_volume",
  665. "description": "ixVolume (Dataset created automatically by the system)"
  666. }
  667. ]
  668. }
  669. },
  670. {
  671. "variable": "ix_volume_config",
  672. "label": "ixVolume Configuration",
  673. "description": "The configuration for the ixVolume dataset.",
  674. "schema": {
  675. "type": "dict",
  676. "show_if": [
  677. [
  678. "type",
  679. "=",
  680. "ix_volume"
  681. ]
  682. ],
  683. "$ref": [
  684. "normalize/ix_volume"
  685. ],
  686. "attrs": [
  687. {
  688. "variable": "acl_enable",
  689. "label": "Enable ACL",
  690. "description": "Enable ACL for the storage.",
  691. "schema": {
  692. "type": "boolean",
  693. "default": false
  694. }
  695. },
  696. {
  697. "variable": "dataset_name",
  698. "label": "Dataset Name",
  699. "description": "The name of the dataset to use for storage.",
  700. "schema": {
  701. "type": "string",
  702. "required": true,
  703. "hidden": true,
  704. "default": "config"
  705. }
  706. },
  707. {
  708. "variable": "acl_entries",
  709. "label": "ACL Configuration",
  710. "schema": {
  711. "type": "dict",
  712. "show_if": [
  713. [
  714. "acl_enable",
  715. "=",
  716. true
  717. ]
  718. ],
  719. "attrs": []
  720. }
  721. }
  722. ]
  723. }
  724. },
  725. {
  726. "variable": "host_path_config",
  727. "label": "Host Path Configuration",
  728. "schema": {
  729. "type": "dict",
  730. "show_if": [
  731. [
  732. "type",
  733. "=",
  734. "host_path"
  735. ]
  736. ],
  737. "attrs": [
  738. {
  739. "variable": "acl_enable",
  740. "label": "Enable ACL",
  741. "description": "Enable ACL for the storage.",
  742. "schema": {
  743. "type": "boolean",
  744. "default": false
  745. }
  746. },
  747. {
  748. "variable": "acl",
  749. "label": "ACL Configuration",
  750. "schema": {
  751. "type": "dict",
  752. "show_if": [
  753. [
  754. "acl_enable",
  755. "=",
  756. true
  757. ]
  758. ],
  759. "attrs": [],
  760. "$ref": [
  761. "normalize/acl"
  762. ]
  763. }
  764. },
  765. {
  766. "variable": "path",
  767. "label": "Host Path",
  768. "description": "The host path to use for storage.",
  769. "schema": {
  770. "type": "hostpath",
  771. "show_if": [
  772. [
  773. "acl_enable",
  774. "=",
  775. false
  776. ]
  777. ],
  778. "required": true
  779. }
  780. }
  781. ]
  782. }
  783. }
  784. ]
  785. }
  786. },
  787. {
  788. "variable": "gallery",
  789. "label": "Piwigo Gallery Storage",
  790. "description": "The path to store Piwigo Gallery.",
  791. "schema": {
  792. "type": "dict",
  793. "attrs": [
  794. {
  795. "variable": "type",
  796. "label": "Type",
  797. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  798. "schema": {
  799. "type": "string",
  800. "required": true,
  801. "default": "ix_volume",
  802. "enum": [
  803. {
  804. "value": "host_path",
  805. "description": "Host Path (Path that already exists on the system)"
  806. },
  807. {
  808. "value": "ix_volume",
  809. "description": "ixVolume (Dataset created automatically by the system)"
  810. }
  811. ]
  812. }
  813. },
  814. {
  815. "variable": "ix_volume_config",
  816. "label": "ixVolume Configuration",
  817. "description": "The configuration for the ixVolume dataset.",
  818. "schema": {
  819. "type": "dict",
  820. "show_if": [
  821. [
  822. "type",
  823. "=",
  824. "ix_volume"
  825. ]
  826. ],
  827. "$ref": [
  828. "normalize/ix_volume"
  829. ],
  830. "attrs": [
  831. {
  832. "variable": "acl_enable",
  833. "label": "Enable ACL",
  834. "description": "Enable ACL for the storage.",
  835. "schema": {
  836. "type": "boolean",
  837. "default": false
  838. }
  839. },
  840. {
  841. "variable": "dataset_name",
  842. "label": "Dataset Name",
  843. "description": "The name of the dataset to use for storage.",
  844. "schema": {
  845. "type": "string",
  846. "required": true,
  847. "hidden": true,
  848. "default": "config"
  849. }
  850. },
  851. {
  852. "variable": "acl_entries",
  853. "label": "ACL Configuration",
  854. "schema": {
  855. "type": "dict",
  856. "show_if": [
  857. [
  858. "acl_enable",
  859. "=",
  860. true
  861. ]
  862. ],
  863. "attrs": []
  864. }
  865. }
  866. ]
  867. }
  868. },
  869. {
  870. "variable": "host_path_config",
  871. "label": "Host Path Configuration",
  872. "schema": {
  873. "type": "dict",
  874. "show_if": [
  875. [
  876. "type",
  877. "=",
  878. "host_path"
  879. ]
  880. ],
  881. "attrs": [
  882. {
  883. "variable": "acl_enable",
  884. "label": "Enable ACL",
  885. "description": "Enable ACL for the storage.",
  886. "schema": {
  887. "type": "boolean",
  888. "default": false
  889. }
  890. },
  891. {
  892. "variable": "acl",
  893. "label": "ACL Configuration",
  894. "schema": {
  895. "type": "dict",
  896. "show_if": [
  897. [
  898. "acl_enable",
  899. "=",
  900. true
  901. ]
  902. ],
  903. "attrs": [],
  904. "$ref": [
  905. "normalize/acl"
  906. ]
  907. }
  908. },
  909. {
  910. "variable": "path",
  911. "label": "Host Path",
  912. "description": "The host path to use for storage.",
  913. "schema": {
  914. "type": "hostpath",
  915. "show_if": [
  916. [
  917. "acl_enable",
  918. "=",
  919. false
  920. ]
  921. ],
  922. "required": true
  923. }
  924. }
  925. ]
  926. }
  927. }
  928. ]
  929. }
  930. },
  931. {
  932. "variable": "mariadb_data",
  933. "label": "Piwigo MariaDB Data Storage",
  934. "description": "The path to store Piwigo MariaDB Data.",
  935. "schema": {
  936. "type": "dict",
  937. "attrs": [
  938. {
  939. "variable": "type",
  940. "label": "Type",
  941. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  942. "schema": {
  943. "type": "string",
  944. "required": true,
  945. "default": "ix_volume",
  946. "enum": [
  947. {
  948. "value": "host_path",
  949. "description": "Host Path (Path that already exists on the system)"
  950. },
  951. {
  952. "value": "ix_volume",
  953. "description": "ixVolume (Dataset created automatically by the system)"
  954. }
  955. ]
  956. }
  957. },
  958. {
  959. "variable": "ix_volume_config",
  960. "label": "ixVolume Configuration",
  961. "description": "The configuration for the ixVolume dataset.",
  962. "schema": {
  963. "type": "dict",
  964. "show_if": [
  965. [
  966. "type",
  967. "=",
  968. "ix_volume"
  969. ]
  970. ],
  971. "$ref": [
  972. "normalize/ix_volume"
  973. ],
  974. "attrs": [
  975. {
  976. "variable": "acl_enable",
  977. "label": "Enable ACL",
  978. "description": "Enable ACL for the storage.",
  979. "schema": {
  980. "type": "boolean",
  981. "default": false
  982. }
  983. },
  984. {
  985. "variable": "dataset_name",
  986. "label": "Dataset Name",
  987. "description": "The name of the dataset to use for storage.",
  988. "schema": {
  989. "type": "string",
  990. "required": true,
  991. "hidden": true,
  992. "default": "mariadb_data"
  993. }
  994. },
  995. {
  996. "variable": "acl_entries",
  997. "label": "ACL Configuration",
  998. "schema": {
  999. "type": "dict",
  1000. "show_if": [
  1001. [
  1002. "acl_enable",
  1003. "=",
  1004. true
  1005. ]
  1006. ],
  1007. "attrs": []
  1008. }
  1009. }
  1010. ]
  1011. }
  1012. },
  1013. {
  1014. "variable": "host_path_config",
  1015. "label": "Host Path Configuration",
  1016. "schema": {
  1017. "type": "dict",
  1018. "show_if": [
  1019. [
  1020. "type",
  1021. "=",
  1022. "host_path"
  1023. ]
  1024. ],
  1025. "attrs": [
  1026. {
  1027. "variable": "acl_enable",
  1028. "label": "Enable ACL",
  1029. "description": "Enable ACL for the storage.",
  1030. "schema": {
  1031. "type": "boolean",
  1032. "default": false
  1033. }
  1034. },
  1035. {
  1036. "variable": "acl",
  1037. "label": "ACL Configuration",
  1038. "schema": {
  1039. "type": "dict",
  1040. "show_if": [
  1041. [
  1042. "acl_enable",
  1043. "=",
  1044. true
  1045. ]
  1046. ],
  1047. "attrs": [],
  1048. "$ref": [
  1049. "normalize/acl"
  1050. ]
  1051. }
  1052. },
  1053. {
  1054. "variable": "path",
  1055. "label": "Host Path",
  1056. "description": "The host path to use for storage.",
  1057. "schema": {
  1058. "type": "hostpath",
  1059. "show_if": [
  1060. [
  1061. "acl_enable",
  1062. "=",
  1063. false
  1064. ]
  1065. ],
  1066. "required": true
  1067. }
  1068. }
  1069. ]
  1070. }
  1071. }
  1072. ]
  1073. }
  1074. },
  1075. {
  1076. "variable": "additional_storage",
  1077. "label": "Additional Storage",
  1078. "schema": {
  1079. "type": "list",
  1080. "default": [],
  1081. "items": [
  1082. {
  1083. "variable": "storageEntry",
  1084. "label": "Storage Entry",
  1085. "schema": {
  1086. "type": "dict",
  1087. "attrs": [
  1088. {
  1089. "variable": "type",
  1090. "label": "Type",
  1091. "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",
  1092. "schema": {
  1093. "type": "string",
  1094. "required": true,
  1095. "default": "ix_volume",
  1096. "enum": [
  1097. {
  1098. "value": "host_path",
  1099. "description": "Host Path (Path that already exists on the system)"
  1100. },
  1101. {
  1102. "value": "ix_volume",
  1103. "description": "ixVolume (Dataset created automatically by the system)"
  1104. },
  1105. {
  1106. "value": "cifs",
  1107. "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
  1108. }
  1109. ]
  1110. }
  1111. },
  1112. {
  1113. "variable": "read_only",
  1114. "label": "Read Only",
  1115. "description": "Mount the volume as read only.",
  1116. "schema": {
  1117. "type": "boolean",
  1118. "default": false
  1119. }
  1120. },
  1121. {
  1122. "variable": "mount_path",
  1123. "label": "Mount Path",
  1124. "description": "The path inside the container to mount the storage.",
  1125. "schema": {
  1126. "type": "path",
  1127. "required": true
  1128. }
  1129. },
  1130. {
  1131. "variable": "host_path_config",
  1132. "label": "Host Path Configuration",
  1133. "schema": {
  1134. "type": "dict",
  1135. "show_if": [
  1136. [
  1137. "type",
  1138. "=",
  1139. "host_path"
  1140. ]
  1141. ],
  1142. "attrs": [
  1143. {
  1144. "variable": "acl_enable",
  1145. "label": "Enable ACL",
  1146. "description": "Enable ACL for the storage.",
  1147. "schema": {
  1148. "type": "boolean",
  1149. "default": false
  1150. }
  1151. },
  1152. {
  1153. "variable": "acl",
  1154. "label": "ACL Configuration",
  1155. "schema": {
  1156. "type": "dict",
  1157. "show_if": [
  1158. [
  1159. "acl_enable",
  1160. "=",
  1161. true
  1162. ]
  1163. ],
  1164. "attrs": [],
  1165. "$ref": [
  1166. "normalize/acl"
  1167. ]
  1168. }
  1169. },
  1170. {
  1171. "variable": "path",
  1172. "label": "Host Path",
  1173. "description": "The host path to use for storage.",
  1174. "schema": {
  1175. "type": "hostpath",
  1176. "show_if": [
  1177. [
  1178. "acl_enable",
  1179. "=",
  1180. false
  1181. ]
  1182. ],
  1183. "required": true
  1184. }
  1185. }
  1186. ]
  1187. }
  1188. },
  1189. {
  1190. "variable": "ix_volume_config",
  1191. "label": "ixVolume Configuration",
  1192. "description": "The configuration for the ixVolume dataset.",
  1193. "schema": {
  1194. "type": "dict",
  1195. "show_if": [
  1196. [
  1197. "type",
  1198. "=",
  1199. "ix_volume"
  1200. ]
  1201. ],
  1202. "$ref": [
  1203. "normalize/ix_volume"
  1204. ],
  1205. "attrs": [
  1206. {
  1207. "variable": "acl_enable",
  1208. "label": "Enable ACL",
  1209. "description": "Enable ACL for the storage.",
  1210. "schema": {
  1211. "type": "boolean",
  1212. "default": false
  1213. }
  1214. },
  1215. {
  1216. "variable": "dataset_name",
  1217. "label": "Dataset Name",
  1218. "description": "The name of the dataset to use for storage.",
  1219. "schema": {
  1220. "type": "string",
  1221. "required": true,
  1222. "default": "storage_entry"
  1223. }
  1224. },
  1225. {
  1226. "variable": "acl_entries",
  1227. "label": "ACL Configuration",
  1228. "schema": {
  1229. "type": "dict",
  1230. "show_if": [
  1231. [
  1232. "acl_enable",
  1233. "=",
  1234. true
  1235. ]
  1236. ],
  1237. "attrs": [],
  1238. "$ref": [
  1239. "normalize/acl"
  1240. ]
  1241. }
  1242. }
  1243. ]
  1244. }
  1245. },
  1246. {
  1247. "variable": "cifs_config",
  1248. "label": "SMB Configuration",
  1249. "description": "The configuration for the SMB dataset.",
  1250. "schema": {
  1251. "type": "dict",
  1252. "show_if": [
  1253. [
  1254. "type",
  1255. "=",
  1256. "cifs"
  1257. ]
  1258. ],
  1259. "attrs": [
  1260. {
  1261. "variable": "server",
  1262. "label": "Server",
  1263. "description": "The server to mount the SMB share.",
  1264. "schema": {
  1265. "type": "string",
  1266. "required": true
  1267. }
  1268. },
  1269. {
  1270. "variable": "path",
  1271. "label": "Path",
  1272. "description": "The path to mount the SMB share.",
  1273. "schema": {
  1274. "type": "string",
  1275. "required": true
  1276. }
  1277. },
  1278. {
  1279. "variable": "username",
  1280. "label": "Username",
  1281. "description": "The username to use for the SMB share.",
  1282. "schema": {
  1283. "type": "string",
  1284. "required": true
  1285. }
  1286. },
  1287. {
  1288. "variable": "password",
  1289. "label": "Password",
  1290. "description": "The password to use for the SMB share.",
  1291. "schema": {
  1292. "type": "string",
  1293. "required": true,
  1294. "private": true
  1295. }
  1296. },
  1297. {
  1298. "variable": "domain",
  1299. "label": "Domain",
  1300. "description": "The domain to use for the SMB share.",
  1301. "schema": {
  1302. "type": "string"
  1303. }
  1304. }
  1305. ]
  1306. }
  1307. }
  1308. ]
  1309. }
  1310. }
  1311. ]
  1312. }
  1313. }
  1314. ]
  1315. }
  1316. },
  1317. {
  1318. "variable": "labels",
  1319. "label": "",
  1320. "group": "Labels Configuration",
  1321. "schema": {
  1322. "type": "list",
  1323. "default": [],
  1324. "items": [
  1325. {
  1326. "variable": "label",
  1327. "label": "Label",
  1328. "schema": {
  1329. "type": "dict",
  1330. "attrs": [
  1331. {
  1332. "variable": "key",
  1333. "label": "Key",
  1334. "schema": {
  1335. "type": "string",
  1336. "required": true
  1337. }
  1338. },
  1339. {
  1340. "variable": "value",
  1341. "label": "Value",
  1342. "schema": {
  1343. "type": "string",
  1344. "required": true
  1345. }
  1346. },
  1347. {
  1348. "variable": "containers",
  1349. "label": "Containers",
  1350. "description": "Containers where the label should be applied",
  1351. "schema": {
  1352. "type": "list",
  1353. "items": [
  1354. {
  1355. "variable": "container",
  1356. "label": "Container",
  1357. "schema": {
  1358. "type": "string",
  1359. "required": true,
  1360. "enum": [
  1361. {
  1362. "value": "piwigo",
  1363. "description": "piwigo"
  1364. },
  1365. {
  1366. "value": "mariadb",
  1367. "description": "mariadb"
  1368. }
  1369. ]
  1370. }
  1371. }
  1372. ]
  1373. }
  1374. }
  1375. ]
  1376. }
  1377. }
  1378. ]
  1379. }
  1380. },
  1381. {
  1382. "variable": "resources",
  1383. "label": "",
  1384. "group": "Resources Configuration",
  1385. "schema": {
  1386. "type": "dict",
  1387. "attrs": [
  1388. {
  1389. "variable": "limits",
  1390. "label": "Limits",
  1391. "schema": {
  1392. "type": "dict",
  1393. "attrs": [
  1394. {
  1395. "variable": "cpus",
  1396. "label": "CPUs",
  1397. "description": "CPUs limit for Piwigo.",
  1398. "schema": {
  1399. "type": "int",
  1400. "default": 2,
  1401. "required": true
  1402. }
  1403. },
  1404. {
  1405. "variable": "memory",
  1406. "label": "Memory (in MB)",
  1407. "description": "Memory limit for Piwigo.",
  1408. "schema": {
  1409. "type": "int",
  1410. "default": 4096,
  1411. "required": true
  1412. }
  1413. }
  1414. ]
  1415. }
  1416. }
  1417. ]
  1418. }
  1419. }
  1420. ]
  1421. },
  1422. "readme": "<h1>Piwigo</h1> <p><a href=\"https://piwigo.org/\">Piwigo</a> is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures.</p>",
  1423. "changelog": null,
  1424. "chart_metadata": {
  1425. "annotations": {
  1426. "min_scale_version": "24.10.2.2"
  1427. },
  1428. "app_version": "15.6.0",
  1429. "capabilities": [
  1430. {
  1431. "description": "Piwigo is able to change file ownership arbitrarily",
  1432. "name": "CHOWN"
  1433. },
  1434. {
  1435. "description": "Piwigo is able to bypass file permission checks",
  1436. "name": "DAC_OVERRIDE"
  1437. },
  1438. {
  1439. "description": "Piwigo is able to bypass permission checks for file operations",
  1440. "name": "FOWNER"
  1441. },
  1442. {
  1443. "description": "Piwigo is able to bind to privileged ports (< 1024)",
  1444. "name": "NET_BIND_SERVICE"
  1445. },
  1446. {
  1447. "description": "Piwigo is able to change group ID of processes",
  1448. "name": "SETGID"
  1449. },
  1450. {
  1451. "description": "Piwigo is able to change user ID of processes",
  1452. "name": "SETUID"
  1453. }
  1454. ],
  1455. "categories": [
  1456. "media"
  1457. ],
  1458. "changelog_url": "https://piwigo.org/forum/viewforum.php?id=23",
  1459. "date_added": "2024-09-19",
  1460. "description": "Piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures.",
  1461. "home": "https://piwigo.org",
  1462. "host_mounts": [],
  1463. "icon": "https://media.sys.truenas.net/apps/piwigo/icons/icon.svg",
  1464. "keywords": [
  1465. "photo",
  1466. "gallery"
  1467. ],
  1468. "lib_version": "2.1.49",
  1469. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  1470. "maintainers": [
  1471. {
  1472. "email": "dev@ixsystems.com",
  1473. "name": "truenas",
  1474. "url": "https://www.truenas.com/"
  1475. }
  1476. ],
  1477. "name": "piwigo",
  1478. "run_as_context": [
  1479. {
  1480. "description": "Piwigo runs as root user.",
  1481. "gid": 0,
  1482. "group_name": "root",
  1483. "uid": 0,
  1484. "user_name": "root"
  1485. },
  1486. {
  1487. "description": "MariaDB runs as non-root user.",
  1488. "gid": 999,
  1489. "group_name": "mariadb",
  1490. "uid": 999,
  1491. "user_name": "mariadb"
  1492. }
  1493. ],
  1494. "screenshots": [
  1495. "https://media.sys.truenas.net/apps/piwigo/screenshots/screenshot1.png",
  1496. "https://media.sys.truenas.net/apps/piwigo/screenshots/screenshot2.png"
  1497. ],
  1498. "sources": [
  1499. "https://github.com/linuxserver/docker-piwigo"
  1500. ],
  1501. "title": "Piwigo",
  1502. "train": "community",
  1503. "version": "1.2.10"
  1504. }
  1505. }
  1506. }