app_versions.json 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593
  1. {
  2. "1.0.32": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/charts/photoprism/1.0.32",
  7. "last_update": "2023-11-14 10:11:57",
  8. "required_features": [
  9. "normalize/ixVolume",
  10. "definitions/gpuConfiguration"
  11. ],
  12. "human_version": "231021_1.0.32",
  13. "version": "1.0.32",
  14. "chart_metadata": {
  15. "name": "photoprism",
  16. "description": "AI-powered app for browsing, organizing & sharing your photo collection.",
  17. "annotations": {
  18. "title": "PhotoPrism"
  19. },
  20. "type": "application",
  21. "version": "1.0.32",
  22. "apiVersion": "v2",
  23. "appVersion": "231021",
  24. "kubeVersion": ">=1.16.0-0",
  25. "maintainers": [
  26. {
  27. "name": "truenas",
  28. "url": "https://www.truenas.com/",
  29. "email": "dev@ixsystems.com"
  30. }
  31. ],
  32. "dependencies": [
  33. {
  34. "name": "common",
  35. "repository": "file://../../../common/2304.0.1",
  36. "version": "2304.0.1"
  37. }
  38. ],
  39. "home": "https://photoprism.app/",
  40. "icon": "https://media.sys.truenas.net/apps/photoprism/icons/icon.svg",
  41. "sources": [
  42. "https://photoprism.app/",
  43. "https://github.com/truenas/charts/tree/master/charts/photoprism"
  44. ],
  45. "keywords": [
  46. "media"
  47. ]
  48. },
  49. "app_metadata": {
  50. "runAsContext": [
  51. {
  52. "userName": "root",
  53. "groupName": "root",
  54. "gid": 0,
  55. "uid": 0,
  56. "description": "Photoprism runs as root user."
  57. }
  58. ],
  59. "capabilities": [
  60. {
  61. "name": "CHOWN",
  62. "description": "Photoprism is able to chown files."
  63. },
  64. {
  65. "name": "FOWNER",
  66. "description": "Photoprism is able to bypass permission checks for it's sub-processes."
  67. },
  68. {
  69. "name": "SYS_CHROOT",
  70. "description": "Photoprism is able to use chroot."
  71. },
  72. {
  73. "name": "MKNOD",
  74. "description": "Photoprism is able to create device nodes."
  75. },
  76. {
  77. "name": "DAC_OVERRIDE",
  78. "description": "Photoprism is able to bypass permission checks."
  79. },
  80. {
  81. "name": "FSETID",
  82. "description": "Photoprism is able to set file capabilities."
  83. },
  84. {
  85. "name": "KILL",
  86. "description": "Photoprism is able to kill processes."
  87. },
  88. {
  89. "name": "SETGID",
  90. "description": "Photoprism is able to set group ID for it's sub-processes."
  91. },
  92. {
  93. "name": "SETUID",
  94. "description": "Photoprism is able to set user ID for it's sub-processes."
  95. },
  96. {
  97. "name": "SETPCAP",
  98. "description": "Photoprism is able to set process capabilities."
  99. },
  100. {
  101. "name": "NET_BIND_SERVICE",
  102. "description": "Photoprism is able to bind to privileged ports."
  103. },
  104. {
  105. "name": "SETFCAP",
  106. "description": "Photoprism is able to set file capabilities."
  107. },
  108. {
  109. "name": "NET_RAW",
  110. "description": "Photoprism is able to use raw sockets."
  111. },
  112. {
  113. "name": "AUDIT_WRITE",
  114. "description": "Photoprism is able to write to audit log."
  115. }
  116. ],
  117. "hostMounts": []
  118. },
  119. "schema": {
  120. "groups": [
  121. {
  122. "name": "Configuration",
  123. "description": "Photo Prism application configuration"
  124. },
  125. {
  126. "name": "Storage",
  127. "description": "Configure storage for photo prism"
  128. },
  129. {
  130. "name": "Networking",
  131. "description": "Networking Configuration for photo prism"
  132. },
  133. {
  134. "name": "Advanced DNS Settings",
  135. "description": "Configure DNS settings"
  136. },
  137. {
  138. "name": "Resource Reservation",
  139. "description": "Specify resources to be allocated to workload"
  140. },
  141. {
  142. "name": "Resource Limits",
  143. "description": "Set CPU/memory limits for Kubernetes Pod"
  144. }
  145. ],
  146. "portals": {
  147. "web_portal": {
  148. "protocols": [
  149. "http"
  150. ],
  151. "host": [
  152. "$node_ip"
  153. ],
  154. "ports": [
  155. "$variable-web_port"
  156. ],
  157. "path": "/"
  158. }
  159. },
  160. "questions": [
  161. {
  162. "variable": "web_port",
  163. "label": "Web Port for photo prism",
  164. "group": "Networking",
  165. "schema": {
  166. "type": "int",
  167. "min": 8000,
  168. "max": 65535,
  169. "default": 20800,
  170. "required": true
  171. }
  172. },
  173. {
  174. "variable": "dnsConfig",
  175. "label": "DNS Configuration",
  176. "group": "Advanced DNS Settings",
  177. "schema": {
  178. "type": "dict",
  179. "attrs": [
  180. {
  181. "variable": "options",
  182. "label": "DNS Options",
  183. "schema": {
  184. "type": "list",
  185. "items": [
  186. {
  187. "variable": "optionsEntry",
  188. "label": "Option Entry Configuration",
  189. "schema": {
  190. "type": "dict",
  191. "attrs": [
  192. {
  193. "variable": "name",
  194. "label": "Option Name",
  195. "schema": {
  196. "type": "string",
  197. "required": true
  198. }
  199. },
  200. {
  201. "variable": "value",
  202. "label": "Option Value",
  203. "schema": {
  204. "type": "string",
  205. "required": true
  206. }
  207. }
  208. ]
  209. }
  210. }
  211. ]
  212. }
  213. }
  214. ]
  215. }
  216. },
  217. {
  218. "variable": "ownerUID",
  219. "label": "Storage User ID",
  220. "description": "User ID of the storage volume being used (application will chown the storage volume path with specified UID)",
  221. "group": "Configuration",
  222. "schema": {
  223. "type": "int",
  224. "default": 568,
  225. "min": 1,
  226. "max": 65535
  227. }
  228. },
  229. {
  230. "variable": "ownerGID",
  231. "label": "Storage Group ID",
  232. "description": "Group ID of the storage volume being used (application will chown the storage volume path with specified GID)",
  233. "group": "Configuration",
  234. "schema": {
  235. "type": "int",
  236. "default": 568,
  237. "min": 1,
  238. "max": 65535
  239. }
  240. },
  241. {
  242. "variable": "password",
  243. "label": "Password",
  244. "group": "Configuration",
  245. "schema": {
  246. "type": "string",
  247. "private": true,
  248. "required": true,
  249. "empty": false,
  250. "immutable": true,
  251. "default": "admin123",
  252. "show_if": [
  253. [
  254. "public",
  255. "=",
  256. false
  257. ]
  258. ]
  259. }
  260. },
  261. {
  262. "variable": "public",
  263. "label": "Enable Public Access",
  264. "description": "Disable password authentication, WebDAV, and the advanced settings page",
  265. "group": "Configuration",
  266. "schema": {
  267. "type": "boolean",
  268. "default": false
  269. }
  270. },
  271. {
  272. "variable": "environmentVariables",
  273. "label": "Photo Prism environment",
  274. "group": "Configuration",
  275. "schema": {
  276. "type": "list",
  277. "default": [],
  278. "items": [
  279. {
  280. "variable": "environmentVariable",
  281. "label": "Environment Variable",
  282. "schema": {
  283. "type": "dict",
  284. "attrs": [
  285. {
  286. "variable": "name",
  287. "label": "Name",
  288. "schema": {
  289. "type": "string"
  290. }
  291. },
  292. {
  293. "variable": "value",
  294. "label": "Value",
  295. "schema": {
  296. "type": "string"
  297. }
  298. }
  299. ]
  300. }
  301. }
  302. ]
  303. }
  304. },
  305. {
  306. "variable": "appVolumeMounts",
  307. "label": "Photo Prism Storage",
  308. "group": "Storage",
  309. "schema": {
  310. "type": "dict",
  311. "attrs": [
  312. {
  313. "variable": "original",
  314. "label": "Storage Volume for Original Media",
  315. "schema": {
  316. "type": "dict",
  317. "attrs": [
  318. {
  319. "variable": "datasetName",
  320. "label": "Original Storage Volume Dataset Name",
  321. "schema": {
  322. "type": "string",
  323. "hidden": true,
  324. "$ref": [
  325. "normalize/ixVolume"
  326. ],
  327. "show_if": [
  328. [
  329. "hostPathEnabled",
  330. "=",
  331. false
  332. ]
  333. ],
  334. "default": "ix-photoprism_original",
  335. "editable": false
  336. }
  337. },
  338. {
  339. "variable": "mountPath",
  340. "label": "Original Storage Mount Path",
  341. "description": "Path where the volume will be mounted inside the pod",
  342. "schema": {
  343. "type": "path",
  344. "hidden": true,
  345. "editable": true,
  346. "default": "/photoprism/originals"
  347. }
  348. },
  349. {
  350. "variable": "hostPathEnabled",
  351. "label": "Enable Custom Host Path for Photo Prism Original Storage Volume",
  352. "schema": {
  353. "type": "boolean",
  354. "default": false,
  355. "show_subquestions_if": true,
  356. "subquestions": [
  357. {
  358. "variable": "hostPath",
  359. "label": "Host Path for Photo Prism Original Storage Volume",
  360. "schema": {
  361. "type": "hostpath",
  362. "required": true
  363. }
  364. }
  365. ]
  366. }
  367. }
  368. ]
  369. }
  370. },
  371. {
  372. "variable": "storage",
  373. "label": "Storage Volume for sidecar/cache/database",
  374. "schema": {
  375. "type": "dict",
  376. "attrs": [
  377. {
  378. "variable": "datasetName",
  379. "label": "Storage Volume Dataset Name",
  380. "schema": {
  381. "type": "string",
  382. "hidden": true,
  383. "$ref": [
  384. "normalize/ixVolume"
  385. ],
  386. "show_if": [
  387. [
  388. "hostPathEnabled",
  389. "=",
  390. false
  391. ]
  392. ],
  393. "default": "ix-photoprism_storage",
  394. "editable": false
  395. }
  396. },
  397. {
  398. "variable": "mountPath",
  399. "label": "Storage Mount Path",
  400. "description": "Path where the volume will be mounted inside the pod",
  401. "schema": {
  402. "type": "path",
  403. "hidden": true,
  404. "editable": true,
  405. "default": "/photoprism/storage"
  406. }
  407. },
  408. {
  409. "variable": "hostPathEnabled",
  410. "label": "Enable Custom Host Path for Photo Prism Storage Volume",
  411. "schema": {
  412. "type": "boolean",
  413. "default": false,
  414. "show_subquestions_if": true,
  415. "subquestions": [
  416. {
  417. "variable": "hostPath",
  418. "label": "Host Path for Photo Prism Storage Volume",
  419. "schema": {
  420. "type": "hostpath",
  421. "required": true
  422. }
  423. }
  424. ]
  425. }
  426. }
  427. ]
  428. }
  429. },
  430. {
  431. "variable": "import",
  432. "label": "Storage Volume for imports",
  433. "schema": {
  434. "type": "dict",
  435. "attrs": [
  436. {
  437. "variable": "datasetName",
  438. "label": "Import Storage Volume Dataset Name",
  439. "schema": {
  440. "type": "string",
  441. "hidden": true,
  442. "$ref": [
  443. "normalize/ixVolume"
  444. ],
  445. "show_if": [
  446. [
  447. "hostPathEnabled",
  448. "=",
  449. false
  450. ]
  451. ],
  452. "default": "ix-photoprism_import",
  453. "editable": false
  454. }
  455. },
  456. {
  457. "variable": "mountPath",
  458. "label": "Storage Mount Path",
  459. "description": "Path where the volume will be mounted inside the pod",
  460. "schema": {
  461. "type": "path",
  462. "hidden": true,
  463. "editable": true,
  464. "default": "/photoprism/import"
  465. }
  466. },
  467. {
  468. "variable": "hostPathEnabled",
  469. "label": "Enable Custom Host Path for Photo Prism Import Storage Volume",
  470. "schema": {
  471. "type": "boolean",
  472. "default": false,
  473. "show_subquestions_if": true,
  474. "subquestions": [
  475. {
  476. "variable": "hostPath",
  477. "label": "Host Path for Photo Prism Import Storage Volume",
  478. "schema": {
  479. "type": "hostpath",
  480. "required": true
  481. }
  482. }
  483. ]
  484. }
  485. }
  486. ]
  487. }
  488. }
  489. ]
  490. }
  491. },
  492. {
  493. "variable": "extraAppVolumeMounts",
  494. "label": "Extra Host Path Volumes",
  495. "group": "Storage",
  496. "schema": {
  497. "type": "list",
  498. "items": [
  499. {
  500. "variable": "extraAppVolume",
  501. "label": "Host Path Volume",
  502. "description": "Add an extra host path volume for Photo Prism application",
  503. "schema": {
  504. "type": "dict",
  505. "attrs": [
  506. {
  507. "variable": "mountPath",
  508. "label": "Mount Path in Pod",
  509. "description": "Path where the volume will be mounted inside the pod",
  510. "schema": {
  511. "type": "path",
  512. "required": true
  513. }
  514. },
  515. {
  516. "variable": "hostPath",
  517. "label": "Host Path",
  518. "description": "Host path",
  519. "schema": {
  520. "type": "hostpath",
  521. "required": true
  522. }
  523. }
  524. ]
  525. }
  526. }
  527. ]
  528. }
  529. },
  530. {
  531. "variable": "gpuConfiguration",
  532. "label": "GPU Configuration",
  533. "group": "Resource Reservation",
  534. "schema": {
  535. "type": "dict",
  536. "$ref": [
  537. "definitions/gpuConfiguration"
  538. ],
  539. "attrs": []
  540. }
  541. },
  542. {
  543. "variable": "enableResourceLimits",
  544. "label": "Enable Pod resource limits",
  545. "group": "Resource Limits",
  546. "schema": {
  547. "type": "boolean",
  548. "default": false
  549. }
  550. },
  551. {
  552. "variable": "cpuLimit",
  553. "label": "CPU Limit",
  554. "description": "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100.",
  555. "group": "Resource Limits",
  556. "schema": {
  557. "type": "string",
  558. "show_if": [
  559. [
  560. "enableResourceLimits",
  561. "=",
  562. true
  563. ]
  564. ],
  565. "valid_chars": "^\\d+(?:\\.\\d+(?!.*m$)|m?$)",
  566. "default": "4000m"
  567. }
  568. },
  569. {
  570. "variable": "memLimit",
  571. "label": "Memory Limit",
  572. "group": "Resource Limits",
  573. "description": "Memory limits is specified by number of bytes. Followed by quantity suffix like E,P,T,G,M,k and Ei,Pi,Ti,Mi,Gi,Ki can also be used. e.g 129e6, 129M, 128974848000m, 123Mi",
  574. "schema": {
  575. "type": "string",
  576. "show_if": [
  577. [
  578. "enableResourceLimits",
  579. "=",
  580. true
  581. ]
  582. ],
  583. "valid_chars": "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$",
  584. "default": "8Gi"
  585. }
  586. }
  587. ]
  588. },
  589. "app_readme": "<h1>Photo Prism</h1>\n<p>PhotoPrism is a server-based application for browsing, organizing and sharing your personal photo collection.</p>",
  590. "detailed_readme": "<h1>Photo Prism</h1>\n<p>PhotoPrism is a server-based application for browsing, organizing and sharing your personal photo collection.</p>",
  591. "changelog": null
  592. }
  593. }