Areas we serve

Self-Hosted RomM: A ROM Library That Looks Like a Real Game Launcher

Your ROM folder is not a filing problem until it is: thousands of files named SLUS_011.11, cover art scattered in three tools, saves on a handheld that died last summer. Cloud ROM lockers want your library and your metadata keys. You already own the games — you just need a shelf that looks like one.

RomM (~14k stars, AGPL-3.0) is a self-hosted ROM manager and player: scan a library, pull metadata from IGDB, ScreenScraper, LaunchBox, MobyGames, SteamGridDB, and RetroAchievements, browse like a modern game launcher, and play in the browser via EmulatorJS and Ruffle. No tracking, no paid tier — your disks, your MariaDB, your rules.

What RomM actually does

  • Library scan — 400+ platforms, multi-disc games, DLC, mods, hacks, manuals
  • Metadata & art — box art, screenshots, achievements; optional API keys for providers (ScreenScraper, SteamGridDB, etc.)
  • Play in browser — EmulatorJS + Ruffle for many systems without installing a desktop emulator on every device
  • Save sync — cloud saves and states across devices with conflict resolution
  • ROM patcher — apply translations and romhacks on the fly
  • Multi-user — per-user permissions, OIDC SSO for households or friend groups

Ecosystem around it: official Playnite plugin, Argosy for Android handhelds, Grout for CFW (muOS, Garlic, ROCKNIX, and others). Community clients for Steam Deck, Vita, iOS, and more — RomM is the hub, not the only remote.

Why self-host?

Collection size. ROM libraries are tens or hundreds of gigabytes. Streaming them from someone else's CDN is slow and weird; a Canadian VPS or home server with a fat volume is the natural home.

Legal and privacy posture. You are responsible for what you store; self-hosting keeps hashes, play history, and account links off a third-party SaaS. RomM does not phone home with your catalog.

LAN and handheld life. Pair a phone or Anbernic over Wi‑Fi, sync saves, download on demand — one origin on your network beats exposing a random port on the internet without TLS.

Forever free license. AGPL means no feature gate for "premium metadata" — fund the project via Open Collective if you want, not because the app locks scanning.

Running it

Production stack from the official example: rommapp/romm:latest + MariaDB. Map volumes for:

  • /romm/library — your ROMs (folder structure matters; see their docs)
  • /romm/assets — saves and states
  • /romm/resources — fetched covers and media
  • Optional /romm/config for config.yml

Generate ROMM_AUTH_SECRET_KEY with openssl rand -hex 32. Set DB passwords, expose 8080 (example maps host port 80 → container 8080). Valkey/Redis data can live in a named volume for background jobs.

Plan 4 GB+ RAM for scanning large libraries; disk scales with ROMs plus art cache — easily hundreds of GB for serious collectors. Put TLS in front (Caddy/nginx) if you access RomM outside the LAN.

Register free API keys for ScreenScraper and friends if you want rich metadata; RomM documents each provider.

Who it's for

Good fit: retro collectors consolidating folders, Steam Deck households, emulation fans who want Playnite + browser play from one catalog.

Skip it: people with a dozen ROMs in a single emulator app; anyone unwilling to run MariaDB and backup volumes.

We host the Linux box and backups — you mount the library path. Docker hosting in Canada with large volumes suits RomM well. Tell us library size in TB and how many concurrent players you expect and we will size CPU, SCAN_WORKERS, and disk before the first full scan.

Tags:
  • RomM
  • Emulation
  • Retro Gaming
  • Self-Hosted
  • Docker
  • MariaDB

Need Help With Your Hosting?

Tell us about your application — we respond within 1 hour with honest recommendations.