questions.yaml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519
  1. groups:
  2. - name: Gaseous-Server Configuration
  3. description: |
  4. Deploy Gaseous Server by selecting from the following options, where in doubt use the defaults.
  5. - name: User and Group Configuration
  6. description: Configure User and Group for Gaseous Server
  7. - name: Network Configuration
  8. description: |
  9. The Gaseous Server defaults to running on port 5198, you may change this if you wish.
  10. - name: Storage Configuration
  11. description:
  12. Gaseous Server uses two persistent volumes, one for the database, another for Configuration and ROM uploads.
  13. If you wish to map in pre-existing data, you may wish to create a new host-volume pointing to that location on your pool.
  14. NOTE - When using a Database Host volume, it must be owned by user/group 999:999, the configuration directory can be owned by root:root.
  15. - name: Labels Configuration
  16. description: Configure Labels
  17. - name: Resources Configuration
  18. description: |
  19. The defaults should work for most people. ROM Emulation happens browser side and increasing these
  20. defaults may not impact local emulation performance.
  21. questions:
  22. - variable: gaseous
  23. label: ""
  24. group: Gaseous-Server Configuration
  25. schema:
  26. type: dict
  27. attrs:
  28. - variable: db_password
  29. label: Database Password
  30. description: The password for Gaseous Server.
  31. schema:
  32. type: string
  33. default: ""
  34. required: true
  35. private: true
  36. - variable: db_root_password
  37. label: Root Database Password
  38. description: The root password for Gaseous Server.
  39. schema:
  40. type: string
  41. default: ""
  42. required: true
  43. private: true
  44. - variable: igdb_client_id
  45. label: Twitch (IGDB) Client ID
  46. description: |
  47. Twitch Client ID used for Metadata Queries </br>
  48. More Information at https://github.com/gaseous-project/gaseous-server/wiki/Metadata
  49. schema:
  50. type: string
  51. required: true
  52. default: ""
  53. - variable: igdb_client_secret
  54. label: Twitch (IGDB) Client Secret
  55. description: |
  56. Twitch Client Secret used for Metadata Queries </br>
  57. More Information at https://github.com/gaseous-project/gaseous-server/wiki/Metadata
  58. schema:
  59. type: string
  60. required: true
  61. private: true
  62. default: ""
  63. - variable: additional_envs
  64. label: Additional Environment Variables
  65. schema:
  66. type: list
  67. default: []
  68. items:
  69. - variable: env
  70. label: Environment Variable
  71. schema:
  72. type: dict
  73. attrs:
  74. - variable: name
  75. label: Name
  76. schema:
  77. type: string
  78. required: true
  79. - variable: value
  80. label: Value
  81. schema:
  82. type: string
  83. - variable: run_as
  84. label: ""
  85. group: User and Group Configuration
  86. schema:
  87. type: dict
  88. attrs:
  89. - variable: user
  90. label: User ID
  91. description: The user id that Gaseous Server files will be owned by.
  92. schema:
  93. type: int
  94. min: 568
  95. default: 568
  96. required: true
  97. - variable: group
  98. label: Group ID
  99. description: The group id that Gaseous Server files will be owned by.
  100. schema:
  101. type: int
  102. min: 568
  103. default: 568
  104. required: true
  105. - variable: network
  106. label: ""
  107. group: Network Configuration
  108. schema:
  109. type: dict
  110. attrs:
  111. - variable: web_port
  112. label: Web Port
  113. description: The port for Gaseous Server UI
  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. show_if: [["bind_mode", "=", "published"]]
  141. default: 5198
  142. min: 1
  143. max: 65535
  144. required: true
  145. - variable: host_ips
  146. label: Host IPs
  147. description: IPs on the host to bind this port
  148. schema:
  149. type: list
  150. show_if: [["bind_mode", "=", "published"]]
  151. default: []
  152. items:
  153. - variable: host_ip
  154. label: Host IP
  155. schema:
  156. type: string
  157. required: true
  158. $ref:
  159. - definitions/node_bind_ip
  160. - variable: storage
  161. label: ""
  162. group: Storage Configuration
  163. schema:
  164. type: dict
  165. attrs:
  166. - variable: mariadb_data
  167. label: Database Location
  168. description: The path to store the Database.
  169. schema:
  170. type: dict
  171. attrs:
  172. - variable: type
  173. label: Type
  174. description: |
  175. ixVolume: Is dataset created automatically by the system.</br>
  176. Host Path: Is a path that already exists on the system.
  177. schema:
  178. type: string
  179. required: true
  180. default: "ix_volume"
  181. enum:
  182. - value: "host_path"
  183. description: Host Path (Path that already exists on the system)
  184. - value: "ix_volume"
  185. description: ixVolume (Dataset created automatically by the system)
  186. - variable: ix_volume_config
  187. label: ixVolume Configuration
  188. description: The configuration for the ixVolume dataset.
  189. schema:
  190. type: dict
  191. show_if: [["type", "=", "ix_volume"]]
  192. $ref:
  193. - "normalize/ix_volume"
  194. attrs:
  195. - variable: acl_enable
  196. label: Enable ACL
  197. description: Enable ACL for the storage.
  198. schema:
  199. type: boolean
  200. default: false
  201. - variable: dataset_name
  202. label: Dataset Name
  203. description: The name of the dataset to use for storage.
  204. schema:
  205. type: string
  206. required: true
  207. hidden: true
  208. default: "mariadb_data"
  209. - variable: acl_entries
  210. label: ACL Configuration
  211. schema:
  212. type: dict
  213. show_if: [["acl_enable", "=", true]]
  214. attrs: []
  215. - variable: host_path_config
  216. label: Host Path Configuration
  217. schema:
  218. type: dict
  219. show_if: [["type", "=", "host_path"]]
  220. attrs:
  221. - variable: acl_enable
  222. label: Enable ACL
  223. description: Enable ACL for the storage.
  224. schema:
  225. type: boolean
  226. default: false
  227. - variable: acl
  228. label: ACL Configuration
  229. schema:
  230. type: dict
  231. show_if: [["acl_enable", "=", true]]
  232. attrs: []
  233. $ref:
  234. - "normalize/acl"
  235. - variable: path
  236. label: Host Path
  237. description: The host path to use for storage.
  238. schema:
  239. type: hostpath
  240. show_if: [["acl_enable", "=", false]]
  241. required: true
  242. - variable: data
  243. label: Configuration and Files Location
  244. description: Where to store Gaseous Server configuration and uploaded ROMS from the User Interface.
  245. schema:
  246. type: dict
  247. attrs:
  248. - variable: type
  249. label: Type
  250. description: |
  251. ixVolume: Is dataset created automatically by the system.</br>
  252. Host Path: Is a path that already exists on the system.
  253. schema:
  254. type: string
  255. required: true
  256. default: "ix_volume"
  257. enum:
  258. - value: "host_path"
  259. description: Host Path (Path that already exists on the system)
  260. - value: "ix_volume"
  261. description: ixVolume (Dataset created automatically by the system)
  262. - variable: ix_volume_config
  263. label: ixVolume Configuration
  264. description: The configuration for the ixVolume dataset.
  265. schema:
  266. type: dict
  267. show_if: [["type", "=", "ix_volume"]]
  268. $ref:
  269. - "normalize/ix_volume"
  270. attrs:
  271. - variable: acl_enable
  272. label: Enable ACL
  273. description: Enable ACL for the storage.
  274. schema:
  275. type: boolean
  276. default: false
  277. - variable: dataset_name
  278. label: Dataset Name
  279. description: The name of the dataset to use for storage.
  280. schema:
  281. type: string
  282. required: true
  283. hidden: true
  284. default: "data"
  285. - variable: acl_entries
  286. label: ACL Configuration
  287. schema:
  288. type: dict
  289. show_if: [["acl_enable", "=", true]]
  290. attrs: []
  291. - variable: host_path_config
  292. label: Host Path Configuration
  293. schema:
  294. type: dict
  295. show_if: [["type", "=", "host_path"]]
  296. attrs:
  297. - variable: acl_enable
  298. label: Enable ACL
  299. description: Enable ACL for the storage.
  300. schema:
  301. type: boolean
  302. default: false
  303. - variable: acl
  304. label: ACL Configuration
  305. schema:
  306. type: dict
  307. show_if: [["acl_enable", "=", true]]
  308. attrs: []
  309. $ref:
  310. - "normalize/acl"
  311. - variable: path
  312. label: Host Path
  313. description: The host path to use for storage.
  314. schema:
  315. type: hostpath
  316. show_if: [["acl_enable", "=", false]]
  317. required: true
  318. - variable: additional_storage
  319. label: Additional Storage
  320. schema:
  321. type: list
  322. default: []
  323. items:
  324. - variable: storageEntry
  325. label: Storage Entry
  326. schema:
  327. type: dict
  328. attrs:
  329. - variable: type
  330. label: Type
  331. description: |
  332. ixVolume: Is dataset created automatically by the system.</br>
  333. Host Path: Is a path that already exists on the system.</br>
  334. SMB Share: Is a SMB share that is mounted to as a volume.
  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. - value: "cifs"
  345. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  346. - variable: read_only
  347. label: Read Only
  348. description: Mount the volume as read only.
  349. schema:
  350. type: boolean
  351. default: false
  352. - variable: mount_path
  353. label: Mount Path
  354. description: The path inside the container to mount the storage.
  355. schema:
  356. type: path
  357. required: true
  358. - variable: host_path_config
  359. label: Host Path Configuration
  360. schema:
  361. type: dict
  362. show_if: [["type", "=", "host_path"]]
  363. attrs:
  364. - variable: acl_enable
  365. label: Enable ACL
  366. description: Enable ACL for the storage.
  367. schema:
  368. type: boolean
  369. default: false
  370. - variable: acl
  371. label: ACL Configuration
  372. schema:
  373. type: dict
  374. show_if: [["acl_enable", "=", true]]
  375. attrs: []
  376. $ref:
  377. - "normalize/acl"
  378. - variable: path
  379. label: Host Path
  380. description: The host path to use for storage.
  381. schema:
  382. type: hostpath
  383. show_if: [["acl_enable", "=", false]]
  384. required: true
  385. - variable: ix_volume_config
  386. label: ixVolume Configuration
  387. description: The configuration for the ixVolume dataset.
  388. schema:
  389. type: dict
  390. show_if: [["type", "=", "ix_volume"]]
  391. $ref:
  392. - "normalize/ix_volume"
  393. attrs:
  394. - variable: acl_enable
  395. label: Enable ACL
  396. description: Enable ACL for the storage.
  397. schema:
  398. type: boolean
  399. default: false
  400. - variable: dataset_name
  401. label: Dataset Name
  402. description: The name of the dataset to use for storage.
  403. schema:
  404. type: string
  405. required: true
  406. default: "storage_entry"
  407. - variable: acl_entries
  408. label: ACL Configuration
  409. schema:
  410. type: dict
  411. show_if: [["acl_enable", "=", true]]
  412. attrs: []
  413. $ref:
  414. - "normalize/acl"
  415. - variable: cifs_config
  416. label: SMB Configuration
  417. description: The configuration for the SMB dataset.
  418. schema:
  419. type: dict
  420. show_if: [["type", "=", "cifs"]]
  421. attrs:
  422. - variable: server
  423. label: Server
  424. description: The server to mount the SMB share.
  425. schema:
  426. type: string
  427. required: true
  428. - variable: path
  429. label: Path
  430. description: The path to mount the SMB share.
  431. schema:
  432. type: string
  433. required: true
  434. - variable: username
  435. label: Username
  436. description: The username to use for the SMB share.
  437. schema:
  438. type: string
  439. required: true
  440. - variable: password
  441. label: Password
  442. description: The password to use for the SMB share.
  443. schema:
  444. type: string
  445. required: true
  446. private: true
  447. - variable: domain
  448. label: Domain
  449. description: The domain to use for the SMB share.
  450. schema:
  451. type: string
  452. - variable: labels
  453. label: ""
  454. group: Labels Configuration
  455. schema:
  456. type: list
  457. default: []
  458. items:
  459. - variable: label
  460. label: Label
  461. schema:
  462. type: dict
  463. attrs:
  464. - variable: key
  465. label: Key
  466. schema:
  467. type: string
  468. required: true
  469. - variable: value
  470. label: Value
  471. schema:
  472. type: string
  473. required: true
  474. - variable: containers
  475. label: Containers
  476. description: Containers where the label should be applied
  477. schema:
  478. type: list
  479. items:
  480. - variable: container
  481. label: Container
  482. schema:
  483. type: string
  484. required: true
  485. enum:
  486. - value: gaseous-server
  487. description: gaseous-server
  488. - value: mariadb
  489. description: mariadb
  490. - variable: resources
  491. label: ""
  492. group: Resources Configuration
  493. schema:
  494. type: dict
  495. attrs:
  496. - variable: limits
  497. label: Limits
  498. schema:
  499. type: dict
  500. attrs:
  501. - variable: cpus
  502. label: CPUs
  503. description: CPUs limit for Ollama.
  504. schema:
  505. type: int
  506. default: 2
  507. required: true
  508. - variable: memory
  509. label: Memory (in MB)
  510. description: Memory limit for Ollama.
  511. schema:
  512. type: int
  513. default: 4096
  514. required: true