RomM (ROM Manager) è un’applicazione web-based progettata per gestire e organizzare la tua collezione di ROM per il retrogaming. Offre un’interfaccia moderna e pulita che permette di sfogliare i giochi per console, scaricare automaticamente metadati e locandine (tramite IGDB) e, grazie all’integrazione con EmulatorJS, giocare direttamente nel browser.

Processo di Installazione

Per installare RomM è consigliato utilizzare Docker Compose. Il sistema richiede un database MariaDB per memorizzare le informazioni della libreria e i salvataggi degli utenti.

Docker Compose

Il seguente file docker-compose.yml configura l’applicativo principale e il database necessario.

yaml
services:
  romm:
    image: rommapp/romm:latest
    container_name: romm
    restart: always
    environment:
      - DB_HOST=romm-db
      - DB_NAME=${ROMM_DB_NAME:-romm}
      - DB_USER=${ROMM_DB_USER:-romm_user}
      - DB_PASSWORD=${ROMM_DB_PASSWORD}
      - ROMM_AUTH_SECRET=${ROMM_AUTH_SECRET} # Genera con: openssl rand -hex 32
      # Opzionale: Configurazione IGDB per i metadati
      - IGDB_CLIENT_ID=${IGDB_CLIENT_ID}
      - IGDB_CLIENT_SECRET=${IGDB_CLIENT_SECRET}
    ports:
      - "8080:8080"
    volumes:
      - ./romm_resources:/romm/resources
      - ./romm_config:/romm/config
      - /path/to/your/roms:/romm/library # Modifica con il percorso della tua cartella ROM
    depends_on:
      romm-db:
        condition: service_healthy

  romm-db:
    image: mariadb:latest
    container_name: romm-db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=${ROMM_DB_ROOT_PASSWORD}
      - MYSQL_DATABASE=${ROMM_DB_NAME:-romm}
      - MYSQL_USER=${ROMM_DB_USER:-romm_user}
      - MYSQL_PASSWORD=${ROMM_DB_PASSWORD}
    volumes:
      - ./romm_db:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 5

Configurazione delle Variabili (.env)

Crea un file .env nella stessa directory del Compose per gestire in sicurezza le password e le chiavi segrete.

bash
ROMM_DB_NAME=romm
ROMM_DB_USER=romm_user
ROMM_DB_PASSWORD=una_password_sicura
ROMM_DB_ROOT_PASSWORD=una_password_root_sicura
ROMM_AUTH_SECRET=genera_un_segreto_lungo_casuale
# Facoltativo
IGDB_CLIENT_ID=il_tuo_id_client
IGDB_CLIENT_SECRET=il_tuo_segreto_client

Avvio del Servizio

Una volta configurati i file, avvia lo stack con il comando:

bash
docker-compose up -d

Dopo l’avvio, potrai accedere a RomM tramite browser all’indirizzo http://<indirizzo_IP_server>:8080. Al primo accesso ti verrà richiesto di configurare l’account amministratore e scansionare la tua libreria.

Consigli Utili

  • Organizzazione cartelle: Per un riconoscimento ottimale, organizza le ROM in sottocartelle nominate in base alla console (es. library/snes/, library/gba/).
  • Metadati IGDB: Ti consigliamo vivamente di registrare un account developer su Twitch per ottenere le chiavi IGDB; questo permetterà a RomM di scaricare locandine di alta qualità e descrizioni dettagliate in automatico.
  • Salvataggi: RomM supporta il caricamento e il download degli stati di salvataggio (save states), permettendoti di riprendere la partita da qualsiasi dispositivo.