Railway template scaffolding for RomM, a beautiful self-hosted ROM manager and player. The published Railway marketplace name is romm.
Based on the upstream Docker Compose example.
The template runs RomM as two Railway services:
app— RomM web UI + embedded Valkey (public)mariadb— application database
Follow docs/railway-wiring.md when creating or
updating the marketplace template. It contains the exact service names,
reference variables, generated secrets, ports, healthchecks, and volume mounts.
Paste docs/description.md into the Railway template
Description field when publishing.
Only the app URL should be opened in a browser. MariaDB stays on Railway
private networking. Railway allows one volume per service — mount /romm
on app so library, resources, assets, and config share that volume. Leave
REDIS_HOST unset so the image starts embedded Valkey; /redis-data is
ephemeral on Railway (cache / task broker).
The wrapper currently tracks RomM 5.1.0 (Docker Hub tag matching upstream
release 5.1.0).
- Copy
.env.exampleto.env. - Replace
ROMM_AUTH_SECRET_KEYwith a random value (openssl rand -hex 32). - Start the stack:
docker compose up --buildOpen http://localhost:8080. Complete the first-boot setup wizard, then place
ROMs under /romm/library (see
folder structure)
and scan from the UI.
- Bump the image tag in
services/app/Dockerfileto the new Docker Hub semver (GitHub releaseX.Y.Z→ image tagX.Y.Z). - Diff upstream docker-compose.example.yml and env.template for env/volume changes and port them here.
- Run
docker compose configand smoke-test/api/heartbeat, first-boot wizard, a small library scan, and metadata fetch if keys are set.
upstream-check.yml opens a version-bump PR weekly. Review the changelog and
smoke before merging.
This repository contains deployment configuration only. RomM is distributed under AGPL-3.0; see the upstream license.
Community-maintained Railway packaging — not an official RomM project.