NoticiasLinux.com.br Notícias do Mundo GNU/Linux
22 de setembro de 2026 · por Redação

RomM: o gerenciador de ROMs open source e self-hosted

O RomM é um gerenciador de biblioteca de ROMs open source e self-hosted. Veja o que é, recursos, requisitos e como instalar com Docker passo a passo.

Imagine ter toda a sua coleção de jogos clássicos organizada como uma biblioteca de streaming — com capas, descrições, conquistas e a possibilidade de jogar de qualquer lugar, só com um navegador. Sem cabo USB, sem cartão SD, sem brigar com a configuração de emulador. É exatamente isso que o RomM entrega: um servidor pessoal para a sua coleção de ROMs, rodando no seu próprio hardware.

Neste guia completo você vai entender o que é o RomM, quais são os seus recursos, quanto de máquina você precisa e, principalmente, como instalar o RomM com Docker passo a passo — além dos atalhos para quem usa Unraid, CasaOS ou uma VPS. Tudo destilado de quem já montou o sistema do zero.

O que é o RomM?

O RomM (de ROM Manager — o segundo "M" no nome é justamente de Manager) é um gerenciador de biblioteca de ROMs self-hosted e open source. Em português claro: é um software que você instala no seu próprio computador ou servidor para catalogar, organizar e jogar a sua coleção de jogos retrô através de uma interface web bonita e centralizada.

Em vez de olhar para uma pasta cheia de arquivos com nomes crípticos, o RomM te dá uma biblioteca visual, no estilo de um serviço de streaming: você escolhe a plataforma (NES, Super Nintendo, PlayStation, Game Boy Advance…) e vê todos os seus jogos com capa, arte de caixa e informações. Dá para navegar, filtrar, favoritar e — o pulo do gato — jogar direto no navegador ou baixar o ROM para o dispositivo que você quiser.

O coração da parte de "jogar no navegador" é outro projeto open source fantástico, o EmulatorJS, uma versão adaptada do RetroArch que roda dentro da página web. Por baixo, o RomM usa Docker para rodar a aplicação e um banco de dados MariaDB para guardar todos os metadados da sua coleção.

O ponto mais importante de posicionamento: o RomM é a sua nuvem de jogos particular, independente das plataformas dos outros. Você não depende de loja, de assinatura nem de servidor de terceiros. O acervo é seu, o servidor é seu, as regras são suas.

Atenção: o RomM organiza e roda os arquivos de ROM, mas não distribui jogos. Cabe a você fornecer os arquivos da sua própria coleção — o software é só o gerenciador.

Por que usar o RomM? Os principais benefícios

Antes de partir para a instalação, vale entender por que o RomM virou um dos projetos mais comentados no mundo do retrogaming self-hosted:

  • Acesso de qualquer lugar. Configurando o acesso remoto, você joga (ou baixa jogos) de casa, do trabalho, viajando ou usando o Wi-Fi de um amigo. A sua coleção vai junto.
  • Uma biblioteca de verdade, não uma pasta. Capas, descrições, gênero, franquia, desenvolvedora, data de lançamento, screenshots e até o manual do jogo — tudo automático.
  • Roda em hardware fraco. Um PC velho encostado no armário já dá conta do recado (falaremos dos requisitos abaixo).
  • Open source. Código aberto, comunidade ativa, documentação detalhada e zero custo de licença.
  • Centraliza a distribuição para seus aparelhos. Tem um handheld tipo Anbernic, AYN Odin ou Steam Deck? O RomM vira a central de onde você baixa os jogos direto para o aparelho, sem cabo nem cartão.

Como resumiu um dos criadores de conteúdo que testou a ferramenta: é um projeto que "parece bom demais para ser verdade".

Principais recursos do RomM

O RomM é generoso em funcionalidades. Estes são os recursos que mais importam no dia a dia:

1. Organização e catalogação da coleção

O uso número um do RomM é ser um organizador de jogos. Você pode explorar toda a coleção, buscar por nome, filtrar por console e criar coleções personalizadas. Há filtros avançados para achar jogos duplicados (como uma versão americana e outra europeia do mesmo título), marcar o status de cada jogo (jogando, zerado, na fila), dar uma nota e até indicar o nível de dificuldade que você sentiu. Ótimo para quem quer, enfim, encarar aquele backlog eterno de clássicos.

2. Player no navegador (EmulatorJS)

