
RomM — самохостируемый менеджер ROM-коллекций
Обзор RomM — бесплатного open-source менеджера ROM-коллекций с веб-интерфейсом, встроенным эмулятором и поддержкой 400+ платформ.
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 является и всегда будет бесплатным программным обеспечением с открытым исходным кодом.
Ключевые возможности
🗄️ Сканирование и обогащение коллекции
Сканируйте и обогащайте игровую библиотеку метаданными из 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
Полный список поддерживаемых имён платформ — в официальной документации.
Тарифы и цены
RomM является и всегда будет бесплатным программным обеспечением с открытым исходным кодом. Никаких платных тарифов нет.
| Составляющая | Стоимость |
|---|---|
| Само приложение RomM | Бесплатно (GNU AGPLv3) |
| Хостинг (VPS, домашний сервер) | По вашим затратам |
| IGDB API | Бесплатно (Twitch Dev) |
| Screenscraper API | Бесплатно / донат |
| SteamGridDB API | Бесплатно |
Поддержать разработку можно на Open Collective — все средства идут на покрытие расходов по хостингу, разработке и поддержке RomM.
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| Полностью бесплатен и open-source | Требует навыков Docker/Linux для установки |
| Поддержка 400+ игровых платформ | Строгая структура папок — неудобно для начинающих |
| Встроенный браузерный эмулятор (EmulatorJS) | Высокое потребление ресурсов при больших библиотеках |
| Метаданные из IGDB, Screenscraper, MobyGames | API-ключ IGDB обязателен для полноценного опыта |
| Синхронизация сохранений между устройствами | Мобильный интерфейс v5 ещё в разработке |
| Трекинг игровых сессий | Зависимость от сторонних API (могут изменить условия) |
| QR/OAuth авторизация на TV и приставках | Сообщество меньше, чем у Jellyfin/Plex |
| Клиенты для Android, iOS, muOS, Playnite | Легальность хранения ROM — зона ответственности пользователя |
| Активная разработка, частые релизы | — |
Сравнение с альтернативами
Двумя ведущими self-hosted ROM-менеджерами являются RomM и Gaseous. Рассмотрим также Retrom — ещё один активный проект в этой нише.
| Параметр | RomM | Gaseous | Retrom |
|---|---|---|---|
| Лицензия | GNU AGPLv3 | Open Source | Open Source |
| Язык бэкенда | Python | C# | Rust |
| Платформы | 400+ | 190+ | Многие |
| Браузерный эмулятор | ✅ EmulatorJS + RuffleRS | ✅ EmulatorJS | ❌ (внешние эмуляторы) |
| Метаданные | IGDB, Screenscraper, MobyGames, SteamGridDB | IGDB, TheGamesDB | IGDB, SGDB |
| Синхронизация сохранений | ✅ (cross-device) | ❌ | ✅ |
| Мобильные клиенты | Android, iOS, muOS | ❌ | ✅ Android |
| Трекинг сессий | ✅ | ❌ | ❌ |
| Активность разработки | Очень высокая | Средняя | Высокая |
| Сложность установки | Средняя | Средняя | Средняя |
| Ресурсы сервера | Средние | Низкие | Низкие |
Оба инструмента работают в Docker, предлагают веб-интерфейсы и автоматически получают метаданные, но значительно отличаются по архитектуре, функциям и целевой аудитории.
Вердикт
Для всех, кто увлечён эмуляцией и ретро-гаймингом, 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 |