RomM — красивый и мощный self-hosted менеджер ROM-коллекций

«Think of it as Plex or Jellyfin for your ROM library» — именно так описывают RomM пользователи на Hacker News, и это сравнение очень точное.

RomM (ROM Manager) позволяет сканировать, обогащать метаданными, просматривать и играть в игры из вашей коллекции через чистый и отзывчивый веб-интерфейс. С поддержкой более 400 платформ и различных провайдеров метаданных, RomM — незаменимый инструмент для организации и наслаждения ретро-играми.


Что такое RomM и для кого он предназначен

RomM — это экосистема вокруг premier self-hosted, open-source ROM-менеджера. Проект ориентирован на:

  • Энтузиастов ретро-гейминга, собравших обширные коллекции ROM-файлов
  • Homelab-хоббистов, которые любят self-hosted решения и контролируют свои данные
  • Семьи, желающие организовать совместный доступ к классическим играм
  • Разработчиков приложений, строящих экосистему вокруг ROM-библиотек

Будучи self-hosted open-source решением, RomM гарантирует каждому возможность управлять игровыми коллекциями на своих условиях и владеть своими данными. RomM является и всегда будет бесплатным программным обеспечением с открытым исходным кодом.

ℹ Лицензия
RomM распространяется под лицензией GNU AGPLv3. Это означает, что любые модификации кода должны быть опубликованы под той же лицензией — что гарантирует прозрачность и свободу для сообщества.

Ключевые возможности

🗄️ Сканирование и обогащение коллекции

Сканируйте и обогащайте игровую библиотеку метаданными из IGDB, Screenscraper и MobyGames. RomM автоматически подтягивает обложки, описания, даты выхода и информацию о разработчиках.

🎮 Игра прямо в браузере

Ключевые возможности включают получение пользовательских обложек из SteamGridDB, отображение достижений из Retroachievements и запуск игр прямо в браузере с помощью EmulatorJS и RuffleRS.

📁 Управление коллекцией

Вы также можете делиться библиотекой с друзьями, управлять многодисковыми играми, DLC, модами и парсить теги в именах файлов — это делает RomM комплексным решением для любого ретро-гейминга.

🔄 Синхронизация сохранений между устройствами

Устройства (приложения, хэндхелды, браузеры) могут регистрироваться на сервере, получая уникальный токен. Система отслеживает, на каком устройстве находится последняя версия сохранения, фиксирует конфликты и синхронизирует данные — по запросу, через отслеживаемую папку или по расписанию.

📊 Трекинг игровых сессий

Клиентские устройства отправляют пакеты игровых сессий на сервер, фиксируя, когда и как долго шла игра. Сессии отслеживают как временное окно (start_time/end_time), так и время активного экрана (duration_ms).

📱 Мультиплатформенные клиенты

Пользователи могут использовать поддерживаемые сообществом приложения для Playnite, muOS, Android и iOS, расширяя функциональность RomM на различные устройства.

🔐 OAuth и QR-авторизация

RomM реализует OAuth device authorization flow (RFC 8628): отсканируйте QR-код телефоном для подключения и авторизации — никаких манипуляций с экранной клавиатурой.

🎨 Новый интерфейс v5

v5 — это крупнейший визуальный редизайн в истории RomM: фронтенд с нуля, новая дизайн-система, свежий визуальный язык и универсальная модель ввода, удобная для мыши, тач-экрана, клавиатуры и геймпада.


Как работает RomM: схема процессов


graph TD
    A[Ваши ROM-файлы на диске] --> B[Сканирование библиотеки]
    B --> C{Метаданные}
    C --> D[IGDB]
    C --> E[Screenscraper]
    C --> F[MobyGames]
    C --> G[SteamGridDB / libretro]
    D & E & F & G --> H[Веб-интерфейс RomM]
    H --> I[Играть в браузере / EmulatorJS]
    H --> J[Скачать ROM на устройство]
    H --> K[Синхронизация сохранений]
    K --> L[Android / iOS / muOS / Playnite]


Установка через Docker Compose

RomM разворачивается через Docker — это основной рекомендуемый способ:

services:
  romm:
    image: rommapp/romm:latest
    container_name: romm
    restart: unless-stopped
    environment:
      - DB_HOST=romm-db
      - DB_NAME=romm
      - DB_USER=romm-user
      - DB_PASSWD=your_password
      - ROMM_AUTH_SECRET_KEY=<openssl rand -hex 32>
      - IGDB_CLIENT_ID=<YOUR_ID>
      - IGDB_CLIENT_SECRET=<YOUR_SECRET>
    volumes:
      - /docker/romm/resources:/romm/resources
      - /ROMS:/romm/library       # Ваша библиотека ROM
      - /docker/romm/assets:/romm/assets
💡 Структура папок

