ScriptsMay 5, 2026·3 min read

Romm — Self-Hosted ROM Collection Manager & Player

A self-hosted ROM library manager with metadata scraping, in-browser emulation, and multi-platform support for retro gaming collections.

Introduction

Romm is a self-hosted game library manager designed for retro ROM collections. It automatically scrapes metadata and artwork from IGDB, organizes games by platform, and provides in-browser emulation so you can play directly from your server without downloading files locally.

What Romm Does

  • Scans and organizes ROM files by platform with automatic folder detection
  • Scrapes game metadata, cover art, and screenshots from IGDB and MobyGames
  • Provides in-browser emulation via EmulatorJS for instant play without downloads
  • Supports multi-user access with individual game libraries and save states
  • Manages firmware files, BIOS images, and save data alongside ROMs

Architecture Overview

Romm runs as a Python FastAPI backend with a Vue.js frontend, packaged in a single Docker container. It uses MariaDB for metadata storage and scans a mounted ROM directory on disk. The EmulatorJS integration serves WASM-based emulator cores directly in the browser, communicating with the backend for ROM streaming and save state sync.

Self-Hosting & Configuration

  • Deploy with Docker Compose; requires MariaDB and a mounted ROM directory
  • Obtain an IGDB API key (free) for metadata scraping
  • Organize ROMs in platform-named folders for automatic detection
  • Configure via environment variables for database, auth, and scraper settings
  • Supports HTTPS behind a reverse proxy with standard headers

Key Features

  • In-browser play: emulate games directly without client software
  • Multi-platform support: covers 50+ retro systems from Atari to PS2
  • Cloud save states: resume games across devices through the web UI
  • Multi-user: each user gets their own library view and save data
  • Bulk scanning with incremental updates for large collections

Comparison with Similar Tools

  • RetroArch — desktop emulator frontend; Romm is web-based and server-hosted
  • Playnite — Windows game launcher; Romm focuses on ROM management and web access
  • LaunchBox — Windows-only with paid tiers; Romm is free and cross-platform
  • EmulatorJS standalone — player only; Romm adds library management and metadata
  • Gaseous — similar self-hosted concept; Romm has broader platform coverage

FAQ

Q: What platforms does Romm support for in-browser emulation? A: Most systems from NES through PS1/N64, plus handheld consoles. Newer systems depend on EmulatorJS core availability.

Q: How large can my ROM library be? A: There is no built-in limit. Users manage collections with tens of thousands of ROMs on modest hardware.

Q: Does Romm handle multi-disc games? A: Yes, multi-file and multi-disc games are grouped together as a single library entry.

Q: Can I share my library with friends? A: Yes, multi-user support lets you invite others with configurable permissions per user.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets