RomM 是一款自托管的 ROM 管理器与游戏播放器,11.2k Stars 开源免费。支持 IGDB/MobyGames 等多源元数据自动抓取,浏览器内通过 EmulatorJS 直接游玩,400+ 平台全覆盖。Docker 一键部署,多用户权限管理,复古游戏爱好者的终极库。

🎤 引言

手里攥着一堆零散的 ROM 文件,散落在十几个文件夹里,找个游戏得像考古一样翻半天?给游戏库手动整理封面、描述、评分,做着做着就放弃了?

RomM 就是来解决这些痛点的。它是一款自托管的 ROM 管理器 + 游戏播放器,GitHub 上已经积累了 11.2k Stars,核心卖点就一句话:自动抓元数据 + 浏览器直接玩,告别手动整理


⭐ 核心功能

🎯 元数据自动抓取(10+ 数据源)

RomM 支持从多个权威数据源自动拉取游戏信息:

  • IGDBScreenscraperMobyGames:游戏封面、描述、评分、厂商等核心元数据
  • SteamGridDB:自定义艺术封面/图标
  • Retroachievements:成就系统展示

自动识别游戏、填充信息、整理出漂亮的游戏库画廊视图。相比手动整理,效率提升 10 倍以上。

🌐 浏览器即点即玩

集成 EmulatorJSRuffleRS(Flash),打开浏览器就能直接运行游戏,不用额外装任何客户端。支持的平台数量 400+,从 FC、N64 到 PS2、PSP、Wii,覆盖大部分主流复古主机。

👥 多用户权限管理

可以分享给朋友一起用,按角色分配权限(只读、贡献者、管理员),适合小型社群或家庭使用。

🎨 现代化 UI

v5.0.0-beta.1 重写了前端(Vue + TypeScript),桌面端和移动端响应式设计都做得很到位。桌面端展示的是经典的画廊视图,移动端是瀑布流,触摸操作友好。

📦 多盘/DLC/Mod 支持

  • 多盘游戏自动识别合并
  • 支持 DLC、Mod、Hack、补丁、手册
  • 文件名标签解析((Japan), (USA), (Rev 1) 等)

🔌 官方客户端生态

除了 Web 端,RomM 还提供了:

  • Playnite 插件(PC 游戏启动器集成)
  • Argosy Android 客户端
  • Grout CFW(自定义固件)

📥 安装与使用

RomM 主推 Docker Compose 部署,几分钟搞定。

硬件要求

根据官方文档:

  • 最低:2 核 CPU + 2GB RAM + 10GB 存储
  • 推荐:4 核 CPU + 4GB RAM + 50GB+ 存储(游戏库越大越占空间)

Docker Compose 快速部署

# 1. 下载官方示例配置
wget https://raw.githubusercontent.com/rommapp/romm/release/docker-compose.example.yml -O docker-compose.yml

# 2. 修改配置(设置管理员账号密码)
nano docker-compose.yml

# 3. 启动
docker compose up -d

启动后访问 http://your-ip:8080,登录后台,上传 ROM 文件,RomM 会自动扫描、识别、抓元数据。

ROM 文件夹结构

RomM 支持灵活的文件夹命名约定:

roms/
├── nes/           # 平台文件夹(按 IGDB slug)
│   ├── Super Mario Bros. (USA).nes
│   └── The Legend of Zelda (USA).nes
├── snes/
│   └── Chrono Trigger (USA).sfc
└── ps1/
    └── Final Fantasy VII (USA).iso

平台文件夹名需要按 IGDB platform slug 命名,命名错了 RomM 会识别失败。

启动游戏

Web UI 中点击游戏封面,会自动调用内置的 EmulatorJS 启动器加载游戏,按键映射也内置好了。

GitHub 地址:https://github.com/rommapp/romm
官方文档:https://docs.romm.app/latest/Getting-Started/Quick-Start-Guide/


⚠️ 注意事项

  1. ROM 来源合法性:RomM 本身只是个管理工具,不会提供任何 ROM 下载。游戏 ROM 的下载和分发得用户自己搞定,注意遵守当地法律。
  2. 元数据源 API Key:IGDB 需要 Twitch Client ID,MobyGames 需要账号。建议先把 Twitch Client ID 配上,否则大部分游戏元数据拿不到。
  3. 首次扫描耗时:游戏库很大(几千个 ROM)的话,首次全量扫描可能跑几个小时。需要耐心,或者分批次导入。
  4. EmulatorJS 性能:浏览器内运行 PS2/PSP 这类重负载游戏会比较吃 CPU,推荐客户端电脑别太老。
  5. v5.0 仍在 beta:新版前端虽然好看但可能存在边角 bug,生产环境建议先用 v4.9.2 稳定版。

✅ 总结

RomM 给复古游戏收藏党提供了一个全栈式解决方案:自动元数据 + 浏览器即玩 + 多用户分享,把散乱的 ROM 文件变成了一个干净漂亮的游戏库。

适合人群:手里有几百上千个 ROM 想要整理、想给游戏库加封面和元数据、想跟朋友共享复古游戏库的玩家。

优点

  • 多源元数据自动抓取,省心
  • 浏览器即开即玩,跨平台友好
  • Docker 部署几分钟搞定
  • 400+ 平台覆盖
  • 多用户权限系统

缺点

  • 首次扫描大库耗时
  • PS2/PSP 类重负载游戏浏览器端体验一般
  • v5.0 前端仍在 beta,有边角 bug

总的来说,RomM 是目前自托管复古游戏库方案的标杆作品之一。如果你不满足于简单的文件夹管理,又不想被 Plex/Jellyfin 这类通用媒体服务器局限在视频上,RomM 值得一试。复古游戏收藏,终于能有个像样的家了。


GitHub:https://github.com/rommapp/romm
文档:https://docs.romm.app/