questions.yaml 23 KB

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