--- title: RomM created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, gaming, emulation, rom-manager, retro-gaming, retrogaming, python, fastapi] confidence: high contested: false sources: - https://selfh.st/apps/?tag=Gaming - https://github.com/rommapp/romm - https://romm.app/ --- # đŸ•č 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\|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) ```yaml # 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** : `Saves` et `States` gĂ©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`, N64 `PIF-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 - [Site officiel](https://romm.app/) - [Repository GitHub](https://github.com/rommapp/romm) - [Documentation](https://docs.romm.app/) - [Discord communautaire](https://discord.gg/romm) - [Templates RetroArch](https://docs.lizardbyte.dev/projects/sunshine/en/latest/) ## 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