questions.yaml 25 KB

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