En el universo de la emulación y los videojuegos retro, mantener una colección de ROMs organizada, accesible y bien presentada puede ser un desafío tan grande como superar el último nivel de Contra. Afortunadamente, existen herramientas que nos facilitan esta tarea enormemente. Hoy vamos a hablar de una de mis favoritas: RomM, un gestor de ROMs moderno, visual y potente que puedes desplegar en tu propio servidor de una manera increíblemente sencilla gracias a Docker.
Si eres un entusiasta de GNU/Linux, la autogestión de servicios (self-hosting) y te apasiona el mundo de los videojuegos clásicos, este artículo es para ti. Te guiaré paso a paso para que puedas tener tu propia instancia de RomM funcionando en minutos con Docker Compose.
RomM es una aplicación web de código abierto diseñada para ser el centro de tu colección de videojuegos retro. Pensá en él como una especie de Plex o Jellyfin, pero específicamente creado para tus ROMs. Su objetivo es escanear tus directorios de juegos, identificar cada ROM y enriquecerla con metadatos como carátulas, descripciones, fechas de lanzamiento y más.
Sus características principales incluyen:
La combinación de estas características lo convierte en la solución ideal para centralizar y gestionar una colección creciente de ROMs, especialmente si tienes un NAS o un servidor casero donde almacenas tus tesoros digitales.
Antes de sumergirnos en el código, hablemos brevemente de por qué Docker Compose es la herramienta perfecta para esta tarea. Docker nos permite "empaquetar" una aplicación con todas sus dependencias en un contenedor aislado. Esto significa que no tenemos que preocuparnos por instalar versiones específicas de Node.js, gestionar librerías del sistema o lidiar con conflictos de software. El contenedor tiene todo lo que RomM necesita para funcionar.
Docker Compose lleva esto un paso más allá al permitirnos definir y gestionar aplicaciones multi-contenedor con un único archivo de configuración llamado docker-compose.yml. Para RomM, esto simplifica el proceso a un solo comando. Es limpio, reproducible e increíblemente eficiente.
Vamos a lo que nos interesa. Asumiré que ya tenés Docker y Docker Compose instalados en tu sistema GNU/Linux. Si no es así, puedes seguir la guía oficial de Docker para tu distribución.
Primero, vamos a crear una estructura de directorios organizada para nuestro proyecto. Abre tu terminal y ejecuta:
mkdir ~/romm
cd ~/romm
mkdir -p ./config/romm ./roms ./games
Ahora, dentro del directorio ~/romm, crea un archivo llamado docker-compose.yml con tu editor de texto preferido (como nano o vim) y pega el siguiente contenido:
services:
romm:
image: rommapp/romm:latest
container_name: romm
restart: unless-stopped
ports:
- "8080:8080" # Puedes cambiar el puerto 8080 de la izquierda si está ocupado
volumes:
- ./config/romm:/config # Mapea la configuración persistente
- /ruta/a/tu/coleccion/de/roms:/games:ro # Mapea tu colección de ROMs (solo lectura)
environment:
- PUID=1000
- PGID=1000
- TZ=America/Argentina/Buenos_Aires # Ajusta a tu zona horaria
Analicemos este archivo línea por línea:
Con el archivo docker-compose.yml guardado y tu ruta de ROMs correctamente configurada, ejecutar RomM es tan simple como correr el siguiente comando desde el directorio ~/romm:
docker-compose up -d
Para verificar que todo está funcionando, podés ejecutar:
docker-compose logs -f
Esto te mostrará los logs de la aplicación en tiempo real. Si todo ha ido bien, no deberías ver errores.
Una vez que el contenedor esté en marcha, abre tu navegador web y navega a http://<IP_de_tu_servidor>:8080. Serás recibido por el asistente de configuración inicial de RomM.
Una vez finalizado, ¡listo! Podrás navegar por tu colección, ver las carátulas, leer las sinopsis y maravillarte de lo bien organizada que está tu biblioteca de juegos retro.

Nos leemos en el fediverso!! @NeoRanger