questions.yaml 23 KB

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