diff --git a/romm/data/config/.gitkeep b/romm/data/config/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/romm/data/config/config.yml b/romm/data/config/config.yml new file mode 100644 index 00000000..7732cb91 --- /dev/null +++ b/romm/data/config/config.yml @@ -0,0 +1,44 @@ +exclude: + # Exclude platforms to be scanned + platforms: [] # ['my_excluded_platform_1', 'my_excluded_platform_2'] + + # Exclude roms or parts of roms to be scanned + roms: + # Single file games section. + # Will not apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.) + single_file: + # Exclude all files with certain extensions to be scanned + extensions: [] # ['xml', 'txt'] + + # Exclude matched file names to be scanned. + # Supports unix filename pattern matching + # Can also exclude files by extension + names: [] # ['info.txt', '._*', '*.nfo'] + + # Multi files games section + # Will apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.) + multi_file: + # Exclude matched 'folder' names to be scanned (RomM identifies folders as multi file games) + names: [] # ['my_multi_file_game', 'DLC'] + + # Exclude files within sub-folders. + parts: + # Exclude matched file names to be scanned from multi file roms + # Keep in mind that RomM doesn't scan folders inside multi files games, + # so there is no need to exclude folders from inside of multi files games. + names: [] # ['data.xml', '._*'] # Supports unix filename pattern matching + + # Exclude all files with certain extensions to be scanned from multi file roms + extensions: [] # ['xml', 'txt'] + +system: + # Asociate different platform names to your current file system platform names + # [your custom platform folder name]: [RomM platform name] + # In this example if you have a 'gc' folder, RomM will treat it like the 'ngc' folder and if you have a 'psx' folder, RomM will treat it like the 'ps' folder + platforms: {} # { gc: 'ngc', psx: 'ps' } + + # Asociate one platform to it's main version + versions: {} # { naomi: 'arcade' } + +# The folder name where your roms are located +filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is /home/user/library/roms_folder diff --git a/romm/docker-compose.yml b/romm/docker-compose.yml index 0c845b47..08fcc0ef 100644 --- a/romm/docker-compose.yml +++ b/romm/docker-compose.yml @@ -9,7 +9,7 @@ services: server: user: "1000:1000" - image: rommapp/romm:4.0.1@sha256:2f31f792885cd0fc839a590b9645ada846106d4893e5de0be68dc6580b11b5f9 + image: rommapp/romm:4.1.3@sha256:fe68b32b2765c61a696012709e7ad638faba9c4776d936bf23a35fb576a66eea volumes: - ${APP_DATA_DIR}/data/resources:/romm/resources - ${APP_DATA_DIR}/data/redis:/redis-data diff --git a/romm/hooks/pre-start b/romm/hooks/pre-start new file mode 100755 index 00000000..5369a1ed --- /dev/null +++ b/romm/hooks/pre-start @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +set -euo pipefail + +### Correct permissions for romm data directories + +APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="${APP_DIR}/data" + +DESIRED_OWNER="1000:1000" + +CONFIG_DATA_DIR="${APP_DATA_DIR}/config" + +romm_correct_permission() { + local -r path="${1}" + + if [[ -d "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + fi + fi +} + +### Create default configuration file for romm if it does not exist + +ROMM_CONFIG_FILE="${CONFIG_DATA_DIR}/config.yml" + +# We check if the romm config file does not exist +if [[ ! -f "${ROMM_CONFIG_FILE}" ]]; then + echo "Creating romm configuration file." + # Create the romm configuration file + cat >"${ROMM_CONFIG_FILE}" <<'EOF' +exclude: + # Exclude platforms to be scanned + platforms: [] # ['my_excluded_platform_1', 'my_excluded_platform_2'] + + # Exclude roms or parts of roms to be scanned + roms: + # Single file games section. + # Will not apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.) + single_file: + # Exclude all files with certain extensions to be scanned + extensions: [] # ['xml', 'txt'] + + # Exclude matched file names to be scanned. + # Supports unix filename pattern matching + # Can also exclude files by extension + names: [] # ['info.txt', '._*', '*.nfo'] + + # Multi files games section + # Will apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.) + multi_file: + # Exclude matched 'folder' names to be scanned (RomM identifies folders as multi file games) + names: [] # ['my_multi_file_game', 'DLC'] + + # Exclude files within sub-folders. + parts: + # Exclude matched file names to be scanned from multi file roms + # Keep in mind that RomM doesn't scan folders inside multi files games, + # so there is no need to exclude folders from inside of multi files games. + names: [] # ['data.xml', '._*'] # Supports unix filename pattern matching + + # Exclude all files with certain extensions to be scanned from multi file roms + extensions: [] # ['xml', 'txt'] + +system: + # Asociate different platform names to your current file system platform names + # [your custom platform folder name]: [RomM platform name] + # In this example if you have a 'gc' folder, RomM will treat it like the 'ngc' folder and if you have a 'psx' folder, RomM will treat it like the 'ps' folder + platforms: {} # { gc: 'ngc', psx: 'ps' } + + # Asociate one platform to it's main version + versions: {} # { naomi: 'arcade' } + +# The folder name where your roms are located +filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is /home/user/library/roms_folder +EOF + +echo "Created romm configuration file." + +romm_correct_permission "${CONFIG_DATA_DIR}" + +fi diff --git a/romm/umbrel-app.yml b/romm/umbrel-app.yml index 9eedab64..81215ac3 100644 --- a/romm/umbrel-app.yml +++ b/romm/umbrel-app.yml @@ -1,8 +1,8 @@ -manifestVersion: 1 +manifestVersion: 1.1 id: romm category: media name: RomM -version: "4.0.1" +version: "4.1.3" tagline: A beautiful, powerful, self-hosted rom manager description: >- 👾 RomM (ROM Manager) allows you to scan, enrich, browse and play your game collection with a clean and responsive interface. @@ -36,29 +36,27 @@ path: "" defaultUsername: "" defaultPassword: "" releaseNotes: >- - This update includes several improvements and bug fixes: + This update includes several improvements and bug fixes. New features: - - Added clean resources task and revamped the whole task system - - Store last scan selected sources in storage - - Added background color picker to ruffle - - Display version information in the banner + - Added a missing games admin page for easy removal of missing games + - Introduced smart collections for creating self-updating collections based on search terms and filters + - Experimental iOS app now available (requires sideloading) - Fixes and improvements: - - Fixed horizontal scrollable layout in details view - - Improved path validation for rom files - - Fixed clicking on meta pills and using correct filters - - Fixed LaunchBox URL - - Fixed using symlinks on volumes - - Added missing ssfr platform and fixed IDs + Improvements: + - Unified platform slugs for better consistency + - Added icon display on game cards if notes are present + - Improved matching algorithms for metadata providers + - Added Polish and Traditional Chinese translations + - Enhanced performance and user experience in various areas - Other changes: - - Updated logos and icons - - Enhanced grammar and consistency in documentation - - Improved platform grouping and filtering + Bug fixes: + - Fixed issues with metadata refresh, multi-rom downloads, and character bar navigation + - Improved handling of missing platforms and excluded ROMs + - Various other bug fixes and stability improvements Full release notes can be found at https://github.com/rommapp/romm/releases