Deploy nuz-dash
Deploy and Host nuz-dash with Railway
nuz-dash
Just deployed
/data
Deploy and Host Nuz-Dash on Railway
Nuz-Dash is a multiplayer Pokemon Nuzlocke platform: play GB/GBA/NDS games in the browser, let the tracker log encounters straight from the game's memory, and watch your friends' runs live in a shared lobby. No accounts — invite links are all it takes. BYO ROM: each runner's legally-dumped game loads straight from their own browser and never touches the server.
About Hosting Nuz-Dash
Nuz-Dash is a single lightweight Node.js service, deployed from a Dockerfile — Railway builds the client and boots the server automatically. All state (lobbies, runners, attempts, save backups) lives as files on one attached volume, so there is no database to provision. ROM files are not part of that state: by default the server is ROM-clean — it stores only a SHA-256 fingerprint of the lobby's game, and every runner supplies their own copy in their browser, where it boots into the emulator locally. (Classic hosted-ROM mode exists for private groups, as an explicit admin opt-in behind a typed confirmation.)
The template ships with the volume mounted at /data and a randomly generated
ADMIN_TOKEN that protects the built-in admin dashboard at /admin (HTTP basic
auth, user admin, plus mandatory authenticator-app 2FA — you'll enroll with a
QR code on your first login). After deploying, open your instance's URL, create
a lobby, register your game (BYO ROM — you pick the file, only its fingerprint
is stored), and share the invite link — each friend gets their own secret link
with their run history, saves, and controller settings, and the address bar
swaps it for a streamer-safe decoy URL while they play.
Common Use Cases
- Racing Nuzlocke attempts with friends: everyone runs the same ROM hack in a shared lobby, with live-streamed emulator views and side-by-side progress
- A soullink/challenge-league hub: attempt history, graveyards, run diaries, and hardcore level caps tracked automatically across restarts
- A personal always-on Nuzlocke tracker with automatic encounter detection, save backups, and spectator links you can send to anyone
Dependencies for Nuz-Dash Hosting
- A volume mounted at
/data(included in this template) — holds all lobbies, runners, and save backups (no ROM files: the server stores only fingerprints) - Your own legally-dumped Game Boy / GBA / NDS ROM files, picked in each runner's browser after deploy — they load locally and are never uploaded
Deployment Dependencies
- Project site & guide
- Source on GitHub
- EmulatorJS (GPLv3) and PokeAPI, which power the emulator and Pokemon data
Implementation Details
Environment variables the template configures for you:
- ADMIN_TOKEN randomly generated — password for /admin (user: admin); a one-time authenticator-app (TOTP) enrollment is required on first login
- NUZ_DATA_DIR /data — where all persistent state lives (set by the Dockerfile)
The admin dashboard at /admin manages lobbies, runners, link recovery,
permissions, bug reports, and the BYO ROM setting. Nuz-Dash is a fan-made tool,
not affiliated with Nintendo, Game Freak, or The Pokemon Company.
Why Deploy Nuz-Dash on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Nuz-Dash on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
nuz-dash
tummyslyunopened/nuz-dash