All apps · 0 apps
romm
OfficialDocker app from arcanesada's Repository
Overview
Readme
View on GitHub
A beautiful, powerful, self-hosted ROM manager and player.
Overview
RomM (ROM Manager) allows you to scan, enrich, browse and play your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes, and custom tags, RomM is a must-have for anyone who plays on emulators.
Features
- Scan and enhance your game library with metadata from IGDB, Screenscraper and MobyGames
- Fetch custom artwork from SteamGridDB
- Display your achievements from Retroachievements
- Metadata available for 400+ platforms
- Play games directly from the browser using EmulatorJS and RuffleRS
- Share your library with friends with limited access and permissions
- Official apps for Playnite, Android and CFWs
- Supports multi-disk games, DLCs, mods, hacks, patches, and manuals
- Parse and filter by tags in filenames
- View, upload, update, and delete games from any modern web browser
Preview
| 🖥 Desktop | 📱 Mobile |
|---|---|
![]() |
![]() |
Installation
To start using RomM, check out the Quick Start Guide in the docs. If you are having issues with RomM, please review the page for troubleshooting steps.
Contributing
To contribute to RomM, please check Contribution Guide.
Official apps
Apps and integrations built and maintained by the RomM team.
- Argosy by @tmgast: Native Android client for installing and launching games.
- Grout by @BrandonKowalski: Download and manage games from your RomM instance directly on your Linux based retro handheld. Supports: Allium, Batocera, Knulli, MinUI, muOS, NextUI, Onion, ROCKNIX, Spruce, TrimUI
- Playnite plugin by @gantoine: Library plugin for Playnite
Community
Here are a few projects maintained by members of our community. Please note that the RomM team does not regularly review their source code.
Mobile
- romm-ios-app: Native iOS app by @ilyas-hallak
Desktop
- RetroArch Sync: Sync RetroArch library with RomM by @Covin90
- RomMate: Desktop app for browsing your collection by @brenoprata10
- romm-client: Desktop client by @chaun14
- Freegosy: All-in-one game manager (download, launch, sync saves, and manage emulators) by @abduznik
Handhelds
- DeckyRommSync: SteamOS downloader and syncer by @danielcopper
- SwitchRomM: Homebrew NRO for Switch by @Shalasere
Other
- romm-comm: Discord bot by @idio-sync
- GGRequestz: Game discovery and request tool by @XTREEMMAK
- Syncthing sync: Small tool to push a Syncthing library to RomM by @amn-96
Join us on Discord, where you can ask questions, submit ideas, get help, showcase your collection, and discuss RomM with other users.
Technical Support
If you have any issues with RomM, please open an issue in this repository.
Financial Support
Consider supporting the development of this project on Open Collective. All funds will be used to cover the costs of hosting, development, and maintenance of RomM.
Our Friends
Here are a few projects that we think you might like:
- EmulatorJS: An embeddable, browser-based emulator
- RetroDECK: Retro gaming on SteamOS and Linux
- ES-DE Frontend: Emulator frontend for Linux, macOS and Windows
- Gaseous: Another ROM manager with web-based emulator
- Retrom: A centralized game library/collection management service
- Drop: Steam-like experience for DRM-free games
- LanCommander: Digital game platform for PC games
- Steam ROM Manager: An app for managing ROMs in Steam
Media gallery
1 / 4Install Romm on Unraid in a few clicks.
Find Romm in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
MariaDB
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allDetails
rommapp/romm:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8080]- Network
romm_net- Shell
sh- Privileged
- false
Template configuration
- Target
- 8080
- Default
- 8080
- Value
- 8080
Game files
- Target
- /romm/library/
- Default
- /romm/library
- Value
- /mnt/user/appdata/romm/library
Metadata storage (covers, screenshots, etc.)
- Target
- /romm/resources/
- Value
- /mnt/user/appdata/romm/resources
Uploaded saves, states, etc.
- Target
- /romm/assets/
- Value
- /mnt/user/appdata/romm/assets
Folder for config.yml
- Target
- /romm/config/
- Value
- /mnt/user/appdata/romm/config
Stores in-memory data
- Target
- /redis-data
- Value
- /mnt/user/appdata/romm/redis-data
Database driver to use
- Default
- mariadb
- Value
- mariadb
Host name of database instance
- Default
- mariadb
Port number of database instance
- Default
- 3306
Should match MYSQL_DATABASE in MariaDB
- Default
- romm
Database username
- Default
- romm
Database password
Extra query parameters for the database connection, in JSON format
Host name of Redis/Valkey instance
Port number of Redis/Valkey instance
Username for Redis/Valkey instance
Password for Redis/Valkey instance
Database number for Redis/Valkey instance
Enable SSL for Redis/Valkey instance
Generate a key with `openssl rand -hex 32`
Disables CSRF protection (not recommended)
- Default
- false
Disable auth on download endpoint
- Default
- false
Disables login with username and password
- Default
- false
Maximum age of a session (in seconds)
Read-only mode for public displays or kiosks
- Default
- false
Enable OpenID Connect (OIDC) authentication
- Default
- false
Name of the OIDC provider in use
Client ID for OIDC authentication
Client secret for OIDC authentication
Absolute redirect URI for OIDC authentication
Absolute URL of the OIDC server application
Path to a file containing trusted CA certificates
Client ID for IGDB API
Client secret for IGDB API
Screenscraper username
Screenscraper password
MobyGames secret API key
SteamGridDB secret API key
Retroachievements secret API key
Retroachievements metadata cache refresh (in days)
Enable LaunchBox API integration
- Default
- false
Enable PlayMatch API integration
- Default
- false
Enable Hasheous API integration
- Default
- false
Enable Flashpoint API integration
- Default
- false
Enable HowLongToBeat API integration
- Default
- false
Number of processes running the app
Waiting time for requests on a Keep-Alive connection (in seconds)
Maximum number of requests a worker will process before restarting
Random jitter to add to the maximum number of requests a worker will process before restarting
Timeout for web server requests (in seconds)
Maximum number of simultaneous clients a single process can handle
Forces color output
Disables color output
Disables playing in browser with EmulatorJS
- Default
- false
Disables playing flash games with RuffleRS
- Default
- false
Base URL for alternate frontends
Timeout for file uploads (in seconds)
Timeout for the background scan/rescan tasks (in seconds)
Number of worker processes for scanning tasks
Timeout for the rest of the background tasks (in seconds)
How long to keep task results in Valkey (in seconds)
Timeout for 7-Zip operations (in seconds)
Enable re-scanning of library when filesystem changes
- Default
- false
Delay before re-scanning library when filesystem changes (in minutes)
Enable scheduled re-scanning of library
- Default
- false
Cron expression for scheduled re-scanning
Enable scheduled updating of Switch TitleDB index
- Default
- false
Cron expression for scheduled updating of Switch TitleDB
Enable scheduled updating of LaunchBox metadata
- Default
- false
Cron expression for scheduled updating of LaunchBox metadata
Enable scheduled conversion of images to WebP format
- Default
- false
Cron expression for scheduled conversion of images to WebP format
Enable scheduled syncing of Retroachievements progress
- Default
- false
Cron expression for scheduled syncing of Retroachievements progress
Logging level for the app
- Value
- INFO
DSN for Sentry error tracking


