questions.yaml 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794
  1. groups:
  2. - name: Romm Configuration
  3. description: Deploy RomM by selecting from the following options, but when in doubt use the defaults.
  4. - name: User and Group Configuration
  5. description: Configure User and Group for Romm
  6. - name: Network Configuration
  7. description: Configure Network for Romm
  8. - name: Storage Configuration
  9. description: |
  10. RomM uses two internal persistent volumes: one (resources) for cover art and screenshots, and another (assets) for saves, states, and other adjacent files.
  11. You'll want to mount two others (library and config) for the ROM library and the config.yml file.
  12. - name: Labels Configuration
  13. description: Configure Labels for Romm
  14. - name: Resources Configuration
  15. description: |
  16. The defaults should work for most people.
  17. You may with to increase memory limits if you have an extensive ROM library (20K+ games).
  18. questions:
  19. - variable: TZ
  20. group: Romm Configuration
  21. label: Timezone
  22. schema:
  23. type: string
  24. default: Etc/UTC
  25. required: true
  26. $ref:
  27. - definitions/timezone
  28. - variable: romm
  29. label: ""
  30. group: Romm Configuration
  31. schema:
  32. type: dict
  33. attrs:
  34. - variable: postgres_image_selector
  35. label: Postgres Image (CAUTION)
  36. description: |
  37. If you are changing this after the postgres directory has been initialized,</br>
  38. STOP! and make sure you have a backup of your data.</br>
  39. Changing this will trigger an one way database upgrade.</br>
  40. You can only select newer versions of postgres.</br>
  41. Selecting an older version will refuse to start.</br>
  42. If something goes wrong, you will have to restore from backup.
  43. schema:
  44. type: string
  45. default: postgres_17_image
  46. required: true
  47. enum:
  48. - value: postgres_17_image
  49. description: Postgres 17
  50. - variable: db_password
  51. label: Database Password
  52. description: The password for Postgres
  53. schema:
  54. type: string
  55. default: ""
  56. required: true
  57. private: true
  58. - variable: redis_password
  59. label: Redis Password
  60. description: The password for Romm.
  61. schema:
  62. type: string
  63. default: ""
  64. required: true
  65. private: true
  66. - variable: auth_secret_key
  67. label: Auth Secret Key
  68. description: Generate a key with `openssl rand -hex 32`
  69. schema:
  70. type: string
  71. default: ""
  72. required: true
  73. private: true
  74. - variable: igdb_client_id
  75. label: IGDB Client ID
  76. description: Generate an ID and SECRET for IGDB (https://api-docs.igdb.com/#account-creation)
  77. schema:
  78. type: string
  79. default: ""
  80. private: true
  81. - variable: igdb_client_secret
  82. label: IGDB Client Secret
  83. schema:
  84. type: string
  85. default: ""
  86. private: true
  87. - variable: mobygames_api_key
  88. label: MobyGames API Key
  89. description: Generate an API key for MobyGames (https://www.mobygames.com/info/api)
  90. schema:
  91. type: string
  92. default: ""
  93. private: true
  94. - variable: steamgriddb_api_key
  95. label: SteamGridDB API Key
  96. description: Generate an API key for SteamGridDB (https://github.com/rommapp/romm/wiki/Generate-API-Keys#steamgriddb)
  97. schema:
  98. type: string
  99. default: ""
  100. private: true
  101. - variable: additional_envs
  102. label: Additional Environment Variables
  103. schema:
  104. type: list
  105. default: []
  106. items:
  107. - variable: env
  108. label: Environment Variable
  109. schema:
  110. type: dict
  111. attrs:
  112. - variable: name
  113. label: Name
  114. schema:
  115. type: string
  116. required: true
  117. - variable: value
  118. label: Value
  119. schema:
  120. type: string
  121. - variable: run_as
  122. label: ""
  123. group: User and Group Configuration
  124. schema:
  125. type: dict
  126. attrs:
  127. - variable: user
  128. label: User ID
  129. description: The user id that Romm files will be owned by.
  130. schema:
  131. type: int
  132. min: 568
  133. default: 568
  134. required: true
  135. - variable: group
  136. label: Group ID
  137. description: The group id that Romm files will be owned by.
  138. schema:
  139. type: int
  140. min: 568
  141. default: 568
  142. required: true
  143. - variable: network
  144. label: ""
  145. group: Network Configuration
  146. schema:
  147. type: dict
  148. attrs:
  149. - variable: web_port
  150. label: WebUI Port
  151. schema:
  152. type: dict
  153. attrs:
  154. - variable: bind_mode
  155. label: Port Bind Mode
  156. description: |
  157. The port bind mode.</br>
  158. - Publish: The port will be published on the host for external access.</br>
  159. - Expose: The port will be exposed for inter-container communication.</br>
  160. - None: The port will not be exposed or published.</br>
  161. Note: If the Dockerfile defines an EXPOSE directive,
  162. the port will still be exposed for inter-container communication regardless of this setting.
  163. schema:
  164. type: string
  165. default: "published"
  166. enum:
  167. - value: "published"
  168. description: Publish port on the host for external access
  169. - value: "exposed"
  170. description: Expose port for inter-container communication
  171. - value: ""
  172. description: None
  173. - variable: port_number
  174. label: Port Number
  175. schema:
  176. type: int
  177. default: 30061
  178. min: 1
  179. max: 65535
  180. required: true
  181. - variable: host_ips
  182. label: Host IPs
  183. description: IPs on the host to bind this port
  184. schema:
  185. type: list
  186. show_if: [["bind_mode", "=", "published"]]
  187. default: []
  188. items:
  189. - variable: host_ip
  190. label: Host IP
  191. schema:
  192. type: string
  193. required: true
  194. $ref:
  195. - definitions/node_bind_ip
  196. - variable: storage
  197. label: ""
  198. group: Storage Configuration
  199. schema:
  200. type: dict
  201. attrs:
  202. - variable: library
  203. label: Romm Library Storage
  204. description: Your game library. Check https://github.com/rommapp/romm?tab=readme-ov-file#folder-structure for more details.
  205. schema:
  206. type: dict
  207. attrs:
  208. - variable: type
  209. label: Type
  210. description: |
  211. ixVolume: Is dataset created automatically by the system.</br>
  212. Host Path: Is a path that already exists on the system.
  213. schema:
  214. type: string
  215. required: true
  216. default: "ix_volume"
  217. enum:
  218. - value: "host_path"
  219. description: Host Path (Path that already exists on the system)
  220. - value: "ix_volume"
  221. description: ixVolume (Dataset created automatically by the system)
  222. - variable: ix_volume_config
  223. label: ixVolume Configuration
  224. description: The configuration for the ixVolume dataset.
  225. schema:
  226. type: dict
  227. show_if: [["type", "=", "ix_volume"]]
  228. $ref:
  229. - "normalize/ix_volume"
  230. attrs:
  231. - variable: acl_enable
  232. label: Enable ACL
  233. description: Enable ACL for the storage.
  234. schema:
  235. type: boolean
  236. default: false
  237. - variable: dataset_name
  238. label: Dataset Name
  239. description: The name of the dataset to use for storage.
  240. schema:
  241. type: string
  242. required: true
  243. hidden: true
  244. default: "library"
  245. - variable: acl_entries
  246. label: ACL Configuration
  247. schema:
  248. type: dict
  249. show_if: [["acl_enable", "=", true]]
  250. attrs: []
  251. - variable: host_path_config
  252. label: Host Path Configuration
  253. schema:
  254. type: dict
  255. show_if: [["type", "=", "host_path"]]
  256. attrs:
  257. - variable: acl_enable
  258. label: Enable ACL
  259. description: Enable ACL for the storage.
  260. schema:
  261. type: boolean
  262. default: false
  263. - variable: acl
  264. label: ACL Configuration
  265. schema:
  266. type: dict
  267. show_if: [["acl_enable", "=", true]]
  268. attrs: []
  269. $ref:
  270. - "normalize/acl"
  271. - variable: path
  272. label: Host Path
  273. description: The host path to use for storage.
  274. schema:
  275. type: hostpath
  276. show_if: [["acl_enable", "=", false]]
  277. required: true
  278. - variable: resources
  279. label: Romm Resources Storage
  280. description: Fetched cover art, screenshots, and other resources.
  281. schema:
  282. type: dict
  283. attrs:
  284. - variable: type
  285. label: Type
  286. description: |
  287. ixVolume: Is dataset created automatically by the system.</br>
  288. Host Path: Is a path that already exists on the system.
  289. schema:
  290. type: string
  291. required: true
  292. default: "ix_volume"
  293. enum:
  294. - value: "host_path"
  295. description: Host Path (Path that already exists on the system)
  296. - value: "ix_volume"
  297. description: ixVolume (Dataset created automatically by the system)
  298. - variable: ix_volume_config
  299. label: ixVolume Configuration
  300. description: The configuration for the ixVolume dataset.
  301. schema:
  302. type: dict
  303. show_if: [["type", "=", "ix_volume"]]
  304. $ref:
  305. - "normalize/ix_volume"
  306. attrs:
  307. - variable: acl_enable
  308. label: Enable ACL
  309. description: Enable ACL for the storage.
  310. schema:
  311. type: boolean
  312. default: false
  313. - variable: dataset_name
  314. label: Dataset Name
  315. description: The name of the dataset to use for storage.
  316. schema:
  317. type: string
  318. required: true
  319. hidden: true
  320. default: "resources"
  321. - variable: acl_entries
  322. label: ACL Configuration
  323. schema:
  324. type: dict
  325. show_if: [["acl_enable", "=", true]]
  326. attrs: []
  327. - variable: host_path_config
  328. label: Host Path Configuration
  329. schema:
  330. type: dict
  331. show_if: [["type", "=", "host_path"]]
  332. attrs:
  333. - variable: acl_enable
  334. label: Enable ACL
  335. description: Enable ACL for the storage.
  336. schema:
  337. type: boolean
  338. default: false
  339. - variable: acl
  340. label: ACL Configuration
  341. schema:
  342. type: dict
  343. show_if: [["acl_enable", "=", true]]
  344. attrs: []
  345. $ref:
  346. - "normalize/acl"
  347. - variable: path
  348. label: Host Path
  349. description: The host path to use for storage.
  350. schema:
  351. type: hostpath
  352. show_if: [["acl_enable", "=", false]]
  353. required: true
  354. - variable: config
  355. label: Romm Config Storage
  356. description: The path where config.yml is stored.
  357. schema:
  358. type: dict
  359. attrs:
  360. - variable: type
  361. label: Type
  362. description: |
  363. ixVolume: Is dataset created automatically by the system.</br>
  364. Host Path: Is a path that already exists on the system.
  365. schema:
  366. type: string
  367. required: true
  368. default: "ix_volume"
  369. enum:
  370. - value: "host_path"
  371. description: Host Path (Path that already exists on the system)
  372. - value: "ix_volume"
  373. description: ixVolume (Dataset created automatically by the system)
  374. - variable: ix_volume_config
  375. label: ixVolume Configuration
  376. description: The configuration for the ixVolume dataset.
  377. schema:
  378. type: dict
  379. show_if: [["type", "=", "ix_volume"]]
  380. $ref:
  381. - "normalize/ix_volume"
  382. attrs:
  383. - variable: acl_enable
  384. label: Enable ACL
  385. description: Enable ACL for the storage.
  386. schema:
  387. type: boolean
  388. default: false
  389. - variable: dataset_name
  390. label: Dataset Name
  391. description: The name of the dataset to use for storage.
  392. schema:
  393. type: string
  394. required: true
  395. hidden: true
  396. default: "config"
  397. - variable: acl_entries
  398. label: ACL Configuration
  399. schema:
  400. type: dict
  401. show_if: [["acl_enable", "=", true]]
  402. attrs: []
  403. - variable: host_path_config
  404. label: Host Path Configuration
  405. schema:
  406. type: dict
  407. show_if: [["type", "=", "host_path"]]
  408. attrs:
  409. - variable: acl_enable
  410. label: Enable ACL
  411. description: Enable ACL for the storage.
  412. schema:
  413. type: boolean
  414. default: false
  415. - variable: acl
  416. label: ACL Configuration
  417. schema:
  418. type: dict
  419. show_if: [["acl_enable", "=", true]]
  420. attrs: []
  421. $ref:
  422. - "normalize/acl"
  423. - variable: path
  424. label: Host Path
  425. description: The host path to use for storage.
  426. schema:
  427. type: hostpath
  428. show_if: [["acl_enable", "=", false]]
  429. required: true
  430. - variable: assets
  431. label: Romm Assets Storage
  432. description: Storage for uploaded saves, states, etc.
  433. schema:
  434. type: dict
  435. attrs:
  436. - variable: type
  437. label: Type
  438. description: |
  439. ixVolume: Is dataset created automatically by the system.</br>
  440. Host Path: Is a path that already exists on the system.
  441. schema:
  442. type: string
  443. required: true
  444. default: "ix_volume"
  445. enum:
  446. - value: "host_path"
  447. description: Host Path (Path that already exists on the system)
  448. - value: "ix_volume"
  449. description: ixVolume (Dataset created automatically by the system)
  450. - variable: ix_volume_config
  451. label: ixVolume Configuration
  452. description: The configuration for the ixVolume dataset.
  453. schema:
  454. type: dict
  455. show_if: [["type", "=", "ix_volume"]]
  456. $ref:
  457. - "normalize/ix_volume"
  458. attrs:
  459. - variable: acl_enable
  460. label: Enable ACL
  461. description: Enable ACL for the storage.
  462. schema:
  463. type: boolean
  464. default: false
  465. - variable: dataset_name
  466. label: Dataset Name
  467. description: The name of the dataset to use for storage.
  468. schema:
  469. type: string
  470. required: true
  471. hidden: true
  472. default: "assets"
  473. - variable: acl_entries
  474. label: ACL Configuration
  475. schema:
  476. type: dict
  477. show_if: [["acl_enable", "=", true]]
  478. attrs: []
  479. - variable: host_path_config
  480. label: Host Path Configuration
  481. schema:
  482. type: dict
  483. show_if: [["type", "=", "host_path"]]
  484. attrs:
  485. - variable: acl_enable
  486. label: Enable ACL
  487. description: Enable ACL for the storage.
  488. schema:
  489. type: boolean
  490. default: false
  491. - variable: acl
  492. label: ACL Configuration
  493. schema:
  494. type: dict
  495. show_if: [["acl_enable", "=", true]]
  496. attrs: []
  497. $ref:
  498. - "normalize/acl"
  499. - variable: path
  500. label: Host Path
  501. description: The host path to use for storage.
  502. schema:
  503. type: hostpath
  504. show_if: [["acl_enable", "=", false]]
  505. required: true
  506. - variable: postgres_data
  507. label: Postgres Data Storage
  508. description: Storage location for the Postgres database.
  509. schema:
  510. type: dict
  511. attrs:
  512. - variable: type
  513. label: Type
  514. description: |
  515. ixVolume: Is dataset created automatically by the system.</br>
  516. Host Path: Is a path that already exists on the system.
  517. schema:
  518. type: string
  519. required: true
  520. default: "ix_volume"
  521. enum:
  522. - value: "host_path"
  523. description: Host Path (Path that already exists on the system)
  524. - value: "ix_volume"
  525. description: ixVolume (Dataset created automatically by the system)
  526. - variable: ix_volume_config
  527. label: ixVolume Configuration
  528. description: The configuration for the ixVolume dataset.
  529. schema:
  530. type: dict
  531. show_if: [["type", "=", "ix_volume"]]
  532. $ref:
  533. - "normalize/ix_volume"
  534. attrs:
  535. - variable: acl_enable
  536. label: Enable ACL
  537. description: Enable ACL for the storage.
  538. schema:
  539. type: boolean
  540. default: false
  541. - variable: dataset_name
  542. label: Dataset Name
  543. description: The name of the dataset to use for storage.
  544. schema:
  545. type: string
  546. required: true
  547. hidden: true
  548. default: "pg_data"
  549. - variable: acl_entries
  550. label: ACL Configuration
  551. schema:
  552. type: dict
  553. show_if: [["acl_enable", "=", true]]
  554. attrs: []
  555. - variable: host_path_config
  556. label: Host Path Configuration
  557. schema:
  558. type: dict
  559. show_if: [["type", "=", "host_path"]]
  560. attrs:
  561. - variable: acl_enable
  562. label: Enable ACL
  563. description: Enable ACL for the storage.
  564. schema:
  565. type: boolean
  566. default: false
  567. - variable: acl
  568. label: ACL Configuration
  569. schema:
  570. type: dict
  571. show_if: [["acl_enable", "=", true]]
  572. attrs: []
  573. $ref:
  574. - "normalize/acl"
  575. - variable: path
  576. label: Host Path
  577. description: The host path to use for storage.
  578. schema:
  579. type: hostpath
  580. show_if: [["acl_enable", "=", false]]
  581. required: true
  582. - variable: auto_permissions
  583. label: Automatic Permissions
  584. description: |
  585. Automatically set permissions for the host path.
  586. Enabling this, will check the top level directory,</br>
  587. If it finds incorrect permissions, it will `chown` the
  588. host path to the user and group required for the
  589. postgres container.
  590. schema:
  591. type: boolean
  592. default: false
  593. show_if: [["acl_enable", "=", false]]
  594. - variable: additional_storage
  595. label: Additional Storage
  596. schema:
  597. type: list
  598. default: []
  599. items:
  600. - variable: storageEntry
  601. label: Storage Entry
  602. schema:
  603. type: dict
  604. attrs:
  605. - variable: type
  606. label: Type
  607. description: |
  608. ixVolume: Is dataset created automatically by the system.</br>
  609. Host Path: Is a path that already exists on the system.</br>
  610. SMB Share: Is a SMB share that is mounted to as a volume.
  611. schema:
  612. type: string
  613. required: true
  614. default: "ix_volume"
  615. enum:
  616. - value: "host_path"
  617. description: Host Path (Path that already exists on the system)
  618. - value: "ix_volume"
  619. description: ixVolume (Dataset created automatically by the system)
  620. - value: "cifs"
  621. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  622. - variable: read_only
  623. label: Read Only
  624. description: Mount the volume as read only.
  625. schema:
  626. type: boolean
  627. default: false
  628. - variable: mount_path
  629. label: Mount Path
  630. description: The path inside the container to mount the storage.
  631. schema:
  632. type: path
  633. required: true
  634. - variable: host_path_config
  635. label: Host Path Configuration
  636. schema:
  637. type: dict
  638. show_if: [["type", "=", "host_path"]]
  639. attrs:
  640. - variable: acl_enable
  641. label: Enable ACL
  642. description: Enable ACL for the storage.
  643. schema:
  644. type: boolean
  645. default: false
  646. - variable: acl
  647. label: ACL Configuration
  648. schema:
  649. type: dict
  650. show_if: [["acl_enable", "=", true]]
  651. attrs: []
  652. $ref:
  653. - "normalize/acl"
  654. - variable: path
  655. label: Host Path
  656. description: The host path to use for storage.
  657. schema:
  658. type: hostpath
  659. show_if: [["acl_enable", "=", false]]
  660. required: true
  661. - variable: ix_volume_config
  662. label: ixVolume Configuration
  663. description: The configuration for the ixVolume dataset.
  664. schema:
  665. type: dict
  666. show_if: [["type", "=", "ix_volume"]]
  667. $ref:
  668. - "normalize/ix_volume"
  669. attrs:
  670. - variable: acl_enable
  671. label: Enable ACL
  672. description: Enable ACL for the storage.
  673. schema:
  674. type: boolean
  675. default: false
  676. - variable: dataset_name
  677. label: Dataset Name
  678. description: The name of the dataset to use for storage.
  679. schema:
  680. type: string
  681. required: true
  682. default: "storage_entry"
  683. - variable: acl_entries
  684. label: ACL Configuration
  685. schema:
  686. type: dict
  687. show_if: [["acl_enable", "=", true]]
  688. attrs: []
  689. $ref:
  690. - "normalize/acl"
  691. - variable: cifs_config
  692. label: SMB Configuration
  693. description: The configuration for the SMB dataset.
  694. schema:
  695. type: dict
  696. show_if: [["type", "=", "cifs"]]
  697. attrs:
  698. - variable: server
  699. label: Server
  700. description: The server to mount the SMB share.
  701. schema:
  702. type: string
  703. required: true
  704. - variable: path
  705. label: Path
  706. description: The path to mount the SMB share.
  707. schema:
  708. type: string
  709. required: true
  710. - variable: username
  711. label: Username
  712. description: The username to use for the SMB share.
  713. schema:
  714. type: string
  715. required: true
  716. - variable: password
  717. label: Password
  718. description: The password to use for the SMB share.
  719. schema:
  720. type: string
  721. required: true
  722. private: true
  723. - variable: domain
  724. label: Domain
  725. description: The domain to use for the SMB share.
  726. schema:
  727. type: string
  728. - variable: labels
  729. label: ""
  730. group: Labels Configuration
  731. schema:
  732. type: list
  733. default: []
  734. items:
  735. - variable: label
  736. label: Label
  737. schema:
  738. type: dict
  739. attrs:
  740. - variable: key
  741. label: Key
  742. schema:
  743. type: string
  744. required: true
  745. - variable: value
  746. label: Value
  747. schema:
  748. type: string
  749. required: true
  750. - variable: containers
  751. label: Containers
  752. description: Containers where the label should be applied
  753. schema:
  754. type: list
  755. items:
  756. - variable: container
  757. label: Container
  758. schema:
  759. type: string
  760. required: true
  761. enum:
  762. - value: romm
  763. description: romm
  764. - value: postgres
  765. description: postgres
  766. - value: redis
  767. description: redis
  768. - variable: resources
  769. label: ""
  770. group: Resources Configuration
  771. schema:
  772. type: dict
  773. attrs:
  774. - variable: limits
  775. label: Limits
  776. schema:
  777. type: dict
  778. attrs:
  779. - variable: cpus
  780. label: CPUs
  781. description: CPUs limit for Romm.
  782. schema:
  783. type: int
  784. default: 2
  785. required: true
  786. - variable: memory
  787. label: Memory (in MB)
  788. description: Memory limit for Romm.
  789. schema:
  790. type: int
  791. default: 4096
  792. required: true