Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 119 additions & 1 deletion ix-dev/community/romm/questions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,61 @@ questions:
default: ""
required: true
private: true
- variable: enable_rescan_on_filesystem_change
label: Enable Rescan on Filesystem Change
description: Automatically re-scan the library when filesystem changes are detected.
schema:
type: boolean
default: false
- variable: enable_scheduled_rescan
label: Enable Scheduled Rescan
description: Enable periodic scheduled re-scanning of the library.
schema:
type: boolean
default: false
- variable: scheduled_rescan_cron
label: Scheduled Rescan Cron
description: Cron expression for scheduled re-scanning (e.g. "0 3 * * *" for 3:00 AM daily).
schema:
type: string
default: "0 3 * * *"
show_if: [["enable_scheduled_rescan", "=", true]]
- variable: disable_download_endpoint_auth
label: Disable Download Endpoint Auth
description: Required for Tinfoil/WebRcade integration (https://docs.romm.app/latest/Integrations/Tinfoil-integration/)
schema:
type: boolean
default: false
- variable: flashpoint_api_enabled
label: Enable Flashpoint API
description: Metadata for 180,000+ flash and browser-based games (https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#flashpoint)
schema:
type: boolean
default: false
- variable: hasheous_api_enabled
label: Enable Hasheous API
description: Free, open-source hash-based game matching (https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#hasheous)
schema:
type: boolean
default: false
- variable: hltb_api_enabled
label: Enable HowLongToBeat API
description: Game completion times for 84,000+ games (https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#how-long-to-beat)
schema:
type: boolean
default: false
- variable: launchbox_api_enabled
label: Enable LaunchBox API
description: Community-driven metadata database (https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#launchbox)
schema:
type: boolean
default: false
- variable: playmatch_api_enabled
label: Enable PlayMatch API
description: Hash-based matching service used with IGDB (https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#playmatch)
schema:
type: boolean
default: false
- variable: igdb_client_id
label: IGDB Client ID
description: Generate an ID and SECRET for IGDB (https://api-docs.igdb.com/#account-creation)
Expand All @@ -94,13 +149,76 @@ questions:
type: string
default: ""
private: true
- variable: retroachievements_api_key
label: RetroAchievements API Key
description: Generate an API key from your RetroAchievements account (https://retroachievements.org/settings)
schema:
type: string
default: ""
private: true
- variable: screenscraper_user
label: ScreenScraper Username
description: Username for ScreenScraper.fr (https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#screenscraper)
schema:
type: string
default: ""
- variable: screenscraper_password
label: ScreenScraper Password
description: Password for ScreenScraper.fr
schema:
type: string

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this shouldnt be visible if the user field is empty

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great point, fixing.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is pw required when username is provided? If thats the case, we should require it. (required:true)

default: ""
private: true
show_if: [["screenscraper_user", "!=", ""]]
- variable: steamgriddb_api_key
label: SteamGridDB API Key
description: Generate an API key for SteamGridDB (https://github.com/rommapp/romm/wiki/Generate-API-Keys#steamgriddb)
description: Generate an API key for SteamGridDB (https://www.steamgriddb.com/profile/preferences/api)
schema:
type: string
default: ""
private: true
- variable: oidc_enabled

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OIDC most of the times require slightly different setup for each provider which will be an ever growing setup screen, I'd suggest removing this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The OIDC variables presented are fairly uniform across all OIDC providers. While there may be additional values for things like a "preferred username" or custom claims, those extended configurations have been left to "additional environment variables" specifically because we should only be prompting for commonly used environment variables.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel that someone configuring OIDC will probably want to setup those custom things like preferred username etc and having them split up would be more confusing.
ie most "guides" list the envs you need to add, having them as fields will "force" user to go and see what each thing sets.
Making it more "annoying" that just copy pasting the guide.

label: Enable OIDC Authentication
description: Enable OpenID Connect (OIDC) for single sign-on (https://docs.romm.app/latest/Getting-Started/OIDC-Setup/)
schema:
type: boolean
default: false
- variable: oidc_provider
label: OIDC Provider Name
description: Name of the OIDC provider (e.g. Authelia, Authentik, PocketID, Zitadel, Keycloak)
schema:
type: string
default: ""
show_if: [["oidc_enabled", "=", true]]
- variable: oidc_client_id
label: OIDC Client ID
description: Client ID for OIDC authentication.
schema:
type: string
default: ""
show_if: [["oidc_enabled", "=", true]]
- variable: oidc_client_secret
label: OIDC Client Secret
description: Client secret for OIDC authentication.
schema:
type: string
default: ""
private: true
show_if: [["oidc_enabled", "=", true]]
- variable: oidc_redirect_uri
label: OIDC Redirect URI
description: "Absolute redirect URI (e.g. https://romm.example.com/api/oauth/openid)"
schema:
type: string
default: ""
show_if: [["oidc_enabled", "=", true]]
- variable: oidc_server_application_url
label: OIDC Server Application URL
description: Absolute URL of the OIDC server application.
schema:
type: string
default: ""
show_if: [["oidc_enabled", "=", true]]
- variable: additional_envs
label: Additional Environment Variables
schema:
Expand Down
24 changes: 24 additions & 0 deletions ix-dev/community/romm/templates/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,34 @@
{% do c1.environment.add_env("REDIS_PASSWORD", values.romm.redis_password) %}
{% do c1.environment.add_env("ROMM_AUTH_SECRET_KEY", values.romm.auth_secret_key) %}
{% do c1.environment.add_env("ROMM_BASE_PATH", values.consts.base_path) %}
{% do c1.environment.add_env("ENABLE_RESCAN_ON_FILESYSTEM_CHANGE", values.romm.enable_rescan_on_filesystem_change) %}
{% do c1.environment.add_env("ENABLE_SCHEDULED_RESCAN", values.romm.enable_scheduled_rescan) %}
{% if values.romm.enable_scheduled_rescan and values.romm.scheduled_rescan_cron %}
{% do c1.environment.add_env("SCHEDULED_RESCAN_CRON", values.romm.scheduled_rescan_cron) %}
{% endif %}
{% do c1.environment.add_env("DISABLE_DOWNLOAD_ENDPOINT_AUTH", values.romm.disable_download_endpoint_auth) %}
{% do c1.environment.add_env("FLASHPOINT_API_ENABLED", values.romm.flashpoint_api_enabled) %}
{% do c1.environment.add_env("HASHEOUS_API_ENABLED", values.romm.hasheous_api_enabled) %}
{% do c1.environment.add_env("HLTB_API_ENABLED", values.romm.hltb_api_enabled) %}
{% do c1.environment.add_env("IGDB_CLIENT_ID", values.romm.igdb_client_id) %}
{% do c1.environment.add_env("IGDB_CLIENT_SECRET", values.romm.igdb_client_secret) %}
{% do c1.environment.add_env("LAUNCHBOX_API_ENABLED", values.romm.launchbox_api_enabled) %}
{% do c1.environment.add_env("MOBYGAMES_API_KEY", values.romm.mobygames_api_key) %}
{% do c1.environment.add_env("PLAYMATCH_API_ENABLED", values.romm.playmatch_api_enabled) %}
{% do c1.environment.add_env("RETROACHIEVEMENTS_API_KEY", values.romm.retroachievements_api_key) %}
{% do c1.environment.add_env("SCREENSCRAPER_USER", values.romm.screenscraper_user) %}
{% if values.romm.screenscraper_user %}
{% do c1.environment.add_env("SCREENSCRAPER_PASSWORD", values.romm.screenscraper_password) %}
{% endif %}
{% do c1.environment.add_env("STEAMGRIDDB_API_KEY", values.romm.steamgriddb_api_key) %}
{% if values.romm.oidc_enabled %}
{% do c1.environment.add_env("OIDC_ENABLED", values.romm.oidc_enabled) %}
{% do c1.environment.add_env("OIDC_PROVIDER", values.romm.oidc_provider) %}
{% do c1.environment.add_env("OIDC_CLIENT_ID", values.romm.oidc_client_id) %}
{% do c1.environment.add_env("OIDC_CLIENT_SECRET", values.romm.oidc_client_secret) %}
{% do c1.environment.add_env("OIDC_REDIRECT_URI", values.romm.oidc_redirect_uri) %}
{% do c1.environment.add_env("OIDC_SERVER_APPLICATION_URL", values.romm.oidc_server_application_url) %}
{% endif %}

{% do c1.environment.add_user_envs(values.romm.additional_envs) %}

Expand Down
18 changes: 18 additions & 0 deletions ix-dev/community/romm/templates/test_values/basic-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,28 @@ romm:
db_password: postgres-password
redis_password: redis-password
auth_secret_key: change-me
enable_rescan_on_filesystem_change: false
enable_scheduled_rescan: false
scheduled_rescan_cron: "0 3 * * *"
disable_download_endpoint_auth: false
flashpoint_api_enabled: false
hasheous_api_enabled: false
hltb_api_enabled: false
igdb_client_id: igdb-client-id
igdb_client_secret: igdb-client-secret
launchbox_api_enabled: false
mobygames_api_key: mobygames-api-key
playmatch_api_enabled: false
retroachievements_api_key: ""
screenscraper_user: ""
screenscraper_password: ""
steamgriddb_api_key: steamgriddb-api-key
oidc_enabled: false
oidc_provider: ""
oidc_client_id: ""
oidc_client_secret: ""
oidc_redirect_uri: ""
oidc_server_application_url: ""
additional_envs: []

network:
Expand Down