RomM требует строгой иерархии директорий. Каждая папка верхнего уровня должна соответствовать названию платформы:

ROMS/
├── NES/
│   └── Super Mario Bros.zip
├── SNES/
│   └── Super Metroid.zip
└── GBA/
    └── Pokemon FireRed.zip

Полный список поддерживаемых имён платформ — в официальной документации.

⚠ API-ключ IGDB
Для обогащения метаданными потребуется API-ключ IGDB (через Twitch Developer Portal). Без него игры можно запускать, но без обложек и описаний. Получение ключа занимает 2–3 минуты при наличии аккаунта Twitch.

Тарифы и цены

RomM является и всегда будет бесплатным программным обеспечением с открытым исходным кодом. Никаких платных тарифов нет.

СоставляющаяСтоимость
Само приложение RomMБесплатно (GNU AGPLv3)
Хостинг (VPS, домашний сервер)По вашим затратам
IGDB APIБесплатно (Twitch Dev)
Screenscraper APIБесплатно / донат
SteamGridDB APIБесплатно

Поддержать разработку можно на Open Collective — все средства идут на покрытие расходов по хостингу, разработке и поддержке RomM.


Плюсы и минусы

✅ Плюсы❌ Минусы
Полностью бесплатен и open-sourceТребует навыков Docker/Linux для установки
Поддержка 400+ игровых платформСтрогая структура папок — неудобно для начинающих
Встроенный браузерный эмулятор (EmulatorJS)Высокое потребление ресурсов при больших библиотеках
Метаданные из IGDB, Screenscraper, MobyGamesAPI-ключ IGDB обязателен для полноценного опыта
Синхронизация сохранений между устройствамиМобильный интерфейс v5 ещё в разработке
Трекинг игровых сессийЗависимость от сторонних API (могут изменить условия)
QR/OAuth авторизация на TV и приставкахСообщество меньше, чем у Jellyfin/Plex
Клиенты для Android, iOS, muOS, PlayniteЛегальность хранения ROM — зона ответственности пользователя
Активная разработка, частые релизы

Сравнение с альтернативами

Двумя ведущими self-hosted ROM-менеджерами являются RomM и Gaseous. Рассмотрим также Retrom — ещё один активный проект в этой нише.

ПараметрRomMGaseousRetrom
ЛицензияGNU AGPLv3Open SourceOpen Source
Язык бэкендаPythonC#Rust
Платформы400+190+Многие
Браузерный эмулятор✅ EmulatorJS + RuffleRS✅ EmulatorJS❌ (внешние эмуляторы)
МетаданныеIGDB, Screenscraper, MobyGames, SteamGridDBIGDB, TheGamesDBIGDB, SGDB
Синхронизация сохранений✅ (cross-device)
Мобильные клиентыAndroid, iOS, muOS✅ Android
Трекинг сессий
Активность разработкиОчень высокаяСредняяВысокая
Сложность установкиСредняяСредняяСредняя
Ресурсы сервераСредниеНизкиеНизкие

Оба инструмента работают в Docker, предлагают веб-интерфейсы и автоматически получают метаданные, но значительно отличаются по архитектуре, функциям и целевой аудитории.

📝 Когда выбрать альтернативу
Gaseous — если вам нужен более лёгкий сервер с меньшим потреблением ресурсов. Retrom — если важна нативная интеграция с внешними эмуляторами (RetroArch и др.), а браузерный геймплей не нужен. RomM — если хотите всё в одном: обогащение, браузерный эмулятор, синхронизацию сохранений и мобильные клиенты.

Вердикт

Для всех, кто увлечён эмуляцией и ретро-гаймингом, RomM предлагает комплексное решение для управления коллекцией. Его self-hosted природа даёт пользователям полный контроль над данными, а обширный набор функций — обогащение метаданными, игра в браузере, инструменты сообщества — делает его выдающимся выбором.

RomM — это «Plex для ретро-игр»: он превращает папку с файлами в красиво оформленную, полностью функциональную игровую библиотеку. Если вы готовы к самостоятельному хостингу и не боитесь Docker, этот инструмент станет центральным хабом вашей ретро-гейминг экосистемы.

Кому подойдёт:

  • Homelab-энтузиастам с опытом работы с Docker
  • Коллекционерам с большими ROM-архивами (сотни/тысячи игр)
  • Семьям, желающим организовать общий доступ к ретро-играм
  • Разработчикам приложений для эмуляции

Кому не подойдёт:

  • Новичкам без опыта работы с Linux/Docker
  • Тем, кто хочет «просто нажать кнопку и играть» без настройки

Рейтинг: 8.5 / 10

КритерийОценка
Функциональность9/10
Удобство использования7/10
Активность разработки10/10
Дизайн интерфейса9/10
Простота установки7/10
Сообщество и поддержка8/10