diff --git a/ix-dev/community/romm/questions.yaml b/ix-dev/community/romm/questions.yaml index 0b70493858c..a7ef233c99f 100644 --- a/ix-dev/community/romm/questions.yaml +++ b/ix-dev/community/romm/questions.yaml @@ -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) @@ -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 + 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 + 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: diff --git a/ix-dev/community/romm/templates/docker-compose.yaml b/ix-dev/community/romm/templates/docker-compose.yaml index 2122481bc94..1d315cd4db0 100644 --- a/ix-dev/community/romm/templates/docker-compose.yaml +++ b/ix-dev/community/romm/templates/docker-compose.yaml @@ -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) %} diff --git a/ix-dev/community/romm/templates/test_values/basic-values.yaml b/ix-dev/community/romm/templates/test_values/basic-values.yaml index a9e09afefd8..a9c4769d14b 100644 --- a/ix-dev/community/romm/templates/test_values/basic-values.yaml +++ b/ix-dev/community/romm/templates/test_values/basic-values.yaml @@ -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: