--- title: Retrom created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, gaming, emulation, libretro, frontend, typescript, react, rust, game-library] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Gaming, https://github.com/JMBeresford/retrom] --- # đŸ•č Retrom > **Service centralisĂ© de gestion de bibliothĂšque de jeux pour l'Ă©mulation** — client natif desktop + serveur, multi-plateforme, scan IGDB, intĂ©gration libretro. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [retrom.app](https://retrom.app/) | | **GitHub** | [JMBeresford/retrom](https://github.com/JMBeresford/retrom) | | **License** | MIT | | **Langage** | TypeScript + React (client) + Rust (service backend) | | **Étoiles** | ⭐40 (catalogue) | | **DerniĂšre MAJ** | 2026 (v0.2.0+) | | **CatĂ©gorie** | [[cat-gaming\|Gaming]] | ## 📝 Description **Retrom** est un **service centralisĂ© de gestion de bibliothĂšque de jeux** centrĂ© sur l'Ă©mulation. Il se compose d'un **service backend Rust** (rapide, lĂ©ger, multi-plateforme) et d'un **client TypeScript/React natif** (Electron, installable Windows/MacOS/Linux). L'objectif est d'ĂȘtre un **"Plex pour les jeux"** : un serveur auto-hĂ©bergĂ© qui indexe, scanne, et expose vos jeux Ă  n'importe quel client Retrom Ă  la maison. Contrairement Ă  [[app-retroassembly]] qui joue dans le navigateur via WebAssembly, **Retrom utilise un client natif** qui exploite les **cƓurs libretro officiels** en natif (donc meilleures performances, pas de limite mĂ©moire du navigateur, support complet de tous les cores). Le serveur Rust fait le gros du travail (scan, mĂ©tadonnĂ©es, base, API), et le client ne sert que de frontend UI. L'application se distingue par un **focus sur l'Ă©mulation** (pas de jeux PC modernes comme [[app-gamevault]]) et une **architecture first-class multi-serveurs** : vous pouvez connecter plusieurs clients Ă  un mĂȘme service, et mĂȘme gĂ©rer plusieurs services. Les mĂ©tadonnĂ©es sont fetchĂ©es depuis **IGDB** (Internet Game Database) avec scraping automatique des jaquettes. **FonctionnalitĂ©s clĂ©s** : - ✅ **Service backend Rust** : scan, base, API REST/GraphQL, IGDB metadata - ✅ **Client natif Electron** (Win/Mac/Linux) avec UI React moderne - ✅ **CƓurs libretro natifs** (pas de limites WASM) - ✅ **Multi-plateformes** : le serveur tourne sur Linux/Mac/Windows, les clients idem - ✅ **Scan IGDB** automatique : jaquettes, descriptions, trailers - ✅ **BibliothĂšque centralisĂ©e** : un serveur, N clients (autant de piĂšces que vous voulez) - ✅ **Saves synchronisĂ©es** : le serveur stocke les save states, accessibles depuis n'importe quel client - ✅ **Multi-langue** : i18n support - ✅ **Docker** support pour le serveur - ✅ **Architecture Ă©volutive** : prĂ©vu pour supporter d'autres types de contenus (jeux PC, films, etc.) ## 🚀 Installation ### Option 1 : Docker Compose (serveur) ```yaml # docker-compose.yml services: retrom: container_name: retrom image: ghcr.io/jmberesford/retrom:latest restart: unless-stopped ports: - "5101:5101" # service principal - "7101:7101" # service web volumes: - ./retrom/data:/app/data # DB SQLite + cache - /chemin/vers/roms:/app/roms:ro # vos ROMs (lecture seule recommandĂ©e) - ./retrom/config:/app/config # config serveur environment: - TZ=Europe/Paris - RETROM_LOG_LEVEL=info - RETROM_HOST=0.0.0.0 - RETROM_PORT=5101 ``` ```bash docker compose up -d ``` ### Option 2 : Binaire serveur (sans Docker) ```bash # TĂ©lĂ©charger la release Linux curl -L https://github.com/JMBeresford/retrom/releases/latest/download/retrom-server-linux-x86_64 \ -o /usr/local/bin/retrom-server chmod +x /usr/local/bin/retrom-server retrom-server ``` ### Option 3 : Client natif TĂ©lĂ©charger le client depuis [releases](https://github.com/JMBeresford/retrom/releases) (`.dmg` macOS, `.exe` Windows, `.AppImage`/`.deb` Linux). Pointer vers votre serveur via l'UI : `Settings > Server URL`. ## ⚙ Configuration 1. **Dossier ROMs** : configurer dans `config/retrom.json` ou via UI admin (`/admin`). 2. **IGDB credentials** : pour activer le scan de mĂ©tadonnĂ©es, crĂ©er un compte Twitch dev (gratuit) → obtenir Client ID + Secret → configurer dans le fichier de config. 3. **Client** : pointer le client vers `http://IP:5101` (ou `https://...` derriĂšre un reverse proxy). 4. **CƓurs libretro** : les clients natifs utilisent les cores de votre installation locale. Installer via RetroArch ou manuellement dans `~/.config/retroarch/cores/`. 5. **Saves synchronisĂ©es** : activer dans *Settings > Sync Saves* — vos save states sont uploadĂ©s sur le serveur. 6. **Multi-utilisateurs** : Retrom supporte plusieurs profils client, mais l'auth serveur multi-comptes est encore en cours (WIP). 7. **Reverse proxy** : [[app-traefik]] / [[app-caddy]] pour exposer en HTTPS. ## 🔄 Alternatives ### Open Source - [[app-retroassembly]] — Concurrent, joue dans le navigateur (WASM) - **RomM** ([rommapp/romm](https://github.com/rommapp/romm)) — Magnifique UI, mais web (pas client natif) - **Gaseous** — Manager ROMs IGDB - [[app-gameyfin]] — PlutĂŽt jeux PC + ROMs - **LaunchBox / BigBox** — Windows only, freemium - **Pegasus Frontend** — Multi-plateforme desktop - **Daijishƍ** — Launcher frontend mobile-like - **ES-DE (EmulationStation Desktop Edition)** — Frontend Linux/Win/Mac ### PropriĂ©taires (ce que Retrom remplace) - **RetroArch** standalone — Pas de serveur, installation locale par machine - **Steam Big Picture + LaunchBox** — Pas de serveur centralisĂ© - **Batocera / Recalbox / Lakka / RetroPie** — Distros, pas de serveur - **EmuDeck** — Steam Deck focused - **Antstream Arcade** — Streaming officiel ### Comparaison rapide | CritĂšre | Retrom | RetroAssembly | RomM | RetroArch (bureau) | | :--- | :--- | :--- | :--- | :--- | | Architecture | Client-serveur | Serverless web | Serverless web | App bureau | | Backend | Rust | n/a | n/a | n/a | | Frontend | React natif | TypeScript web | React web | C | | CƓurs libretro | Natifs | WASM | WASM | Natifs | | UI | TrĂšs moderne | Moderne | Belle | Technique | | Multi-clients | ✅ First-class | ✅ | ✅ | ❌ | | Licence | MIT | MIT | GPL-3.0 | GPL-3.0 | ## 🔐 SĂ©curitĂ© - **Pas d'auth native serveur** (WIP cĂŽtĂ© roadmap). Restreindre l'accĂšs via : - **Reverse proxy + [[app-authelia]]** (auth basique + 2FA) - **VPN ([[app-tailscale]], [[app-wireguard]])** pour accĂšs LAN distant - **Restriction IP** dans le firewall - **HTTPS obligatoire** : [[app-traefik]] / [[app-caddy]] avec Let's Encrypt. - **Dossier ROMs en `:ro`** : le serveur n'a pas besoin d'Ă©crire dans les ROMs, monter en lecture seule. - **LĂ©galitĂ© des ROMs** : Ă©mulateurs lĂ©gaux (libretro), ROMs soumises Ă  la lĂ©gislation locale (en France : dumping d'un cartouche/CD que vous possĂ©dez est tolĂ©rĂ© pour usage privĂ©). - **Saves cloud** : les save states uploadĂ©s sont en clair sur le serveur, Ă  chiffrer au repos (LUKS, ZFS encryption) si sensibles. - **Pas d'auth encore** : attention, le serveur est ouvert par dĂ©faut sur le port 5101. À ne pas exposer sur Internet sans reverse proxy auth. ## 📚 Ressources - [Site officiel](https://retrom.app/) - [GitHub JMBeresford/retrom](https://github.com/JMBeresford/retrom) - [Reddit announcement](https://www.reddit.com/r/emulation/comments/1g08tiw/retrom_020_released_a_selfhosted_emulationfocused/) - [Discord communautaire](https://discord.gg/retrom) ## Pages LiĂ©es - [[cat-gaming]] — CatĂ©gorie Gaming - [[app-retroassembly]] — Concurrent web (WASM) - [[app-gameyfin]] — Library manager jeux - [[app-gamevault]] — Steam auto-hĂ©bergĂ© - [[app-traefik]] — Reverse proxy - [[app-tailscale]] — VPN mesh - [[recettes-docker-compose]] — Templates Docker - [[securisation-home-lab]] — Durcir l'infra