TiloBox
Back to directory
RomM project preview

RomM

Retro video game ROM manager and web-based library scanner for retro gaming.

LicenseAGPL-3.0
GitHub stars12.2k
Last commit1 weeks ago
Tags7 topics
EmulatorGamingVueRetro GamingRomsSelf HostedPython
Overview

Why consider RomM?

RomM (ROM Manager) is a self-hosted retro video game library manager. It scans game ROMs, fetches metadata and box art from IGDB, and provides an in-browser emulator.

Guided learning

Learn RomM by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

3 min read 10 sections
In this guide10 sections

What is RomM?

RomM (ROM Manager) is an open-source, self-hosted retro video game collection manager and web application. It operates as a private retro gaming library organizer—similar to a self-hosted Steam for classic video games across generations of consoles (NES, SNES, Genesis, PlayStation, N64, Game Boy, Arcade).

RomM automatically scans local ROM folders, extracts game metadata, high-resolution box art, screenshots, release dates, and developer credits from the Internet Game Database (IGDB) and MobyGames, and integrates in-browser retro gaming emulators powered by EmulatorJS.

Who Is It For?

  • Retro Gaming Collectors: Organizing tens of thousands of classic console ROMs with rich visual box art and metadata classification.
  • Homelabbers: Hosting a centralized game server that streams ROMs and saves directly to handheld gaming devices (Steam Deck, Anbernic, Miyoo Mini).
  • Casual Gamers: Playing classic retro video games directly inside any modern web browser without installing local emulator binaries.

Key Features

  • Automated ROM file scanning and metadata matching using official IGDB and MobyGames APIs.
  • In-browser gameplay execution powered by integrated EmulatorJS cores.
  • Cross-platform support across dozens of retro platforms (Nintendo, Sega, Sony, Atari, Arcade).
  • Save-state management allowing players to save and resume game progress directly in browser storage or cloud sync.
  • Multi-user authentication with individual favorite lists, play logs, and completion statistics.

Deploying RomM with Docker Compose

yaml
1version: '3.8'
2
3services:
4 romm:
5 image: rommapp/romm:latest
6 container_name: romm
7 restart: unless-stopped
8 environment:
9 - DB_HOST=romm-db
10 - DB_NAME=romm
11 - DB_USER=romm_user
12 - DB_PASSWD=secure_romm_password
13 - ROMM_AUTH_SECRET_KEY=generate_a_secure_32_character_secret_key
14 - IGDB_CLIENT_ID=your_igdb_twitch_client_id
15 - IGDB_CLIENT_SECRET=your_igdb_twitch_client_secret
16 volumes:
17 - ./resources:/romm/resources
18 - ./config:/romm/config
19 - /media/roms:/romm/library
20 ports:
21 - 8080:8080
22 depends_on:
23 - romm-db
24
25 romm-db:
26 image: mariadb:10.11
27 container_name: romm-db
28 restart: unless-stopped
29 environment:
30 - MARIADB_DATABASE=romm
31 - MARIADB_USER=romm_user
32 - MARIADB_PASSWORD=secure_romm_password
33 - MARIADB_ROOT_PASSWORD=root_secure_password
34 volumes:
35 - ./mysql_data:/var/lib/mysql

Start the stack:

bash
1docker compose up -d

Navigate to http://localhost:8080 in your browser to complete administrator onboarding and initiate your initial library scan.

Practical Use Cases

1. In-Browser Classic Gaming

A player opens RomM in a web browser, clicks on a classic SNES RPG, and plays immediately using a connected Bluetooth controller and in-browser EmulatorJS emulation.

2. Centralized ROM Vault for Steam Deck

A gamer connects a Steam Deck handheld to the self-hosted RomM server via web browser or API, downloading games directly to local emulator folders on demand.

3. Box Art and Manual Collection

A collector browses complete collections of classic games with high-resolution front/back cover art, promotional screenshots, and digital PDF game manuals.

Troubleshooting and Limitations

  • IGDB API Key Requirement: To enable automatic metadata and box art scraping, obtain free Twitch Developer credentials (Client ID and Secret) and configure them in environment variables.
  • ROM Directory Structure: Organize your game files by platform folder names (e.g. /romm/library/snes/, /romm/library/gba/) for accurate automatic platform detection.

Official Resources

Related tools

More options with a similar category or technology profile.

RomM FAQs

RomM is listed as a Media tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository and official website for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

RomM is listed under the AGPL-3.0 license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

RomM is listed as an alternative to Steam. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.