Initial vault setup
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
---
|
||||
title: RetroAssembly
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, gaming, emulation, retroarch, rom-manager, frontend, typescript, wasm]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Gaming, https://github.com/arianrhodsandlot/retroassembly]
|
||||
---
|
||||
|
||||
# 🕹️ RetroAssembly
|
||||
|
||||
> **Cabinet de collection de jeux rétro personnel** — frontend web pour RetroArch via WebAssembly, joue directement dans le navigateur, self-hosted.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [retroassembly.com](https://www.retroassembly.com/) |
|
||||
| **GitHub** | [arianrhodsandlot/retroassembly](https://github.com/arianrhodsandlot/retroassembly) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | TypeScript |
|
||||
| **Étoiles** | ⭐47 (catalogue) |
|
||||
| **Dernière MAJ** | v6 (2026, PlayStation + favoris) |
|
||||
| **Catégorie** | [[cat-gaming\|Gaming]] |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**RetroAssembly** est un **frontend web pour RetroArch** qui s'exécute **directement dans le navigateur** via **WebAssembly**. C'est une application TypeScript moderne qui permet de **jouer à des jeux rétro depuis n'importe quel navigateur**, sans installer de client natif. L'auteur (arianrhodsandlot) l'a conçue comme "the personal retro game collection cabinet" — un meuble virtuel pour ranger et lancer sa collection de ROMs légalement acquises.
|
||||
|
||||
L'originalité technique majeure : RetroAssembly embarque les **cœurs libretro (cores) compilés en WebAssembly** (RetroArch-WASM). Quand vous lancez un jeu, le cœur correspondant (Snes9x pour SNES, MAME pour les arcade, etc.) se charge dans votre onglet et exécute la ROM. **Tout se passe côté client** : le serveur ne fait que stocker et servir les ROMs, le rendu et l'émulation sont dans le navigateur.
|
||||
|
||||
RetroAssembly est livré avec une **UI particulièrement soignée** : jaquettes automatiques, métadonnées (région, développeur, année), favoris, replay, **load de save states RetroArch externes** (load d'un état de sauvegarde venant de RetroArch desktop), et un système d'**émulation distribuée** dans le navigateur. Compatible avec NES, SNES, N64, Game Boy, GBA, DS, PS1, et bien d'autres selon les cœurs WASM disponibles.
|
||||
|
||||
**Fonctionnalités clés** :
|
||||
- ✅ **Lecture dans le navigateur** via RetroArch-WASM (pas de client natif)
|
||||
- ✅ **Multi-consoles** : NES, SNES, N64, GB, GBA, DS, PS1, Genesis, MAME, ...
|
||||
- ✅ **UI moderne** : jaquettes, métadonnées, favoris
|
||||
- ✅ **Load save states RetroArch** (depuis une instance desktop)
|
||||
- ✅ **Bibliothèque organisée** : recherche, filtres, tags
|
||||
- ✅ **100% client-side rendering** : le serveur ne fait que stocker
|
||||
- ✅ **Docker Hub officiel** pour déploiement rapide
|
||||
- ✅ **Thèmes** : clair/sombre
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Option 1 : Docker Compose (recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
retroassembly:
|
||||
container_name: retroassembly
|
||||
image: arianrhodsandlot/retroassembly:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3010:3000"
|
||||
volumes:
|
||||
- ./retroassembly/data:/app/data
|
||||
- /chemin/vers/roms:/app/roms # vos ROMs légalement acquises
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
# Stockage max par fichier (optionnel)
|
||||
- MAX_FILE_SIZE=2147483648 # 2 Go
|
||||
```
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Accéder à `http://IP:3010`. La première visite télécharge les cœurs WASM à la demande (cache navigateur ensuite).
|
||||
|
||||
### Option 2 : Installation manuelle
|
||||
|
||||
```bash
|
||||
git clone https://github.com/arianrhodsandlot/retroassembly.git
|
||||
cd retroassembly
|
||||
npm install
|
||||
npm run build
|
||||
node dist/server.js
|
||||
```
|
||||
|
||||
### Option 3 : Utiliser la version hébergée (non self-hosted)
|
||||
|
||||
L'auteur propose une instance de démo sur [retroassembly.com](https://www.retroassembly.com/) — utile pour tester avant d'auto-héberger.
|
||||
|
||||
## ⚙️ Configuration
|
||||
|
||||
1. **Dossier ROMs** : monter votre bibliothèque de ROMs dans `/app/roms`. RetroAssembly scanne récursivement.
|
||||
2. **Cœurs WASM** : téléchargés à la demande par le navigateur, pas de config serveur requise.
|
||||
3. **Métadonnées** : scraper automatique via ScreenScraper.fr ou autre (configurer l'API key dans `data/config.json`).
|
||||
4. **Sauvegardes** : les save states sont stockées **dans le navigateur** (IndexedDB) — utiliser le même navigateur pour les retrouver, ou exporter manuellement.
|
||||
5. **Thèmes** : clair/sombre selon préférence utilisateur (cookie).
|
||||
6. **Reverse proxy** : [[app-traefik]] ou [[app-caddy]] recommandé pour HTTPS. Pas de configuration spéciale pour les WebSockets ici, c'est client-side WASM.
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source (frontends d'émulation)
|
||||
|
||||
- [[app-retrom]] — Alternative moderne, backend Rust + frontend TypeScript/React
|
||||
- **RomM** — Beautiful, powerful ROM manager ([rommapp/romm](https://github.com/rommapp/romm))
|
||||
- **Gaseous** — ROM manager avec scan IGDB
|
||||
- **Gameyfin** — Library manager jeux ([[app-gameyfin]])
|
||||
- **EmulatorJS** — Lecteur émulateur browser
|
||||
- **RetroArch Web** — Build WebAssembly officiel de RetroArch
|
||||
- **Jellyfin + RetroArch** — Pas natif
|
||||
- **LaunchBox / BigBox** — Windows only, propriétaire freemium
|
||||
- **Pegasus Frontend** — Multi-plateforme desktop, pas web
|
||||
|
||||
### Propriétaires (ce que RetroAssembly remplace)
|
||||
|
||||
- **RetroArch (builds officiels)** — Pas de serveur, installation locale par utilisateur
|
||||
- **Batocera / Recalbox / Lakka / RetroPie** — Distros complètes, pas self-hosted serveur
|
||||
- **EmuDeck** — Steam Deck, pas self-hosted
|
||||
- **Antstream Arcade** — Streaming officiel, propriétaire
|
||||
- **Nintendo Switch Online** — Émulation propriétaire Nintendo
|
||||
|
||||
### Comparaison rapide
|
||||
|
||||
| Critère | RetroAssembly | Retrom | RomM | RetroArch (bureau) |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| Type | Frontend web | Frontend + service | Frontend web | App bureau |
|
||||
| Cible | Navigateur | Client natif + serveur | Navigateur | Desktop |
|
||||
| WASM cores | ✅ | ❌ (libretro natif) | ❌ | n/a |
|
||||
| UI | Moderne | Très moderne | Belle | Technique |
|
||||
| Licence | MIT | MIT | GPL-3.0 | GPL-3.0 |
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- **ROMs légales uniquement** : RetroAssembly est légal, mais le téléchargement de ROMs est soumis à la législation de votre pays (en France, dumping légal d'un cartouche/CD que vous possédez ; en Suisse/Canada, plus permissif).
|
||||
- **HTTPS** : exposer via [[app-traefik]] ou [[app-caddy]] pour éviter l'écoute des requêtes (bien que les ROMs ne soient pas sensibles en soit).
|
||||
- **Pas d'auth native** : RetroAssembly n'a pas d'authentification par défaut. Pour limiter l'accès, mettre derrière [[app-authelia]] ou restreindre par IP/VPN ([[app-tailscale]]).
|
||||
- **Save states côté navigateur** : attention si vous partagez un PC, les sauvegardes sont dans IndexedDB et accessibles à tous les profils navigateur.
|
||||
- **Limites navigateur** : le WebAssembly a un plafond de RAM (2-4 Go), les jeux très lourds (PS1+ surtout N64) peuvent ramer. Pour les jeux exigeants, préférer un client natif RetroArch.
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [Site officiel](https://www.retroassembly.com/)
|
||||
- [GitHub arianrhodsandlot/retroassembly](https://github.com/arianrhodsandlot/retroassembly)
|
||||
- [Docker Hub](https://hub.docker.com/r/arianrhodsandlot/retroassembly)
|
||||
- [Documentation libretro cores WASM](https://github.com/arianrhodsandlot/retroarch-wasm-builds)
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-gaming]] — Catégorie Gaming
|
||||
- [[app-retrom]] — Frontend moderne concurrent
|
||||
- [[app-gameyfin]] — Library manager jeux
|
||||
- [[app-traefik]] — Reverse proxy
|
||||
- [[app-authelia]] — Ajouter une auth
|
||||
- [[recettes-docker-compose]] — Templates Docker
|
||||
- [[securisation-home-lab]] — Durcir l'infra
|
||||
Reference in New Issue
Block a user