questions.yaml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619
  1. groups:
  2. - name: Photoprism Configuration
  3. description: Configure Photoprism
  4. - name: User and Group Configuration
  5. description: Configure User and Group for Photoprism
  6. - name: Network Configuration
  7. description: Configure Network for Photoprism
  8. - name: Storage Configuration
  9. description: Configure Storage for Photoprism
  10. - name: Labels Configuration
  11. description: Configure Labels for Photoprism
  12. - name: Resources Configuration
  13. description: Configure Resources for Photoprism
  14. questions:
  15. - variable: photoprism
  16. label: ""
  17. group: Photoprism Configuration
  18. schema:
  19. type: dict
  20. attrs:
  21. - variable: site_url
  22. label: Site URL
  23. description: |
  24. The URL for the Photoprism site.</br>
  25. Examples:
  26. - https://photoprism.example.com/photoprism
  27. - https://photoprism.example.com
  28. - http://photoprism.example.com
  29. schema:
  30. type: uri
  31. - variable: public
  32. label: Public
  33. description: |
  34. Enable public access to Photoprism.</br>
  35. If enabled, Photoprism will be accessible without authentication.
  36. schema:
  37. type: boolean
  38. default: false
  39. - variable: admin_password
  40. label: Admin Password
  41. description: |
  42. Set a password for Photoprism.</br>
  43. If public access is enabled, a password is required.
  44. schema:
  45. type: string
  46. required: true
  47. show_if: [["public", "=", false]]
  48. private: true
  49. - variable: additional_envs
  50. label: Additional Environment Variables
  51. schema:
  52. type: list
  53. default: []
  54. items:
  55. - variable: env
  56. label: Environment Variable
  57. schema:
  58. type: dict
  59. attrs:
  60. - variable: name
  61. label: Name
  62. schema:
  63. type: string
  64. required: true
  65. - variable: value
  66. label: Value
  67. schema:
  68. type: string
  69. - variable: run_as
  70. label: ""
  71. group: User and Group Configuration
  72. schema:
  73. type: dict
  74. attrs:
  75. - variable: user
  76. label: User ID
  77. description: The user id that Actual Budget files will be owned by.
  78. schema:
  79. type: int
  80. min: 0
  81. default: 568
  82. required: true
  83. - variable: group
  84. label: Group ID
  85. description: The group id that Actual Budget files will be owned by.
  86. schema:
  87. type: int
  88. min: 0
  89. default: 568
  90. required: true
  91. - variable: network
  92. label: ""
  93. group: Network Configuration
  94. schema:
  95. type: dict
  96. attrs:
  97. - variable: web_port
  98. label: WebUI Port
  99. schema:
  100. type: dict
  101. attrs:
  102. - variable: bind_mode
  103. label: Port Bind Mode
  104. description: |
  105. The port bind mode.</br>
  106. - Publish: The port will be published on the host for external access.</br>
  107. - Expose: The port will be exposed for inter-container communication.</br>
  108. - None: The port will not be exposed or published.</br>
  109. Note: If the Dockerfile defines an EXPOSE directive,
  110. the port will still be exposed for inter-container communication regardless of this setting.
  111. schema:
  112. type: string
  113. default: "published"
  114. enum:
  115. - value: "published"
  116. description: Publish port on the host for external access
  117. - value: "exposed"
  118. description: Expose port for inter-container communication
  119. - value: ""
  120. description: None
  121. - variable: port_number
  122. label: Port Number
  123. schema:
  124. type: int
  125. default: 20800
  126. min: 1
  127. max: 65535
  128. required: true
  129. - variable: host_ips
  130. label: Host IPs
  131. description: IPs on the host to bind this port
  132. schema:
  133. type: list
  134. show_if: [["bind_mode", "=", "published"]]
  135. default: []
  136. items:
  137. - variable: host_ip
  138. label: Host IP
  139. schema:
  140. type: string
  141. required: true
  142. $ref:
  143. - definitions/node_bind_ip
  144. - variable: host_network
  145. label: Host Network
  146. description: |
  147. Bind to the host network. It's recommended to keep this disabled.
  148. schema:
  149. type: boolean
  150. default: false
  151. - variable: certificate_id
  152. label: Certificate ID
  153. description: The certificate ID to use for Photoprism.
  154. schema:
  155. type: int
  156. "null": true
  157. $ref:
  158. - definitions/certificate
  159. - variable: dns_opts
  160. label: DNS Options
  161. description: |
  162. DNS options for the container.</br>
  163. Format: key:value</br>
  164. Example: attempts:3
  165. schema:
  166. type: list
  167. default: []
  168. items:
  169. - variable: option
  170. label: Option
  171. schema:
  172. type: string
  173. required: true
  174. - variable: storage
  175. label: ""
  176. group: Storage Configuration
  177. schema:
  178. type: dict
  179. attrs:
  180. - variable: import
  181. label: Photoprism Import Storage
  182. description: The path to store Photoprism Import.
  183. schema:
  184. type: dict
  185. attrs:
  186. - variable: type
  187. label: Type
  188. description: |
  189. ixVolume: Is dataset created automatically by the system.</br>
  190. Host Path: Is a path that already exists on the system.
  191. schema:
  192. type: string
  193. required: true
  194. default: "ix_volume"
  195. enum:
  196. - value: "host_path"
  197. description: Host Path (Path that already exists on the system)
  198. - value: "ix_volume"
  199. description: ixVolume (Dataset created automatically by the system)
  200. - variable: ix_volume_config
  201. label: ixVolume Configuration
  202. description: The configuration for the ixVolume dataset.
  203. schema:
  204. type: dict
  205. show_if: [["type", "=", "ix_volume"]]
  206. $ref:
  207. - "normalize/ix_volume"
  208. attrs:
  209. - variable: acl_enable
  210. label: Enable ACL
  211. description: Enable ACL for the storage.
  212. schema:
  213. type: boolean
  214. default: false
  215. - variable: dataset_name
  216. label: Dataset Name
  217. description: The name of the dataset to use for storage.
  218. schema:
  219. type: string
  220. required: true
  221. hidden: true
  222. default: "import"
  223. - variable: acl_entries
  224. label: ACL Configuration
  225. schema:
  226. type: dict
  227. show_if: [["acl_enable", "=", true]]
  228. attrs: []
  229. - variable: host_path_config
  230. label: Host Path Configuration
  231. schema:
  232. type: dict
  233. show_if: [["type", "=", "host_path"]]
  234. attrs:
  235. - variable: acl_enable
  236. label: Enable ACL
  237. description: Enable ACL for the storage.
  238. schema:
  239. type: boolean
  240. default: false
  241. - variable: acl
  242. label: ACL Configuration
  243. schema:
  244. type: dict
  245. show_if: [["acl_enable", "=", true]]
  246. attrs: []
  247. $ref:
  248. - "normalize/acl"
  249. - variable: path
  250. label: Host Path
  251. description: The host path to use for storage.
  252. schema:
  253. type: hostpath
  254. show_if: [["acl_enable", "=", false]]
  255. required: true
  256. - variable: storage
  257. label: Photoprism Storage
  258. description: The path to store Photoprism Storage.
  259. schema:
  260. type: dict
  261. attrs:
  262. - variable: type
  263. label: Type
  264. description: |
  265. ixVolume: Is dataset created automatically by the system.</br>
  266. Host Path: Is a path that already exists on the system.
  267. schema:
  268. type: string
  269. required: true
  270. default: "ix_volume"
  271. enum:
  272. - value: "host_path"
  273. description: Host Path (Path that already exists on the system)
  274. - value: "ix_volume"
  275. description: ixVolume (Dataset created automatically by the system)
  276. - variable: ix_volume_config
  277. label: ixVolume Configuration
  278. description: The configuration for the ixVolume dataset.
  279. schema:
  280. type: dict
  281. show_if: [["type", "=", "ix_volume"]]
  282. $ref:
  283. - "normalize/ix_volume"
  284. attrs:
  285. - variable: acl_enable
  286. label: Enable ACL
  287. description: Enable ACL for the storage.
  288. schema:
  289. type: boolean
  290. default: false
  291. - variable: dataset_name
  292. label: Dataset Name
  293. description: The name of the dataset to use for storage.
  294. schema:
  295. type: string
  296. required: true
  297. hidden: true
  298. default: "storage"
  299. - variable: acl_entries
  300. label: ACL Configuration
  301. schema:
  302. type: dict
  303. show_if: [["acl_enable", "=", true]]
  304. attrs: []
  305. - variable: host_path_config
  306. label: Host Path Configuration
  307. schema:
  308. type: dict
  309. show_if: [["type", "=", "host_path"]]
  310. attrs:
  311. - variable: acl_enable
  312. label: Enable ACL
  313. description: Enable ACL for the storage.
  314. schema:
  315. type: boolean
  316. default: false
  317. - variable: acl
  318. label: ACL Configuration
  319. schema:
  320. type: dict
  321. show_if: [["acl_enable", "=", true]]
  322. attrs: []
  323. $ref:
  324. - "normalize/acl"
  325. - variable: path
  326. label: Host Path
  327. description: The host path to use for storage.
  328. schema:
  329. type: hostpath
  330. show_if: [["acl_enable", "=", false]]
  331. required: true
  332. - variable: originals
  333. label: Photoprism Originals Storage
  334. description: The path to store Photoprism Originals.
  335. schema:
  336. type: dict
  337. attrs:
  338. - variable: type
  339. label: Type
  340. description: |
  341. ixVolume: Is dataset created automatically by the system.</br>
  342. Host Path: Is a path that already exists on the system.
  343. schema:
  344. type: string
  345. required: true
  346. default: "ix_volume"
  347. enum:
  348. - value: "host_path"
  349. description: Host Path (Path that already exists on the system)
  350. - value: "ix_volume"
  351. description: ixVolume (Dataset created automatically by the system)
  352. - variable: read_only
  353. label: Read Only
  354. description: Mount the volume as read only.
  355. schema:
  356. type: boolean
  357. default: false
  358. - variable: ix_volume_config
  359. label: ixVolume Configuration
  360. description: The configuration for the ixVolume dataset.
  361. schema:
  362. type: dict
  363. show_if: [["type", "=", "ix_volume"]]
  364. $ref:
  365. - "normalize/ix_volume"
  366. attrs:
  367. - variable: acl_enable
  368. label: Enable ACL
  369. description: Enable ACL for the storage.
  370. schema:
  371. type: boolean
  372. default: false
  373. - variable: dataset_name
  374. label: Dataset Name
  375. description: The name of the dataset to use for storage.
  376. schema:
  377. type: string
  378. required: true
  379. hidden: true
  380. default: "originals"
  381. - variable: acl_entries
  382. label: ACL Configuration
  383. schema:
  384. type: dict
  385. show_if: [["acl_enable", "=", true]]
  386. attrs: []
  387. - variable: host_path_config
  388. label: Host Path Configuration
  389. schema:
  390. type: dict
  391. show_if: [["type", "=", "host_path"]]
  392. attrs:
  393. - variable: acl_enable
  394. label: Enable ACL
  395. description: Enable ACL for the storage.
  396. schema:
  397. type: boolean
  398. default: false
  399. - variable: acl
  400. label: ACL Configuration
  401. schema:
  402. type: dict
  403. show_if: [["acl_enable", "=", true]]
  404. attrs: []
  405. $ref:
  406. - "normalize/acl"
  407. - variable: path
  408. label: Host Path
  409. description: The host path to use for storage.
  410. schema:
  411. type: hostpath
  412. show_if: [["acl_enable", "=", false]]
  413. required: true
  414. - variable: additional_storage
  415. label: Additional Storage
  416. schema:
  417. type: list
  418. default: []
  419. items:
  420. - variable: storageEntry
  421. label: Storage Entry
  422. schema:
  423. type: dict
  424. attrs:
  425. - variable: type
  426. label: Type
  427. description: |
  428. ixVolume: Is dataset created automatically by the system.</br>
  429. Host Path: Is a path that already exists on the system.</br>
  430. SMB Share: Is a SMB share that is mounted to as a volume.
  431. schema:
  432. type: string
  433. required: true
  434. default: "ix_volume"
  435. enum:
  436. - value: "host_path"
  437. description: Host Path (Path that already exists on the system)
  438. - value: "ix_volume"
  439. description: ixVolume (Dataset created automatically by the system)
  440. - value: "cifs"
  441. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  442. - variable: read_only
  443. label: Read Only
  444. description: Mount the volume as read only.
  445. schema:
  446. type: boolean
  447. default: false
  448. - variable: mount_path
  449. label: Mount Path
  450. description: The path inside the container to mount the storage.
  451. schema:
  452. type: path
  453. required: true
  454. - variable: host_path_config
  455. label: Host Path Configuration
  456. schema:
  457. type: dict
  458. show_if: [["type", "=", "host_path"]]
  459. attrs:
  460. - variable: acl_enable
  461. label: Enable ACL
  462. description: Enable ACL for the storage.
  463. schema:
  464. type: boolean
  465. default: false
  466. - variable: acl
  467. label: ACL Configuration
  468. schema:
  469. type: dict
  470. show_if: [["acl_enable", "=", true]]
  471. attrs: []
  472. $ref:
  473. - "normalize/acl"
  474. - variable: path
  475. label: Host Path
  476. description: The host path to use for storage.
  477. schema:
  478. type: hostpath
  479. show_if: [["acl_enable", "=", false]]
  480. required: true
  481. - variable: ix_volume_config
  482. label: ixVolume Configuration
  483. description: The configuration for the ixVolume dataset.
  484. schema:
  485. type: dict
  486. show_if: [["type", "=", "ix_volume"]]
  487. $ref:
  488. - "normalize/ix_volume"
  489. attrs:
  490. - variable: acl_enable
  491. label: Enable ACL
  492. description: Enable ACL for the storage.
  493. schema:
  494. type: boolean
  495. default: false
  496. - variable: dataset_name
  497. label: Dataset Name
  498. description: The name of the dataset to use for storage.
  499. schema:
  500. type: string
  501. required: true
  502. default: "storage_entry"
  503. - variable: acl_entries
  504. label: ACL Configuration
  505. schema:
  506. type: dict
  507. show_if: [["acl_enable", "=", true]]
  508. attrs: []
  509. $ref:
  510. - "normalize/acl"
  511. - variable: cifs_config
  512. label: SMB Configuration
  513. description: The configuration for the SMB dataset.
  514. schema:
  515. type: dict
  516. show_if: [["type", "=", "cifs"]]
  517. attrs:
  518. - variable: server
  519. label: Server
  520. description: The server to mount the SMB share.
  521. schema:
  522. type: string
  523. required: true
  524. - variable: path
  525. label: Path
  526. description: The path to mount the SMB share.
  527. schema:
  528. type: string
  529. required: true
  530. - variable: username
  531. label: Username
  532. description: The username to use for the SMB share.
  533. schema:
  534. type: string
  535. required: true
  536. - variable: password
  537. label: Password
  538. description: The password to use for the SMB share.
  539. schema:
  540. type: string
  541. required: true
  542. private: true
  543. - variable: domain
  544. label: Domain
  545. description: The domain to use for the SMB share.
  546. schema:
  547. type: string
  548. - variable: labels
  549. label: ""
  550. group: Labels Configuration
  551. schema:
  552. type: list
  553. default: []
  554. items:
  555. - variable: label
  556. label: Label
  557. schema:
  558. type: dict
  559. attrs:
  560. - variable: key
  561. label: Key
  562. schema:
  563. type: string
  564. required: true
  565. - variable: value
  566. label: Value
  567. schema:
  568. type: string
  569. required: true
  570. - variable: containers
  571. label: Containers
  572. description: Containers where the label should be applied
  573. schema:
  574. type: list
  575. items:
  576. - variable: container
  577. label: Container
  578. schema:
  579. type: string
  580. required: true
  581. enum:
  582. - value: photoprism
  583. description: photoprism
  584. - variable: resources
  585. label: ""
  586. group: Resources Configuration
  587. schema:
  588. type: dict
  589. attrs:
  590. - variable: limits
  591. label: Limits
  592. schema:
  593. type: dict
  594. attrs:
  595. - variable: cpus
  596. label: CPUs
  597. description: CPUs limit for Photoprism.
  598. schema:
  599. type: int
  600. default: 2
  601. required: true
  602. - variable: memory
  603. label: Memory (in MB)
  604. description: Memory limit for Photoprism.
  605. schema:
  606. type: int
  607. default: 4096
  608. required: true
  609. - variable: gpus
  610. group: Resources Configuration
  611. label: GPU Configuration
  612. schema:
  613. type: dict
  614. $ref:
  615. - "definitions/gpu_configuration"
  616. attrs: []