https://github.com/rommapp/romm
A beautiful, powerful, self-hosted rom manager and player.
https://github.com/rommapp/romm
emulation open-source retrogaming rommapp self-hosted
Last synced: 4 days ago
JSON representation
A beautiful, powerful, self-hosted rom manager and player.
- Host: GitHub
- URL: https://github.com/rommapp/romm
- Owner: rommapp
- License: agpl-3.0
- Created: 2023-03-08T16:11:01.000Z (about 2 years ago)
- Default Branch: release
- Last Pushed: 2025-04-10T13:28:09.000Z (4 days ago)
- Last Synced: 2025-04-10T14:47:11.999Z (4 days ago)
- Topics: emulation, open-source, retrogaming, rommapp, self-hosted
- Language: Python
- Homepage: https://romm.app
- Size: 281 MB
- Stars: 3,508
- Watchers: 18
- Forks: 154
- Open Issues: 95
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
- stars - romm - hosted rom manager and player. | rommapp | 3505 | (Python)
- stars - romm - hosted rom manager | rommapp | 2692 | (Python)
- definitive-opensource - RomM - hosted rom manager and player. | `SelfHost` | **3.5k** | (Table of Contents / Game Launcher)
README
![]()
A beautiful, powerful, self-hosted rom manager.
[![license-badge-img]][license-badge]
[![release-badge-img]][release-badge]
[![docker-pulls-badge-img]][docker-pulls-badge][![discord-badge-img]][discord-badge]
[![unraid-badge-img]][unraid-badge]
[![wiki-badge-img]][wiki]
# Table of Contents
- [Table of Contents](#table-of-contents)
- [Overview](#overview)
- [Features](#features)
- [Preview](#preview)
- [Installation](#installation)
- [Configuration](#configuration)
- [Folder Structure](#folder-structure)
- [Configuration File](#configuration-file)
- [Scheduler](#scheduler)
- [Naming Convention](#naming-convention)
- [Platform Support](#platform-support)
- [Tag Support](#tag-support)
- [Community](#community)
- [Support](#support)
- [Our Friends](#our-friends)# 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
- Scans and enhance your game library with metadata from [IGDB][igdb-api], [Screenscraper][screenscraper-api] and [MobyGames][mobygames-api]
- Metadata available for [400+ platforms][platform-support]
- Play games directly from the browser using [EmulatorJS][wiki-emulatorjs]
- Share your library with friends with limited access and permissions
- Official apps for [Playnite][playnite-app] and [muOS][muos-app]
- Supports mutli-disk games, DCLs, mods, hacks, patches, and manuals
- Parse and [filter by tags][tag-support] 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][wiki-quick-start-guide] in the wiki. If you are having issues with RomM, please review the page for [troubleshooting steps][wiki-troubleshooting] and common issues, or join the [Discord][discord-invite] for support from the community.
# Configuration
## Folder Structure
As mentioned in the installation section, RomM requires a specific folder structure. The two supported structures are as follows:
Structure A (recommended)
Structure B (fallback)
library/roms/gbc/game_1.gbc
library/gbc/roms/game_1.gbc
library/
├─ roms/
│ ├─ gbc/
│ │ ├─ game_1.gbc
│ │ └─ game_2.gbc
│ │
│ ├─ gba/
│ │ ├─ game_3.gba
│ │ └─ game_4/
│ │ ├─ game_4.gba
│ │ ├─ dlc
│ │ │ ├─ game_4_dlc_1.7z
│ │ │ └─ game_4_dlc_2.7z
│ │ ├─ hack
│ │ │ └─ game_4_hardmode.rar
│ │ ├─ manual
│ │ │ └─ game_4_manual.pdf
│ │ ├─ mod
│ │ │ └─ game_4_crazy_mode.zip
│ │ ├─ patch
│ │ │ └─ game_4_patch_v1.1.zip
│ │ ├─ update
│ │ ├─ demo
│ │ ├─ translation
│ │ └─ prototype
│ │
│ └─ ps/
│ ├─ game_5/
│ │ ├─ game_5_cd_1.iso
│ │ └─ game_5_cd_2.iso
│ │
│ └─ game_6.iso
│
└─ bios/
├─ gba/
│ └─ gba_bios.bin
│
└─ ps/
├─ scph1001.bin
├─ scph5501.bin
└─ scph5502.bin
library/
├─ gbc/
│ └─ roms/
│ ├─ game_1.gbc
│ └─ game_2.gbc
│
├─ gba/
│ ├─ roms/
│ │ ├─ game_3.gba
│ │ └─ game_4/
│ │ ├─ game_4.gba
│ │ ├─ dlc
│ │ │ ├─ game_4_dlc_1.7z
│ │ │ └─ game_4_dlc_2.7z
│ │ ├─ hacks
│ │ │ └─ game_4_hardmode.rar
│ │ ├─ manuals
│ │ │ └─ game_4_manual.pdf
│ │ ├─ mods
│ │ │ └─ game_4_crazy_mode.zip
│ │ ├─ patch
│ │ │ └─ game_4_patch_v1.1.zip
│ │ ├─ update
│ │ ├─ demo
│ │ ├─ translation
│ │ └─ prototype
│ │
│ └─ bios/
│ └─ gba_bios.bin
│
└─ ps/
├─ roms/
│ ├─ game_5/
│ │ ├─ game_5_cd1.iso
│ │ └─ game_5_cd2.iso
│ │
│ └─ game_6.iso
│
└─ bios/
├─ scph1001.bin
├─ scph5501.bin
└─ scph5502.bin
> [!TIP]
> For folder naming conventions, review the [Platform Support][platform-support] section. To override default system names in the folder structure (if your directories are named differently), see the [Configuration File][configuration-file] section.## Configuration File
RomM's "understanding" of your library can be configured with a `config.yaml` file or through the `config` tab in the `Control Panel` under the `Settings` section. Refer to the [example config.yml][configuration-file-example] file for guidance on how to configure it and the [example docker-compose.yml][docker-compose-example] file on how to mount it into the container.
## Scheduler
The scheduler allows you to schedule async tasks that run in the Redis container at regular intervals. Jobs can be run at a specific time in the future, after a time delta, or at recurring internals using cron notation. The [wiki page on the scheduler][wiki-scheduled-tasks] has more information on which tasks are available and how to enable them.
# Naming Convention
## Platform Support
If you adhere to the [RomM folder structure][folder-structure], RomM supports all platforms listed on the [Supported Platforms][wiki-supported-platforms] page. **The folder is case-sensitive and must be used exactly as it appears on the list.** When scanning your library, RomM will use the folder name to determine the platform and fetch the appropriate game information, metadata, and cover art.
## Tag Support
Games can be tagged with region, revision, or other tags by using parentheses in the file name. Additionally, you can set the region and language by adding a prefix: (USA), [reg-J], (French), [De].
- Revision tags must be prefixed with **"rev "** or **"rev-"** (e.g. **(rev v1)** or **(rev-1)**)
- Other tags will also be imported, for example: **my_game [1.0001]\(HACK\)[!].gba**Tags can be used to search for games in the search bar. For example, searching for **(USA)** will return all games with the USA tag.
# 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.
- [romm-comm][romm-comm-discord-bot]: Discord Bot by @idio-sync
- [DeckRommSync][deck-romm-sync]: SteamOS downloader and sync by @PeriBluGaming
- CasaOS app via the [BigBear App Store][big-bear-casaos]
- [Helm Chart to deploy on Kubernetes][kubernetes-helm-chart] by @psych0d0gJoin us on Discord, where you can ask questions, submit ideas, get help, showcase your collection, and discuss RomM with other users.
[![discord-invite-img]][discord-invite]
## Support
Consider supporting the development of this project on Open Collective.
[![oc-donate-img]][oc-donate]
## Our Friends
Here are a few projects that we think you might like:
- [EmulatorJS](https://emulatorjs.org/): An embeddable, browser-based emulator
- [RetroDECK](https://retrodeck.net/): Retro gaming on SteamOS and Linux
- [ES-DE Frontend](https://es-de.org/): Emulator frontend for Linux, macOS and Windows
- [Gaseous](https://github.com/gaseous-project/gaseous-server): Another ROM manager with web-based emulator
- [Retrom](https://github.com/JMBeresford/retrom): A centralized game library/collection management service
- [Steam ROM Manager](https://steamgriddb.github.io/steam-rom-manager/): An app for managing ROMs in Steam[folder-structure]: #folder-structure
[platform-support]: #platform-support
[tag-support]: #tag-support
[configuration-file]: #configuration-file[docker-compose-example]: examples/docker-compose.example.yml
[configuration-file-example]: examples/config.example.yml[wiki]: https://docs.romm.app/latest/
[wiki-supported-platforms]: https://docs.romm.app/latest/Platforms-and-Players/Supported-Platforms/
[wiki-troubleshooting]: https://docs.romm.app/latest/Troubleshooting/
[wiki-emulatorjs]: https://docs.romm.app/latest/Platforms-and-Players/EmulatorJS-Player/
[wiki-scheduled-tasks]: https://docs.romm.app/latest/Maintenance/Scheduled-Tasks/
[wiki-quick-start-guide]: https://docs.romm.app/latest/Getting-Started/Quick-Start-Guide/[license-badge-img]: https://img.shields.io/github/license/rommapp/romm?style=for-the-badge&color=a32d2a
[license-badge]: LICENSE
[release-badge-img]: https://img.shields.io/github/v/release/rommapp/romm?style=for-the-badge
[release-badge]: https://github.com/rommapp/romm/releases
[discord-badge-img]: https://img.shields.io/badge/discord-7289da?style=for-the-badge
[discord-badge]: https://discord.gg/P5HtHnhUDH
[unraid-badge-img]: https://img.shields.io/badge/Unraid-f57842?style=for-the-badge&labelColor=ee512b
[unraid-badge]: https://forums.unraid.net/topic/149738-support-eurotimmy-romm-rom-manager-by-zurdi15/
[wiki-badge-img]: https://img.shields.io/badge/Wiki-736e9b?style=for-the-badge
[docker-pulls-badge-img]: https://img.shields.io/docker/pulls/rommapp/romm?style=for-the-badge&label=pulls
[docker-pulls-badge]: https://hub.docker.com/r/rommapp/romm[discord-invite-img]: https://invidget.switchblade.xyz/P5HtHnhUDH
[discord-invite]: https://discord.gg/P5HtHnhUDH
[oc-donate-img]: https://opencollective.com/romm/donate/button.png?color=blue
[oc-donate]: https://opencollective.com/romm[igdb-api]: https://api-docs.igdb.com/#account-creation
[screenscraper-api]: https://www.screenscraper.fr/membreinscription.php
[mobygames-api]: https://www.mobygames.com/info/api/
[big-bear-casaos]: https://github.com/bigbeartechworld/big-bear-casaos
[kubernetes-helm-chart]: https://artifacthub.io/packages/helm/crystalnet/romm
[romm-comm-discord-bot]: https://github.com/idio-sync/romm-comm
[deck-romm-sync]: https://github.com/PeriBluGaming/DeckRommSync-Standalone
[playnite-app]: https://github.com/rommapp/playnite-plugin
[muos-app]: https://github.com/rommapp/muos-app