questions.yaml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514
  1. groups:
  2. - name: 2FAuth Configuration
  3. description: Configure 2FAuth
  4. - name: User and Group Configuration
  5. description: Configure User and Group for 2FAuth
  6. - name: Network Configuration
  7. description: Configure Network for 2FAuth
  8. - name: Storage Configuration
  9. description: Configure Storage for 2FAuth
  10. - name: Labels Configuration
  11. description: Configure Labels for 2FAuth
  12. - name: Resources Configuration
  13. description: Configure Resources for 2FAuth
  14. questions:
  15. - variable: TZ
  16. group: 2FAuth Configuration
  17. label: Timezone
  18. schema:
  19. type: string
  20. default: "Etc/UTC"
  21. required: true
  22. $ref:
  23. - "definitions/timezone"
  24. - variable: twofactor_auth
  25. label: ""
  26. group: 2FAuth Configuration
  27. schema:
  28. type: dict
  29. attrs:
  30. - variable: app_key
  31. label: App Key
  32. description: The app key for 2FAuth.
  33. schema:
  34. type: string
  35. required: true
  36. private: true
  37. min_length: 32
  38. max_length: 32
  39. default: ""
  40. - variable: app_name
  41. label: App Name
  42. description: The app name for 2FAuth.
  43. schema:
  44. type: string
  45. required: true
  46. default: 2FAuth
  47. - variable: app_url
  48. label: App URL
  49. description: |
  50. The app URL for 2FAuth.</br>
  51. Setting this wrong will show a blank page.</br>
  52. Examples:</br>
  53. https://2fauth.example.com </br>
  54. http://192.168.1.100:30081
  55. schema:
  56. type: uri
  57. required: true
  58. default: ""
  59. - variable: site_owner_email
  60. label: Site Owner Email
  61. description: The email address of the site owner.
  62. schema:
  63. type: string
  64. required: true
  65. default: ""
  66. - variable: authentication_guard
  67. label: Authentication Guard
  68. description: |
  69. When using 'reverse-proxy-guard' 2FAuth only look for the dedicated headers and skip all
  70. other built-in authentication checks. That means your proxy is fully responsible of the
  71. authentication process, 2FAuth will trust him as long as headers are presents.
  72. schema:
  73. type: string
  74. default: "web-guard"
  75. required: true
  76. enum:
  77. - value: "web-guard"
  78. description: Web Guard
  79. - value: "reverse-proxy-guard"
  80. description: Reverse Proxy Guard
  81. - variable: authentication_header_user
  82. label: Authentication Proxy Header User
  83. description: |
  84. Name of the HTTP headers sent by the reverse proxy that identifies the authenticated
  85. user at proxy level. Check your proxy documentation to find out how these headers are named.
  86. schema:
  87. type: string
  88. default: ""
  89. show_if: [["authentication_guard", "=", "reverse-proxy-guard"]]
  90. required: true
  91. - variable: authentication_header_email
  92. label: Authentication Proxy Header Email
  93. description: |
  94. Name of the HTTP headers sent by the reverse proxy that identifies the authenticated
  95. user at proxy level. Check your proxy documentation to find out how these headers are named.
  96. schema:
  97. type: string
  98. default: ""
  99. show_if: [["authentication_guard", "=", "reverse-proxy-guard"]]
  100. required: true
  101. - variable: webauthn_user_verification
  102. label: WebAuthn User Verification
  103. description: |
  104. Most authenticators and smartphones will ask the user to actively verify
  105. themselves for log in. For example, through a touch plus pin code,
  106. password entry, or biometric recognition (e.g., presenting a fingerprint).
  107. The intent is to distinguish one user from any other.
  108. schema:
  109. type: string
  110. default: "preferred"
  111. required: true
  112. enum:
  113. - value: "preferred"
  114. description: Preferred
  115. - value: "required"
  116. description: Required
  117. - value: "discouraged"
  118. description: Discouraged
  119. - variable: trusted_proxies
  120. label: Trusted Proxies
  121. description: The list of proxies IP to trust
  122. schema:
  123. type: list
  124. default: []
  125. items:
  126. - variable: trustedProxy
  127. label: Trusted Proxy
  128. schema:
  129. type: string
  130. required: true
  131. - variable: additional_envs
  132. label: Additional Environment Variables
  133. schema:
  134. type: list
  135. default: []
  136. items:
  137. - variable: env
  138. label: Environment Variable
  139. schema:
  140. type: dict
  141. attrs:
  142. - variable: name
  143. label: Name
  144. schema:
  145. type: string
  146. required: true
  147. - variable: value
  148. label: Value
  149. schema:
  150. type: string
  151. - variable: run_as
  152. label: ""
  153. group: User and Group Configuration
  154. schema:
  155. type: dict
  156. attrs:
  157. - variable: user
  158. label: User ID
  159. description: The user id that 2FAuth files will be owned by.
  160. schema:
  161. type: int
  162. min: 568
  163. default: 568
  164. required: true
  165. - variable: group
  166. label: Group ID
  167. description: The group id that 2FAuth files will be owned by.
  168. schema:
  169. type: int
  170. min: 568
  171. default: 568
  172. required: true
  173. - variable: network
  174. label: ""
  175. group: Network Configuration
  176. schema:
  177. type: dict
  178. attrs:
  179. - variable: host_network
  180. label: Host Network
  181. description: |
  182. Bind to the host network. It's recommended to keep this disabled.
  183. schema:
  184. type: boolean
  185. default: false
  186. - variable: web_port
  187. label: WebUI Port
  188. schema:
  189. type: dict
  190. show_if: [["host_network", "=", false]]
  191. attrs:
  192. - variable: bind_mode
  193. label: Port Bind Mode
  194. description: |
  195. The port bind mode.</br>
  196. - Publish: The port will be published on the host for external access.</br>
  197. - Expose: The port will be exposed for inter-container communication.</br>
  198. - None: The port will not be exposed or published.</br>
  199. Note: If the Dockerfile defines an EXPOSE directive,
  200. the port will still be exposed for inter-container communication regardless of this setting.
  201. schema:
  202. type: string
  203. default: "published"
  204. enum:
  205. - value: "published"
  206. description: Publish port on the host for external access
  207. - value: "exposed"
  208. description: Expose port for inter-container communication
  209. - value: ""
  210. description: None
  211. - variable: port_number
  212. label: Port Number
  213. schema:
  214. type: int
  215. show_if: [["bind_mode", "=", "published"]]
  216. default: 30081
  217. min: 1
  218. max: 65535
  219. required: true
  220. - variable: host_ips
  221. label: Host IPs
  222. description: IPs on the host to bind this port
  223. schema:
  224. type: list
  225. show_if: [["bind_mode", "=", "published"]]
  226. default: []
  227. items:
  228. - variable: host_ip
  229. label: Host IP
  230. schema:
  231. type: string
  232. required: true
  233. $ref:
  234. - definitions/node_bind_ip
  235. - variable: storage
  236. label: ""
  237. group: Storage Configuration
  238. schema:
  239. type: dict
  240. attrs:
  241. - variable: config
  242. label: 2FAuth Config Storage
  243. description: The path to store 2FAuth Config.
  244. schema:
  245. type: dict
  246. attrs:
  247. - variable: type
  248. label: Type
  249. description: |
  250. ixVolume: Is dataset created automatically by the system.</br>
  251. Host Path: Is a path that already exists on the system.
  252. schema:
  253. type: string
  254. required: true
  255. default: "ix_volume"
  256. enum:
  257. - value: "host_path"
  258. description: Host Path (Path that already exists on the system)
  259. - value: "ix_volume"
  260. description: ixVolume (Dataset created automatically by the system)
  261. - variable: ix_volume_config
  262. label: ixVolume Configuration
  263. description: The configuration for the ixVolume dataset.
  264. schema:
  265. type: dict
  266. show_if: [["type", "=", "ix_volume"]]
  267. $ref:
  268. - "normalize/ix_volume"
  269. attrs:
  270. - variable: acl_enable
  271. label: Enable ACL
  272. description: Enable ACL for the storage.
  273. schema:
  274. type: boolean
  275. default: false
  276. - variable: dataset_name
  277. label: Dataset Name
  278. description: The name of the dataset to use for storage.
  279. schema:
  280. type: string
  281. required: true
  282. hidden: true
  283. default: "config"
  284. - variable: acl_entries
  285. label: ACL Configuration
  286. schema:
  287. type: dict
  288. show_if: [["acl_enable", "=", true]]
  289. attrs: []
  290. - variable: host_path_config
  291. label: Host Path Configuration
  292. schema:
  293. type: dict
  294. show_if: [["type", "=", "host_path"]]
  295. attrs:
  296. - variable: acl_enable
  297. label: Enable ACL
  298. description: Enable ACL for the storage.
  299. schema:
  300. type: boolean
  301. default: false
  302. - variable: acl
  303. label: ACL Configuration
  304. schema:
  305. type: dict
  306. show_if: [["acl_enable", "=", true]]
  307. attrs: []
  308. $ref:
  309. - "normalize/acl"
  310. - variable: path
  311. label: Host Path
  312. description: The host path to use for storage.
  313. schema:
  314. type: hostpath
  315. show_if: [["acl_enable", "=", false]]
  316. required: true
  317. - variable: additional_storage
  318. label: Additional Storage
  319. schema:
  320. type: list
  321. default: []
  322. items:
  323. - variable: storageEntry
  324. label: Storage Entry
  325. schema:
  326. type: dict
  327. attrs:
  328. - variable: type
  329. label: Type
  330. description: |
  331. ixVolume: Is dataset created automatically by the system.</br>
  332. Host Path: Is a path that already exists on the system.</br>
  333. SMB Share: Is a SMB share that is mounted to as a volume.
  334. schema:
  335. type: string
  336. required: true
  337. default: "ix_volume"
  338. enum:
  339. - value: "host_path"
  340. description: Host Path (Path that already exists on the system)
  341. - value: "ix_volume"
  342. description: ixVolume (Dataset created automatically by the system)
  343. - value: "cifs"
  344. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  345. - variable: read_only
  346. label: Read Only
  347. description: Mount the volume as read only.
  348. schema:
  349. type: boolean
  350. default: false
  351. - variable: mount_path
  352. label: Mount Path
  353. description: The path inside the container to mount the storage.
  354. schema:
  355. type: path
  356. required: true
  357. - variable: host_path_config
  358. label: Host Path Configuration
  359. schema:
  360. type: dict
  361. show_if: [["type", "=", "host_path"]]
  362. attrs:
  363. - variable: acl_enable
  364. label: Enable ACL
  365. description: Enable ACL for the storage.
  366. schema:
  367. type: boolean
  368. default: false
  369. - variable: acl
  370. label: ACL Configuration
  371. schema:
  372. type: dict
  373. show_if: [["acl_enable", "=", true]]
  374. attrs: []
  375. $ref:
  376. - "normalize/acl"
  377. - variable: path
  378. label: Host Path
  379. description: The host path to use for storage.
  380. schema:
  381. type: hostpath
  382. show_if: [["acl_enable", "=", false]]
  383. required: true
  384. - variable: ix_volume_config
  385. label: ixVolume Configuration
  386. description: The configuration for the ixVolume dataset.
  387. schema:
  388. type: dict
  389. show_if: [["type", "=", "ix_volume"]]
  390. $ref:
  391. - "normalize/ix_volume"
  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: dataset_name
  400. label: Dataset Name
  401. description: The name of the dataset to use for storage.
  402. schema:
  403. type: string
  404. required: true
  405. default: "storage_entry"
  406. - variable: acl_entries
  407. label: ACL Configuration
  408. schema:
  409. type: dict
  410. show_if: [["acl_enable", "=", true]]
  411. attrs: []
  412. $ref:
  413. - "normalize/acl"
  414. - variable: cifs_config
  415. label: SMB Configuration
  416. description: The configuration for the SMB dataset.
  417. schema:
  418. type: dict
  419. show_if: [["type", "=", "cifs"]]
  420. attrs:
  421. - variable: server
  422. label: Server
  423. description: The server to mount the SMB share.
  424. schema:
  425. type: string
  426. required: true
  427. - variable: path
  428. label: Path
  429. description: The path to mount the SMB share.
  430. schema:
  431. type: string
  432. required: true
  433. - variable: username
  434. label: Username
  435. description: The username to use for the SMB share.
  436. schema:
  437. type: string
  438. required: true
  439. - variable: password
  440. label: Password
  441. description: The password to use for the SMB share.
  442. schema:
  443. type: string
  444. required: true
  445. private: true
  446. - variable: domain
  447. label: Domain
  448. description: The domain to use for the SMB share.
  449. schema:
  450. type: string
  451. - variable: labels
  452. label: ""
  453. group: Labels Configuration
  454. schema:
  455. type: list
  456. default: []
  457. items:
  458. - variable: label
  459. label: Label
  460. schema:
  461. type: dict
  462. attrs:
  463. - variable: key
  464. label: Key
  465. schema:
  466. type: string
  467. required: true
  468. - variable: value
  469. label: Value
  470. schema:
  471. type: string
  472. required: true
  473. - variable: containers
  474. label: Containers
  475. description: Containers where the label should be applied
  476. schema:
  477. type: list
  478. items:
  479. - variable: container
  480. label: Container
  481. schema:
  482. type: string
  483. required: true
  484. enum:
  485. - value: twofactor-auth
  486. description: twofactor-auth
  487. - variable: resources
  488. label: ""
  489. group: Resources Configuration
  490. schema:
  491. type: dict
  492. attrs:
  493. - variable: limits
  494. label: Limits
  495. schema:
  496. type: dict
  497. attrs:
  498. - variable: cpus
  499. label: CPUs
  500. description: CPUs limit for 2FAuth.
  501. schema:
  502. type: int
  503. default: 2
  504. required: true
  505. - variable: memory
  506. label: Memory (in MB)
  507. description: Memory limit for 2FAuth.
  508. schema:
  509. type: int
  510. default: 4096
  511. required: true