Files
wiki/Catalogue-Self-Hosted/apps/app-gaseous.md
T
2026-06-09 18:40:21 +02:00

5.6 KiB


title: Gaseous created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, gaming, rom, retro, emulation, metadata, igdb] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Gaming, https://github.com/gaseous-project/gaseous-server]

💿 Gaseous

Gestionnaire de ROMs avec identification automatique par hash et émulateur web intégré (EmulatorJS) — un concurrent direct de RomM.

Métadonnée Valeur
Site web https://github.com/gaseous-project/gaseous-server
GitHub https://github.com/gaseous-project/gaseous-server
License AGPL-3.0
Langage C# (.NET / ASP.NET Core) + JavaScript (EmulatorJS)
Étoiles 895
Dernière MAJ 2026-05-14 (v1.7.14)
Catégorie cat-gaming

Description

Gaseous est un gestionnaire de ROMs self-hosted qui combine trois fonctions en une seule application : identification automatique des jeux par hash de fichier, récupération de métadonnées depuis plusieurs sources (IGDB, Hasheous), et émulation en navigateur via EmulatorJS. L'utilisateur dépose ses ROMs brutes, Gaseous calcule leur empreinte, les associe au bon titre (avec jaquette, description, date de sortie, studio) et permet d'y jouer directement depuis le navigateur.

Le projet se distingue de app-romm par son architecture en briques (un process host séparé pour les tâches lourdes, une lib gaseous-lib réutilisable, un CLI dédié) et par son focus sur le matching par signature plutôt que par nom de fichier — ce qui est crucial pour les sets ROMs où les fichiers sont renommés (No-Intro, Redump, etc.). Gaseous gère aussi les fichiers CHD et les sets multi-disques.

L'authentification (à partir de v1.7.0) permet d'exposer l'instance sur Internet en relative sécurité, mais l'équipe recommande de privilégier l'accès via VPN (app-wireguard, app-tailnet) pour limiter la surface d'attaque. Le projet est soutenu par un petit groupe de contributeurs et un Ko-fi.

Installation

Option 1 : Docker Compose (recommandé)

# docker-compose.yml
version: '3.8'
services:
  gaseous:
    image: ghcr.io/gaseous-project/gaseous-server:latest
    container_name: gaseous
    restart: unless-stopped
    depends_on:
      - db
    environment:
      - GASEOUS_DB_CONNECTION_STRING=Server=db;Port=3306;Database=gaseous;Uid=gaseous;Pwd=changeme;
      - GASEOUS_IGDB_CLIENT_ID=your_twitch_client_id
      - GASEOUS_IGDB_CLIENT_SECRET=your_twitch_client_secret
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    volumes:
      - gaseous_config:/app/config
      - gaseous_roms:/app/roms      # vos ROMs
      - gaseous_media:/app/media    # cache des jaquettes
    ports:
      - "5192:5192"

  db:
    image: mariadb:11.1
    container_name: gaseous-db
    restart: unless-stopped
    environment:
      - MARIADB_DATABASE=gaseous
      - MARIADB_USER=gaseous
      - MARIADB_PASSWORD=changeme
      - MARIADB_RANDOM_ROOT_PASSWORD=yes
    volumes:
      - gaseous_db:/var/lib/mysql

volumes:
  gaseous_config:
  gaseous_roms:
  gaseous_media:
  gaseous_db:

Option 2 : Installation manuelle (Windows)

Un installeur WiX est fourni dans les releases. Pré-requis : .NET 8 runtime, MariaDB 11+ et ffmpeg dans le PATH.

Configuration

  • Clé API IGDB : créer une app Twitch (https://api-docs.igdb.com/#account-creation) pour activer le scraping de métadonnées
  • Hasheous proxy : alternative open source à IGDB, évite la dépendance Twitch
  • Signatures : importer le pack de signatures via Settings > Signatures pour le matching par hash
  • Scan de bibliothèque : tâche de fond Library Scan qui ré-identifie les ROMs (peut prendre plusieurs heures sur un gros set)
  • Lecture depuis le navigateur : EmulatorJS est intégré, lancer un jeu depuis l'UI ouvre directement le player

Alternatives

Open Source

  • app-romm — Concurrent direct, Python/TypeScript, scan plus rapide, communauté plus large
  • app-retrom — Centralized game management, Kotlin, interface moderne
  • app-gameyfin — Video game manager en Kotlin, plus jeune
  • app-retroassembly — Collection retro dans le navigateur, TypeScript
  • Lutris — Client de jeu Linux (pas de web UI)
  • Pegasus Frontend — Frontend pour émulateurs desktop

Propriétaires

  • EmuMovies / GameTDB — Bases de métadonnées centralisées (pas self-hosted)
  • LaunchBox / BigBox — Frontends Windows payants

Sécurité

  • Authentification : créer un compte admin dès le premier lancement, désactiver l'inscription publique
  • Reverse proxy (app-traefik) avec TLS obligatoire si exposition WAN
  • Clé IGDB : ne pas commit dans le compose, utiliser un .env ou les secrets Docker
  • Base de données : MariaDB dans un réseau Docker isolé, mot de passe fort
  • Sauvegardes : /app/config (utilisateurs) + dump SQL de MariaDB

Ressources

Pages Liées