questions.yaml 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828
  1. groups:
  2. - name: Windmill Configuration
  3. description: Configure Windmill
  4. - name: Network Configuration
  5. description: Configure Network for Windmill
  6. - name: Storage Configuration
  7. description: Configure Storage for Windmill
  8. - name: Labels Configuration
  9. description: Configure Labels for Windmill
  10. - name: Resources Configuration
  11. description: Configure Resources for Windmill
  12. questions:
  13. - variable: TZ
  14. group: Windmill Configuration
  15. label: Timezone
  16. schema:
  17. type: string
  18. default: Etc/UTC
  19. required: true
  20. $ref:
  21. - definitions/timezone
  22. - variable: windmill
  23. label: ""
  24. group: Windmill 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_17_image
  43. description: Postgres 17
  44. - variable: db_password
  45. label: Database Password
  46. description: The password for PostgreSQL database.
  47. schema:
  48. type: string
  49. default: ""
  50. required: true
  51. private: true
  52. - variable: enable_report_workers
  53. label: Enable Report Workers
  54. description: |
  55. Enable report workers for Windmill.</br>
  56. This is used for generating reports, web scraping and
  57. sending notifications.
  58. schema:
  59. type: boolean
  60. default: false
  61. - variable: reports_num_workers
  62. label: Report Worker Threads
  63. description: Number of worker threads per report worker.
  64. schema:
  65. type: int
  66. show_if: [["enable_report_workers", "=", true]]
  67. min: 1
  68. default: 8
  69. required: true
  70. - variable: native_num_workers
  71. label: Native Worker Threads
  72. description: Number of worker threads per native worker.
  73. schema:
  74. type: int
  75. default: 8
  76. min: 1
  77. required: true
  78. - variable: mount_docker_socket
  79. label: Mount Docker Socket
  80. description: |
  81. Mount the Docker socket to allow running Docker containers from within workers.</br>
  82. This gives the workers access to the host Docker daemon.
  83. schema:
  84. type: boolean
  85. default: false
  86. - variable: additional_envs
  87. label: Additional Environment Variables
  88. schema:
  89. type: list
  90. default: []
  91. items:
  92. - variable: env
  93. label: Environment Variable
  94. schema:
  95. type: dict
  96. attrs:
  97. - variable: name
  98. label: Name
  99. schema:
  100. type: string
  101. required: true
  102. - variable: value
  103. label: Value
  104. schema:
  105. type: string
  106. - variable: network
  107. label: ""
  108. group: Network Configuration
  109. schema:
  110. type: dict
  111. attrs:
  112. - variable: web_port
  113. label: WebUI Port
  114. schema:
  115. type: dict
  116. attrs:
  117. - variable: bind_mode
  118. label: Port Bind Mode
  119. description: |
  120. The port bind mode.</br>
  121. - Publish: The port will be published on the host for external access.</br>
  122. - Expose: The port will be exposed for inter-container communication.</br>
  123. - None: The port will not be exposed or published.</br>
  124. Note: If the Dockerfile defines an EXPOSE directive,
  125. the port will still be exposed for inter-container communication regardless of this setting.
  126. schema:
  127. type: string
  128. default: "published"
  129. enum:
  130. - value: "published"
  131. description: Publish port on the host for external access
  132. - value: "exposed"
  133. description: Expose port for inter-container communication
  134. - value: ""
  135. description: None
  136. - variable: port_number
  137. label: Port Number
  138. schema:
  139. type: int
  140. default: 30155
  141. min: 1
  142. max: 65535
  143. required: true
  144. - variable: host_ips
  145. label: Host IPs
  146. description: IPs on the host to bind this port
  147. schema:
  148. type: list
  149. show_if: [["bind_mode", "=", "published"]]
  150. default: []
  151. items:
  152. - variable: host_ip
  153. label: Host IP
  154. schema:
  155. type: string
  156. required: true
  157. $ref:
  158. - definitions/node_bind_ip
  159. - variable: smtp_port
  160. label: SMTP Port
  161. schema:
  162. type: dict
  163. attrs:
  164. - variable: bind_mode
  165. label: Port Bind Mode
  166. description: |
  167. The port bind mode.</br>
  168. - Publish: The port will be published on the host for external access.</br>
  169. - Expose: The port will be exposed for inter-container communication.</br>
  170. - None: The port will not be exposed or published.</br>
  171. Note: If the Dockerfile defines an EXPOSE directive,
  172. the port will still be exposed for inter-container communication regardless of this setting.
  173. schema:
  174. type: string
  175. default: "published"
  176. enum:
  177. - value: "published"
  178. description: Publish port on the host for external access
  179. - value: "exposed"
  180. description: Expose port for inter-container communication
  181. - value: ""
  182. description: None
  183. - variable: port_number
  184. label: Port Number
  185. schema:
  186. type: int
  187. default: 30156
  188. min: 1
  189. max: 65535
  190. required: true
  191. - variable: host_ips
  192. label: Host IPs
  193. description: IPs on the host to bind this port
  194. schema:
  195. type: list
  196. show_if: [["bind_mode", "=", "published"]]
  197. default: []
  198. items:
  199. - variable: host_ip
  200. label: Host IP
  201. schema:
  202. type: string
  203. required: true
  204. $ref:
  205. - definitions/node_bind_ip
  206. - variable: storage
  207. label: ""
  208. group: Storage Configuration
  209. schema:
  210. type: dict
  211. attrs:
  212. - variable: postgres_data
  213. label: PostgreSQL Data Storage
  214. description: The path to store PostgreSQL data.
  215. schema:
  216. type: dict
  217. attrs:
  218. - variable: type
  219. label: Type
  220. description: |
  221. ixVolume: Is dataset created automatically by the system.</br>
  222. Host Path: Is a path that already exists on the system.
  223. schema:
  224. type: string
  225. required: true
  226. default: "ix_volume"
  227. enum:
  228. - value: "host_path"
  229. description: Host Path (Path that already exists on the system)
  230. - value: "ix_volume"
  231. description: ixVolume (Dataset created automatically by the system)
  232. - variable: ix_volume_config
  233. label: ixVolume Configuration
  234. description: The configuration for the ixVolume dataset.
  235. schema:
  236. type: dict
  237. show_if: [["type", "=", "ix_volume"]]
  238. $ref:
  239. - "normalize/ix_volume"
  240. attrs:
  241. - variable: acl_enable
  242. label: Enable ACL
  243. description: Enable ACL for the storage.
  244. schema:
  245. type: boolean
  246. default: false
  247. - variable: dataset_name
  248. label: Dataset Name
  249. description: The name of the dataset to use for storage.
  250. schema:
  251. type: string
  252. required: true
  253. hidden: true
  254. default: "postgres_data"
  255. - variable: acl_entries
  256. label: ACL Configuration
  257. schema:
  258. type: dict
  259. show_if: [["acl_enable", "=", true]]
  260. attrs: []
  261. - variable: auto_permissions
  262. label: Automatic Permissions
  263. description: |
  264. Automatically set permissions for the host path.
  265. Enabling this will check the top level directory,</br>
  266. If it finds incorrect permissions, it will `chown` the
  267. host path to the user and group required for the
  268. postgres container.
  269. schema:
  270. type: boolean
  271. default: false
  272. show_if: [["acl_enable", "=", false]]
  273. - variable: host_path_config
  274. label: Host Path Configuration
  275. schema:
  276. type: dict
  277. show_if: [["type", "=", "host_path"]]
  278. attrs:
  279. - variable: acl_enable
  280. label: Enable ACL
  281. description: Enable ACL for the storage.
  282. schema:
  283. type: boolean
  284. default: false
  285. - variable: acl
  286. label: ACL Configuration
  287. schema:
  288. type: dict
  289. show_if: [["acl_enable", "=", true]]
  290. attrs: []
  291. $ref:
  292. - "normalize/acl"
  293. - variable: path
  294. label: Host Path
  295. description: The host path to use for storage.
  296. schema:
  297. type: hostpath
  298. show_if: [["acl_enable", "=", false]]
  299. required: true
  300. - variable: auto_permissions
  301. label: Automatic Permissions
  302. description: |
  303. Automatically set permissions for the host path.
  304. Enabling this, will check the top level directory,</br>
  305. If it finds incorrect permissions, it will `chown` the
  306. host path to the user and group required for the
  307. postgres container.
  308. schema:
  309. type: boolean
  310. default: true
  311. show_if: [["acl_enable", "=", false]]
  312. - variable: worker_cache
  313. label: Worker Cache Storage
  314. description: The path to store worker dependency cache.
  315. schema:
  316. type: dict
  317. attrs:
  318. - variable: type
  319. label: Type
  320. description: |
  321. ixVolume: Is dataset created automatically by the system.</br>
  322. Host Path: Is a path that already exists on the system.
  323. schema:
  324. type: string
  325. required: true
  326. default: "ix_volume"
  327. enum:
  328. - value: "host_path"
  329. description: Host Path (Path that already exists on the system)
  330. - value: "ix_volume"
  331. description: ixVolume (Dataset created automatically by the system)
  332. - variable: ix_volume_config
  333. label: ixVolume Configuration
  334. description: The configuration for the ixVolume dataset.
  335. schema:
  336. type: dict
  337. show_if: [["type", "=", "ix_volume"]]
  338. $ref:
  339. - "normalize/ix_volume"
  340. attrs:
  341. - variable: acl_enable
  342. label: Enable ACL
  343. description: Enable ACL for the storage.
  344. schema:
  345. type: boolean
  346. default: false
  347. - variable: dataset_name
  348. label: Dataset Name
  349. description: The name of the dataset to use for storage.
  350. schema:
  351. type: string
  352. required: true
  353. hidden: true
  354. default: "worker_cache"
  355. - variable: acl_entries
  356. label: ACL Configuration
  357. schema:
  358. type: dict
  359. show_if: [["acl_enable", "=", true]]
  360. attrs: []
  361. - variable: host_path_config
  362. label: Host Path Configuration
  363. schema:
  364. type: dict
  365. show_if: [["type", "=", "host_path"]]
  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: acl
  374. label: ACL Configuration
  375. schema:
  376. type: dict
  377. show_if: [["acl_enable", "=", true]]
  378. attrs: []
  379. $ref:
  380. - "normalize/acl"
  381. - variable: path
  382. label: Host Path
  383. description: The host path to use for storage.
  384. schema:
  385. type: hostpath
  386. show_if: [["acl_enable", "=", false]]
  387. required: true
  388. - variable: worker_logs
  389. label: Worker Logs Storage
  390. description: The path to store worker logs.
  391. schema:
  392. type: dict
  393. attrs:
  394. - variable: type
  395. label: Type
  396. description: |
  397. ixVolume: Is dataset created automatically by the system.</br>
  398. Host Path: Is a path that already exists on the system.
  399. schema:
  400. type: string
  401. required: true
  402. default: "ix_volume"
  403. enum:
  404. - value: "host_path"
  405. description: Host Path (Path that already exists on the system)
  406. - value: "ix_volume"
  407. description: ixVolume (Dataset created automatically by the system)
  408. - variable: ix_volume_config
  409. label: ixVolume Configuration
  410. description: The configuration for the ixVolume dataset.
  411. schema:
  412. type: dict
  413. show_if: [["type", "=", "ix_volume"]]
  414. $ref:
  415. - "normalize/ix_volume"
  416. attrs:
  417. - variable: acl_enable
  418. label: Enable ACL
  419. description: Enable ACL for the storage.
  420. schema:
  421. type: boolean
  422. default: false
  423. - variable: dataset_name
  424. label: Dataset Name
  425. description: The name of the dataset to use for storage.
  426. schema:
  427. type: string
  428. required: true
  429. hidden: true
  430. default: "worker_logs"
  431. - variable: acl_entries
  432. label: ACL Configuration
  433. schema:
  434. type: dict
  435. show_if: [["acl_enable", "=", true]]
  436. attrs: []
  437. - variable: host_path_config
  438. label: Host Path Configuration
  439. schema:
  440. type: dict
  441. show_if: [["type", "=", "host_path"]]
  442. attrs:
  443. - variable: acl_enable
  444. label: Enable ACL
  445. description: Enable ACL for the storage.
  446. schema:
  447. type: boolean
  448. default: false
  449. - variable: acl
  450. label: ACL Configuration
  451. schema:
  452. type: dict
  453. show_if: [["acl_enable", "=", true]]
  454. attrs: []
  455. $ref:
  456. - "normalize/acl"
  457. - variable: path
  458. label: Host Path
  459. description: The host path to use for storage.
  460. schema:
  461. type: hostpath
  462. show_if: [["acl_enable", "=", false]]
  463. required: true
  464. - variable: lsp_cache
  465. label: LSP Cache Storage
  466. description: The path to store LSP cache data.
  467. schema:
  468. type: dict
  469. attrs:
  470. - variable: type
  471. label: Type
  472. description: |
  473. ixVolume: Is dataset created automatically by the system.</br>
  474. Host Path: Is a path that already exists on the system.
  475. schema:
  476. type: string
  477. required: true
  478. default: "ix_volume"
  479. enum:
  480. - value: "host_path"
  481. description: Host Path (Path that already exists on the system)
  482. - value: "ix_volume"
  483. description: ixVolume (Dataset created automatically by the system)
  484. - variable: ix_volume_config
  485. label: ixVolume Configuration
  486. description: The configuration for the ixVolume dataset.
  487. schema:
  488. type: dict
  489. show_if: [["type", "=", "ix_volume"]]
  490. $ref:
  491. - "normalize/ix_volume"
  492. attrs:
  493. - variable: acl_enable
  494. label: Enable ACL
  495. description: Enable ACL for the storage.
  496. schema:
  497. type: boolean
  498. default: false
  499. - variable: dataset_name
  500. label: Dataset Name
  501. description: The name of the dataset to use for storage.
  502. schema:
  503. type: string
  504. required: true
  505. hidden: true
  506. default: "lsp_cache"
  507. - variable: acl_entries
  508. label: ACL Configuration
  509. schema:
  510. type: dict
  511. show_if: [["acl_enable", "=", true]]
  512. attrs: []
  513. - variable: host_path_config
  514. label: Host Path Configuration
  515. schema:
  516. type: dict
  517. show_if: [["type", "=", "host_path"]]
  518. attrs:
  519. - variable: acl_enable
  520. label: Enable ACL
  521. description: Enable ACL for the storage.
  522. schema:
  523. type: boolean
  524. default: false
  525. - variable: acl
  526. label: ACL Configuration
  527. schema:
  528. type: dict
  529. show_if: [["acl_enable", "=", true]]
  530. attrs: []
  531. $ref:
  532. - "normalize/acl"
  533. - variable: path
  534. label: Host Path
  535. description: The host path to use for storage.
  536. schema:
  537. type: hostpath
  538. show_if: [["acl_enable", "=", false]]
  539. required: true
  540. - variable: caddy_data
  541. label: Caddy Data Storage
  542. description: The path to store Caddy data.
  543. schema:
  544. type: dict
  545. attrs:
  546. - variable: type
  547. label: Type
  548. description: |
  549. ixVolume: Is dataset created automatically by the system.</br>
  550. Host Path: Is a path that already exists on the system.
  551. schema:
  552. type: string
  553. required: true
  554. default: "ix_volume"
  555. enum:
  556. - value: "host_path"
  557. description: Host Path (Path that already exists on the system)
  558. - value: "ix_volume"
  559. description: ixVolume (Dataset created automatically by the system)
  560. - variable: ix_volume_config
  561. label: ixVolume Configuration
  562. description: The configuration for the ixVolume dataset.
  563. schema:
  564. type: dict
  565. show_if: [["type", "=", "ix_volume"]]
  566. $ref:
  567. - "normalize/ix_volume"
  568. attrs:
  569. - variable: acl_enable
  570. label: Enable ACL
  571. description: Enable ACL for the storage.
  572. schema:
  573. type: boolean
  574. default: false
  575. - variable: dataset_name
  576. label: Dataset Name
  577. description: The name of the dataset to use for storage.
  578. schema:
  579. type: string
  580. required: true
  581. hidden: true
  582. default: "caddy_data"
  583. - variable: acl_entries
  584. label: ACL Configuration
  585. schema:
  586. type: dict
  587. show_if: [["acl_enable", "=", true]]
  588. attrs: []
  589. - variable: host_path_config
  590. label: Host Path Configuration
  591. schema:
  592. type: dict
  593. show_if: [["type", "=", "host_path"]]
  594. attrs:
  595. - variable: acl_enable
  596. label: Enable ACL
  597. description: Enable ACL for the storage.
  598. schema:
  599. type: boolean
  600. default: false
  601. - variable: acl
  602. label: ACL Configuration
  603. schema:
  604. type: dict
  605. show_if: [["acl_enable", "=", true]]
  606. attrs: []
  607. $ref:
  608. - "normalize/acl"
  609. - variable: path
  610. label: Host Path
  611. description: The host path to use for storage.
  612. schema:
  613. type: hostpath
  614. show_if: [["acl_enable", "=", false]]
  615. required: true
  616. - variable: additional_storage
  617. label: Additional Storage
  618. schema:
  619. type: list
  620. default: []
  621. items:
  622. - variable: storageEntry
  623. label: Storage Entry
  624. schema:
  625. type: dict
  626. attrs:
  627. - variable: type
  628. label: Type
  629. description: |
  630. ixVolume: Is dataset created automatically by the system.</br>
  631. Host Path: Is a path that already exists on the system.</br>
  632. SMB Share: Is a SMB share that is mounted to as a volume.
  633. schema:
  634. type: string
  635. required: true
  636. default: "ix_volume"
  637. enum:
  638. - value: "host_path"
  639. description: Host Path (Path that already exists on the system)
  640. - value: "ix_volume"
  641. description: ixVolume (Dataset created automatically by the system)
  642. - value: "cifs"
  643. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  644. - variable: read_only
  645. label: Read Only
  646. description: Mount the volume as read only.
  647. schema:
  648. type: boolean
  649. default: false
  650. - variable: mount_path
  651. label: Mount Path
  652. description: The path inside the container to mount the storage.
  653. schema:
  654. type: path
  655. required: true
  656. - variable: host_path_config
  657. label: Host Path Configuration
  658. schema:
  659. type: dict
  660. show_if: [["type", "=", "host_path"]]
  661. attrs:
  662. - variable: acl_enable
  663. label: Enable ACL
  664. description: Enable ACL for the storage.
  665. schema:
  666. type: boolean
  667. default: false
  668. - variable: acl
  669. label: ACL Configuration
  670. schema:
  671. type: dict
  672. show_if: [["acl_enable", "=", true]]
  673. attrs: []
  674. $ref:
  675. - "normalize/acl"
  676. - variable: path
  677. label: Host Path
  678. description: The host path to use for storage.
  679. schema:
  680. type: hostpath
  681. show_if: [["acl_enable", "=", false]]
  682. required: true
  683. - variable: ix_volume_config
  684. label: ixVolume Configuration
  685. description: The configuration for the ixVolume dataset.
  686. schema:
  687. type: dict
  688. show_if: [["type", "=", "ix_volume"]]
  689. $ref:
  690. - "normalize/ix_volume"
  691. attrs:
  692. - variable: acl_enable
  693. label: Enable ACL
  694. description: Enable ACL for the storage.
  695. schema:
  696. type: boolean
  697. default: false
  698. - variable: dataset_name
  699. label: Dataset Name
  700. description: The name of the dataset to use for storage.
  701. schema:
  702. type: string
  703. required: true
  704. default: "storage_entry"
  705. - variable: acl_entries
  706. label: ACL Configuration
  707. schema:
  708. type: dict
  709. show_if: [["acl_enable", "=", true]]
  710. attrs: []
  711. $ref:
  712. - "normalize/acl"
  713. - variable: cifs_config
  714. label: SMB Configuration
  715. description: The configuration for the SMB dataset.
  716. schema:
  717. type: dict
  718. show_if: [["type", "=", "cifs"]]
  719. attrs:
  720. - variable: server
  721. label: Server
  722. description: The server to mount the SMB share.
  723. schema:
  724. type: string
  725. required: true
  726. - variable: path
  727. label: Path
  728. description: The path to mount the SMB share.
  729. schema:
  730. type: string
  731. required: true
  732. - variable: username
  733. label: Username
  734. description: The username to use for the SMB share.
  735. schema:
  736. type: string
  737. required: true
  738. - variable: password
  739. label: Password
  740. description: The password to use for the SMB share.
  741. schema:
  742. type: string
  743. required: true
  744. private: true
  745. - variable: domain
  746. label: Domain
  747. description: The domain to use for the SMB share.
  748. schema:
  749. type: string
  750. - variable: labels
  751. label: ""
  752. group: Labels Configuration
  753. schema:
  754. type: list
  755. default: []
  756. items:
  757. - variable: label
  758. label: Label
  759. schema:
  760. type: dict
  761. attrs:
  762. - variable: key
  763. label: Key
  764. schema:
  765. type: string
  766. required: true
  767. - variable: value
  768. label: Value
  769. schema:
  770. type: string
  771. required: true
  772. - variable: containers
  773. label: Containers
  774. description: Containers where the label should be applied
  775. schema:
  776. type: list
  777. items:
  778. - variable: container
  779. label: Container
  780. schema:
  781. type: string
  782. required: true
  783. enum:
  784. - value: server
  785. description: server
  786. - value: worker
  787. description: worker
  788. - value: worker-reports
  789. description: worker-reports
  790. - value: worker-native
  791. description: worker-native
  792. - value: lsp
  793. description: lsp
  794. - value: caddy
  795. description: caddy
  796. - value: postgres
  797. description: postgres
  798. - variable: resources
  799. label: ""
  800. group: Resources Configuration
  801. schema:
  802. type: dict
  803. attrs:
  804. - variable: limits
  805. label: Limits
  806. schema:
  807. type: dict
  808. attrs:
  809. - variable: cpus
  810. label: CPUs
  811. description: CPUs limit for Windmill.
  812. schema:
  813. type: int
  814. default: 2
  815. required: true
  816. - variable: memory
  817. label: Memory (in MB)
  818. description: Memory limit for Windmill.
  819. schema:
  820. type: int
  821. default: 4096
  822. required: true