Este é, para muita gente, o recurso mais impressionante do RomM. Graças ao EmulatorJS, você clica em Play e joga direto no navegador, sem instalar nem configurar emulador. Dá para:

  • Pausar o jogo a qualquer momento;
  • Criar save states (estados de save) e continuar de onde parou em qualquer dispositivo;
  • Jogar com teclado e mouse, controle ou, no celular, com controles projetados na tela;
  • Usar shaders para simular as scanlines das TVs de tubo (CRT) ou dar um upscaling básico nos pixels.

Vale o alerta de desempenho: o player web dá conta confortavelmente de consoles até o PlayStation 1. Para plataformas mais pesadas, o ideal é usar um emulador dedicado em hardware mais forte — e deixar o RomM só como gerenciador e "loja" de download.

E se você também curte jogos atuais, vale conferir como jogar no Linux — de Steam e Proton às melhores distros para games.

3. Metadados automáticos (capas, descrições e mais)

O RomM se conecta a serviços de preservação de jogos para baixar automaticamente capas, arte de caixa, descrições, screenshots e detalhes de cada título. Ele consegue puxar boa parte disso sozinho, e você quase não precisa se preocupar. Falaremos dos provedores de metadados logo mais.

4. Integração com RetroAchievements (conquistas)

Fã de conquistas? O RomM integra com o RetroAchievements, descrito por muitos como "a melhor coisa que aconteceu ao retrogaming desde a emulação". Ele desbloqueia conquistas nos seus jogos retrô favoritos e mostra o progresso direto na interface — perfeito para quem quer "platinar" os clássicos.

5. Patcher de ROMs embutido

Curte ROM hacks — aqueles Pokémon modificados, hacks de Zelda e afins? O RomM traz um patcher de ROM embutido (baseado no popular Patch.js). Você fornece a ROM original e o arquivo de patch, e ele não só gera a ROM modificada para download como também pode subir a versão corrigida direto para a sua biblioteca, de forma automática.

6. Botão de "jogo sugerido"

Um problema moderno e curioso: quanto maior a coleção, mais tempo a gente perde escolhendo o que jogar em vez de jogar. O RomM resolve isso com um botão de jogo sugerido — ideal para aqueles 15 minutos livres em que você quer jogar algo, mas não sabe o quê.

Requisitos: o que você precisa para rodar o RomM

Uma das melhores surpresas do RomM é como ele é leve. Os requisitos são quase ridículos de tão baixos:

  • Um computador para ser o servidor. Pode ser um PC antigo, um mini PC ou um NAS.
  • Um sistema operacional — de preferência uma distribuição Linux, embora o Docker rode em outros sistemas.
  • Docker para rodar a aplicação.
  • Memória RAM: na prática, 512 MB já bastam.
  • Processador: praticamente qualquer CPU dos últimos 15 anos aguenta tudo da era 16-bit para trás.
  • Espaço em disco: depende do tamanho da coleção, mas jogos antigos são pequenos. Para você ter ideia, uma coleção completa com mais de 1.700 jogos de Super Nintendo ocupa menos de 2 GB.

Não tem um PC sobrando nem um home lab em casa? Dá para rodar o RomM tranquilamente numa VPS barata (o plano de entrada de provedores como a Hostinger já roda o RomM sem problema).

Um ponto de sinceridade: este não é um tutorial para iniciantes absolutos. Se você nunca ouviu falar de Docker, de armazenamento em rede ou de linha de comando, a curva inicial pode assustar. A boa notícia é que a documentação oficial é excelente e existem atalhos de instalação que dispensam quase toda a parte técnica.

Como instalar o RomM com Docker (passo a passo)

Esta é a rota oficial e mais flexível — a que "pede aquela dose extra de café". Ela funciona em qualquer sistema com Docker. Vamos por partes.

Passo 1 — Instale o Docker

O primeiro pré-requisito é ter o Docker instalado e rodando. Baixe o Docker Desktop (disponível para Windows, macOS com chips Intel/Apple Silicon e Linux) e instale como qualquer outro aplicativo. Se você já tem um servidor com Docker, pule esta etapa.

O que é Docker, em uma analogia? Cozinhar do zero exige comprar ingredientes e ter forno, fogão, micro-ondas… um monte de peças. O Docker é como pedir comida pronta por delivery: chega tudo num pacote só, configurado e pronto para rodar. É essa "refeição empacotada" que garante que o RomM funcione igual em qualquer máquina.

Passo 2 — Organize suas ROMs na estrutura de pastas correta

O RomM precisa que os arquivos estejam arrumados de um jeito que ele entenda. A estrutura recomendada (Estrutura A) é:

  • Uma pasta principal roms;
  • Dentro dela, uma subpasta por plataforma (Game Boy, Game Boy Advance, PlayStation, PlayStation 2 etc.);
  • Ao lado da pasta roms, uma pasta bios com os BIOS de cada plataforma que precisar (PS1, PS2 etc.).

