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 pastabioscom 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:
- 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.
- A chave secreta de autenticação (
ROMM_AUTH_SECRET_KEY) — gerada com um comandoopenssl(a documentação mostra qual). - Credenciais dos provedores de metadados — usuário/senha do ScreenScraper, chave do RetroAchievements, chave do SteamGridDB etc.
- 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.
- 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 para1992, 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.dbe afins que front-ends e o próprio sistema criam); - Mapear os nomes das suas pastas para as plataformas do RomM (ex.: pasta
GC→NGCpara 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:
- Escolha as plataformas que vai usar (pode marcar todas sem problema);
- Crie o usuário administrador (nome, e-mail e senha) — essa é a sua camada de segurança;
- 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
romse 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 é:
- Habilite o Docker em Settings → Docker.
- Crie uma rede Docker dedicada pelo terminal:
docker network create romm. Isso é essencial para os dois contêineres conversarem. - Crie um share (ex.:
data) e, dentro dele, uma estrutura tipomedia/gamespara guardar as ROMs. - 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. - Instale o contêiner RomM oficial, apontando para a mesma rede
romm, ajustando a porta (ex.:9090para evitar conflitos) e — o mais importante — a localização da biblioteca (/mnt/user/data/media/games). - 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:
- 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.
- 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.
- 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.