7.6 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RomM | 2026-06-07 | 2026-06-07 | app |
|
high | false |
|
🕹️ RomM
ROM Manager & serveur d'émulation : scanne, indexe, métadonnées et sert vos ROMs/ISOs vers n'importe quel frontend (RetroArch/Lakka, EmuDeck, web…) — la « bibliothèque » de l'émulation moderne.
| Métadonnée | Valeur |
|---|---|
| Site web | https://romm.app/ |
| GitHub | https://github.com/rommapp/romm |
| License | AGPL-3.0 |
| Langage | Python (FastAPI) |
| Étoiles | 429 ⭐ |
| Dernière MAJ | 2026-05-29 |
| Catégorie | cat-gaming |
Description
RomM (ROM Manager) est l'outil moderne d'organisation d'une bibliothèque de ROMs et d'ISOs multi-consoles. Il s'attaque à la principale douleur de l'émulation : gérer une collection qui grossit exponentiellement (Game Boy, NES, SNES, N64, PS1, PS2, GameCube, Wii, DS, 3DS, Sega Genesis, Saturn, Dreamcast, MAME, Arcade, Atari, etc.) avec leurs jaquettes, descriptions, dates de sortie, langues, régions, et les rendre accessibles depuis n'importe quel client. RomM agit comme une bibliothèque centrale : vous déposez vos ROMs dans un dossier, RomM scanne, identifie, télécharge les métadonnées (via IGDB et MobyGames), et expose une API + une UI web élégante.
L'UI web permet de naviguer par console, voir les jaquettes, marquer des favoris, filtrer par région/genre, et télécharger ou streamer le contenu. L'intégration directe avec RetroArch (le client) est l'autre killer feature : depuis l'UI, on peut lancer une ROM sur un RetroArch distant via le protocole network commands. Idem pour EmuDeck (Steam Deck), Lakka (Raspberry Pi), et toute installation RetroArch.
Sous le capot, RomM stocke les métadonnées dans une base (SQLite par défaut, MySQL/MariaDB en option), utilise Hasheous pour le matching SHA-1/SHA-256, gère la déduplication de versions (USA, Europe, Japan, proto, beta, hacks, traductions), supporte le scanning par plateformes (un dossier = une plateforme), le multi-utilisateur avec permissions (admin/contributeur/viewer), et la gestion de Saves (upload/download des sauvegardes et states).
Cas d'usage typique : un collectionneur avec 5000+ ROMs qui veut une UI web moderne pour les parcourir, et les lancer depuis sa TV (Lakka) ou Steam Deck (EmuDeck) sans devoir bricoler manuellement. Les alternatives classiques (Skraper, LaunchBox, HyperSpin) sont des outils desktop Windows ; RomM est nativement multi-OS, multi-user, server-first, ce qui en fait la référence de l'émulation auto-hébergée.
Installation
Docker Compose (méthode officielle)
# docker-compose.yml
version: '3.8'
services:
romm:
image: rommapp/romm:latest
container_name: romm
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./config:/config
- ./library:/romm/library
environment:
- DB_HOST=db
- DB_NAME=romm
- DB_USER=romm
- DB_PASSWD=ChangeM3_ROMM
- DB_PORT=3306
- ROMM_AUTH_ENABLED=true
depends_on:
- db
- redis
db:
image: mariadb:11
container_name: romm-db
restart: unless-stopped
volumes:
- ./db:/var/lib/mysql
environment:
MARIADB_DATABASE: romm
MARIADB_USER: romm
MARIADB_PASSWORD: ChangeM3_ROMM
MARIADB_RANDOM_ROOT_PASSWORD: "yes"
redis:
image: redis:7-alpine
container_name: romm-redis
restart: unless-stopped
# Optionnel : Hasheous (matching SHA amélioré)
hasheous:
image: rommapp/hasheous:latest
container_name: hasheous
restart: unless-stopped
ports:
- "8210:8210"
environment:
- HASHEOUS_DB_CONNECTION=sqlite:///./hasheous.db
📁 Au premier lancement, créer un compte admin via
http://host/setup. Structure de dossiers attendue :/romm/library/gb/,/romm/library/nes/,/romm/library/ps1/, etc.
Installation manuelle
Python 3.11+, Poetry, Node.js 18+, MariaDB 10.6+. Cloner le repo, poetry install, cd frontend && npm install && npm run build, configurer .env, lancer python romm.py. Complexité plus élevée que Docker.
Configuration
- Library : chemin par défaut
/romm/library, sous-dossiers par plateforme (utiliser les codes standards :gb,gba,n64,ps1,ps2,wii,switch, etc.). - Métadonnées : providers configurables (IGDB, MobyGames, ScreenScraper.fr, Hasheous). Saisir ses clés API pour IGDB (gratuite) et MobyGames (gratuite).
- Sauvegardes :
SavesetStatesgérés par plateforme, dans/romm/library/{platform}/saves/. - Multi-utilisateur : rôles admin, editor (peut modifier scan), user. Authentification locale + OIDC (Authentik, Keycloak, Google, Discord).
- Scan programmé : via l'admin UI, lancer un scan complet (lent) ou incrémental.
- EmulationStation : intégration RetroArch, EmuDeck, LaunchBox.
Alternatives
Open Source
- LaunchBox (Windows only) — UI desktop, gros catalogue de jaquettes auto, free + Big Box (payant).
- Skraper — Télécharger jaquettes/vidéos, desktop Windows.
- GameVault — Concurrent plus jeune, focus Steam-style UI.
- RetroGame — Collection manager PHP (plus minimal).
- ES-DE (EmulationStation Desktop Edition) — Frontend, pas un manager.
- Lakka, RetroPie, Batocera — OS complets frontend, pas de manager centralisé.
- Recalbox — Distribution frontend + scraper intégré.
Propriétaires
- LaunchBox Big Box — Mode frontend pour PC/home theater, payant.
- GOG Galaxy — Pas pour ROMs mais pour bibliothèque jeux modernes.
- Clrmamepro, RomCenter — Outils de vérif/dédup historiques Windows.
- Steam Rom Manager (SteamGridDB) — Ajoute les ROMs à Steam avec jaquettes, semi-manuel.
Sécurité
- Auth obligatoire :
ROMM_AUTH_ENABLED=true(défaut récent). Sinon l'API est ouverte à Internet. - HTTPS : obligatoire, via app-traefik ou Caddy. L'UI affiche des jaquettes, le détail des ROMs, le multi-user, c'est sensible.
- OIDC : pour aller plus loin, brancher app-authentik ou app-keycloak pour centraliser l'auth.
- Légalité des ROMs : héberger des ROMs/ISOs/BIOS de jeux dont on ne possède pas l'original est illégal dans la majorité des juridictions (UE, USA). Le projet fournit un système, l'utilisateur est responsable de la provenance.
- BIOS : certains émulateurs nécessitent le BIOS original (PS1
SCPH1001.BIN, N64PIF-NUS.rom, etc.). Idem : dumper son propre BIOS est légal, le télécharger n'est pas toujours autorisé. - MySQL/Redis exposés : ne pas exposer ces ports sur Internet, ils ne sont pas dans les
ports:Docker. - Uploads Saves : un user compromis peut écraser des saves. Activer quota + signature.
Ressources
Pages Liées
- cat-gaming — Catégorie parente
- app-pterodactyl — Panel serveurs de jeux
- app-traefik — Reverse proxy HTTPS
- app-authentik — OIDC centralisé
- app-docker — Conteneurisation
- recettes-docker-compose — Templates
- legalite-roms-france — Concept (à créer)
- securisation-home-lab — Bonnes pratiques