Há também uma Estrutura B (com roms e bios dentro de cada plataforma), mas a maioria prefere a Estrutura A por ser mais limpa.

Fique atento aos nomes curtos das plataformas: o RomM usa códigos como ngc (GameCube), psx (PlayStation 1) e dc (Dreamcast). Se a sua pasta se chama "Dreamcast", pode ser preciso renomear ou mapear. A lista completa de plataformas suportadas (são mais de 400!) está na documentação.

Passo 3 — Escolha os provedores de metadados

Para o RomM baixar capas e informações, ele consulta provedores de metadados. Os principais:

  • ScreenScraper — um dos melhores e gratuito. Com uma pequena doação (cerca de 10 euros, uma única vez), você libera mais requisições e threads para scraping mais rápido.
  • RetroAchievements — gratuito; só é preciso pegar a chave de API. É o que habilita as conquistas.
  • Hasheous (Hashes) — não exige cadastro nem chave de API; casa os jogos pelo hash (identificador único) do arquivo. Rápido, mas menos completo.
  • IGDB — exige login via conta Twitch.
  • SteamGridDB — exige conta Steam e chave de API.
  • LaunchBox, MobyGames, Flashpoint e HowLongToBeat — provedores adicionais.

A combinação mais recomendada por usuários experientes é ScreenScraper + RetroAchievements. Para uma coleção grande e completa, adicionar IGDB e LaunchBox ajuda a cobrir os sistemas que o ScreenScraper não pega sozinho.

Passo 4 — Baixe e edite o arquivo Docker Compose

O RomM é instalado a partir de um arquivo Docker Compose (compose.example.yml), disponível no GitHub oficial. Esse arquivo é uma lista de instruções que descreve os dois contêineres: o RomM em si (imagem rommapp/romm) e o banco MariaDB.

Nesse arquivo você vai ajustar, principalmente:

  1. Senhas do banco de dados — a senha root do MySQL/MariaDB e a senha do usuário do banco. Use senhas únicas e seguras, e garanta que a senha no bloco do RomM bata com a definida no bloco do MariaDB.
  2. A chave secreta de autenticação (ROMM_AUTH_SECRET_KEY) — gerada com um comando openssl (a documentação mostra qual).
  3. Credenciais dos provedores de metadados — usuário/senha do ScreenScraper, chave do RetroAchievements, chave do SteamGridDB etc.
  4. Os caminhos (volumes) — aqui está o segredo. O Docker é um "jardim murado com segurança na porta": se o caminho não estiver declarado, o contêiner não enxerga a pasta. Você precisa apontar três caminhos: a biblioteca de ROMs, a pasta de saves e o arquivo de configuração.
  5. As portas — o RomM roda internamente na porta 8080. Se ela já estiver em uso na sua máquina, troque a porta externa (um usuário mudou para 1992, por exemplo).

Dica importante: o Docker não cria pastas que não existem. Crie manualmente a pasta de configuração (ex.: .../docker/romm/config) antes de subir o contêiner, senão ele falha ao montar o volume.

Passo 5 — Configure o arquivo config.yaml

Baixe o config.example.yaml, renomeie para config.yml (o nome precisa bater com o que está no Compose) e coloque na pasta de config. Nesse arquivo, tudo vem comentado por padrão — você "descomenta" (remove o #) as opções que quiser ativar. Aqui você pode:

  • Excluir arquivos-lixo do scan (aqueles .xml, thumbs.db e afins que front-ends e o próprio sistema criam);
  • Mapear os nomes das suas pastas para as plataformas do RomM (ex.: pasta GCNGC para GameCube);
  • Definir regiões e idiomas dos metadados;
  • Escolher quais mídias baixar (arte de caixa, marquee, screenshots etc.).

Uma dica prática: use um editor de código de verdade (como o Visual Studio Code) para editar esses arquivos .yml. Você ganha destaque de sintaxe e evita o erro clássico de indentação errada, que costuma quebrar a configuração.

Passo 6 — Suba o contêiner e faça o primeiro acesso

Com tudo pronto, é hora de subir. No terminal, na pasta do Compose, rode:

docker compose up -d

O Docker vai baixar as imagens e iniciar os contêineres. Note que o RomM só sobe depois que o banco MariaDB estiver saudável (isso está garantido pelo depends_on no Compose, com health checks). Se você tentar iniciar fora de ordem, o RomM não acha o banco e trava.

Deu tudo certo? Abra o navegador e acesse o IP do servidor + a porta (por exemplo, http://192.168.1.58:1992) ou, se instalou na sua própria máquina, http://localhost:8080. Você verá a tela de configuração inicial, que leva cerca de 30 segundos:

  1. Escolha as plataformas que vai usar (pode marcar todas sem problema);
  2. Crie o usuário administrador (nome, e-mail e senha) — essa é a sua camada de segurança;
  3. Confira os scrapers de metadados que ficaram ativos.

Clique em Finish, faça login e pronto: você está no dashboard do RomM. No começo ele vem vazio.

Passo 7 — Importe seus jogos (scan ou upload)

Há duas formas de povoar a biblioteca:

  • Upload manual: clique em upload, selecione os arquivos (ou uma pasta inteira) e escolha a qual console eles pertencem. Simples, mas inviável para coleções gigantes.
  • Scan (recomendado): aponte o RomM para a sua pasta de roms e deixe ele varrer tudo, baixando metadados no processo. Use o quick scan (varre só o que ainda não está no banco); o complete rescan revarre tudo e demora bastante.

Coleções grandes levam tempo — um usuário com cerca de 6.300 jogos relatou dias de scanning, porque cada jogo precisa baixar imagem e checar a base do RetroAchievements. Vale saber que o scanner tem um timeout padrão de 4 horas; para bibliotecas enormes, dá para aumentar esse limite por uma variável de ambiente.

Atalhos: instalando o RomM sem dor de cabeça

Se a rota do Docker Compose pareceu trabalhosa, existem caminhos muito mais fáceis:

RomM em VPS (Hostinger e similares)

Na VPS, basta ir à seção de sistema operacional → aplicações, escolher o RomM e instalar. Pronto — o provedor cuida da parte técnica.

RomM em home lab (CasaOS, ZimaOS, Umbrel, TrueNAS)

Se você já tem um home lab rodando CasaOS/ZimaOS, Umbrel, TrueNAS ou similar, é só abrir a loja de aplicativos e instalar o RomM de lá. Poucos cliques e está no ar.

RomM no Unraid (passo a passo específico)

O Unraid é um caso à parte e muito popular. O roteiro é:

  1. Habilite o Docker em Settings → Docker.
  2. Crie uma rede Docker dedicada pelo terminal: docker network create romm. Isso é essencial para os dois contêineres conversarem.
  3. Crie um share (ex.: data) e, dentro dele, uma estrutura tipo media/games para guardar as ROMs.
  4. Instale o banco MariaDB pelos Community Apps. A recomendação é usar a imagem do LinuxServer.io, que é mais rápida e integra bem — definindo nome do banco (romm), usuário e senha.
  5. Instale o contêiner RomM oficial, apontando para a mesma rede romm, ajustando a porta (ex.: 9090 para evitar conflitos) e — o mais importante — a localização da biblioteca (/mnt/user/data/media/games).
  6. Gere a secret key pelo terminal, ative pelo menos o Hasheous (que não exige cadastro) para já ter capas, e suba o contêiner.

O RomM cria sozinho a pasta roms dentro do seu share e, a cada plataforma que você adiciona, gera automaticamente a subpasta correspondente (Nintendo 64, PlayStation etc.). Suba um jogo de N64 e ele aparece na hora, já com a arte puxada pela API de hash.

Acesso remoto: jogando de qualquer lugar (reverse proxy)

O RomM brilha mesmo quando você configura o acesso remoto. Para isso, usa-se um reverse proxy (proxy reverso): em vez de digitar um IP que pode mudar, você acessa por um domínio (endereço web) que redireciona para o seu servidor.

As opções mais citadas:

  • Cloudflare Tunnel — a parte de tunelamento é gratuita; você só precisa comprar um domínio (dá para achar um por uns 5 a 6 dólares por ano). É a rota mais recomendada por ser simples e segura.
  • Nginx Proxy Manager — interface gráfica para gerenciar o proxy no seu próprio servidor.
  • Caddy, Traefik — alternativas populares, cada uma com seu guia na documentação.
  • SSL grátis via Let's Encrypt para deixar tudo criptografado.

Cuidado com segurança: ao expor o RomM para a internet, redobre a atenção com senhas e chaves. É uma etapa avançada, com riscos reais — vá com calma e siga um guia confiável.

Apps e dispositivos: levando o RomM para os handhelds

Um dos maiores atrativos do RomM é servir de central para os videogames portáteis (handhelds) e outros aparelhos. Em vez de FTP, cabo USB ou cartão SD, você baixa o jogo direto do servidor para o aparelho — inclusive fora de casa, via acesso remoto. Alguns apps compatíveis:

  • ArgosE Launcher — funciona como front-end e baixador de jogos; conecta ao RomM via token de API e sincroniza a biblioteca com as artes.
  • ArcShop — mais focado em ser um player; também pareia com o RomM por API.
  • Grout e clientes em muOS — disponíveis em firmwares customizados de aparelhos Anbernic, entre outros.
  • Compatível com aparelhos como AYN Odin, AYN Thor, TrimUI, e até o Steam Deck.

Para conectar qualquer um desses, você gera um token de API dentro do RomM (no perfil → API tokens), define nome, validade (30/90 dias, 1 ano ou nunca) e permissões. A recomendação de segurança é usar um token diferente para cada app.

Problemas comuns do RomM (e como resolver)

O RomM é caprichado, mas não é perfeito. Fique de olho nestes três pontos:

  1. Capas faltando. Se você não configurou o ScreenScraper (ou outro provedor) no Compose, alguns jogos podem ficar sem imagem. Solução rápida: suba a capa manualmente pela interface. Solução definitiva: criar conta no serviço, adicionar as credenciais no Compose e reimplantar o contêiner.
  2. BIOS/firmware ausente. A maioria dos consoles antigos roda sem configuração extra, mas PlayStation 1 e Nintendo 64, por exemplo, costumam precisar dos arquivos de BIOS. Se o jogo não abrir, envie o BIOS correspondente nas configurações do RomM.
  3. Bug do PSP no navegador. O módulo de PSP (PPSSPP) tem um bug conhecido no GitHub: o jogo fica organizado e bonito na biblioteca, mas não roda direto no navegador por enquanto. Nesses casos, use um emulador dedicado e deixe o RomM só como gerenciador.

Some a isso o já citado timeout de scan de 4 horas (ajustável) para coleções muito grandes, e você tem o mapa dos perrengues mais comuns.

RomM vale a pena?

Se você tem uma coleção de ROMs e está cansado de pastas bagunçadas, cabos e configuração repetitiva de emulador, o RomM vale muito a pena. Ele transforma um monte de arquivos soltos numa biblioteca elegante, pesquisável e acessível de qualquer lugar, com capas, conquistas e player embutido — tudo open source e rodando no seu próprio hardware, sem depender de ninguém.

A única ressalva honesta é a curva de instalação: a rota oficial via Docker exige um pouco de disposição técnica. Mas, com os atalhos de VPS e app store de home lab, mesmo quem está começando no self-hosting consegue colocar o sistema no ar. E, uma vez configurado, o RomM praticamente se cuida sozinho.

No fim, o RomM não é só um organizador — é uma forma de preservar e reviver a sua coleção do jeito moderno: do sofá, da cama, do trabalho ou de onde você estiver.

Perguntas frequentes sobre o RomM (FAQ)

O RomM é gratuito? Sim. O RomM é um projeto open source e gratuito. Você só pode ter custos opcionais com um domínio (para acesso remoto), uma VPS (se não tiver hardware) ou uma doação a provedores de metadados como o ScreenScraper.

O RomM fornece os jogos/ROMs? Não. O RomM é apenas o gerenciador. Você precisa fornecer os arquivos de ROM da sua própria coleção.

Preciso saber programar para usar o RomM? Não precisa programar, mas ajuda ter noções de Docker e servidores. Para quem está começando, as instalações via VPS (Hostinger) ou loja de apps (CasaOS, Unraid) dispensam quase toda a parte técnica.

Dá para jogar direto no navegador? Sim, graças ao EmulatorJS. O player web roda bem até jogos de PlayStation 1. Consoles mais pesados pedem um emulador dedicado.

Quais consoles o RomM suporta? Mais de 400 plataformas, do NES e Super Nintendo a PlayStation, Game Boy Advance, Nintendo 64 e muito mais.

O que eu preciso para rodar o RomM? Um computador para servidor, Docker, um banco MariaDB e pouca coisa de hardware: 512 MB de RAM e qualquer processador dos últimos 15 anos já bastam para a maioria dos jogos retrô.

Como acesso o RomM fora de casa? Configurando um reverse proxy — a combinação mais recomendada é Cloudflare Tunnel + domínio próprio, opcionalmente com Nginx Proxy Manager.

Para os comandos e detalhes sempre atualizados, consulte a documentação oficial do RomM.

📬 Receba no seu e-mail As principais notícias de Linux e software livre, sem custo.
« todos os artigos