2 days ago
Hi, I am trying to deploy an official Pokémon Showdown side-server on Railway, but the default docs require a lot of manual tweaks (custom Dockerfiles, ENV parsing, database adapters, proxy flags, etc.). In reality, the upstream repo already works out-of-the-box if you simply:
```bash
git clone https://github.com/smogon/pokemon-showdown.git
cd pokemon-showdown
npm install
npm run start
11 Replies
I am taking about this https://github.com/smogon/pokemon-showdown/blob/master/server/README.md
Team Railway, Could you please consider adding native support for deploying Pokémon Showdown side servers? Ideally, users should be able to simply clone the repository, and the server should be up and running no additional configuration, Dockerfile, or environment tweaks required. This would greatly streamline the deployment process for a widely used open-source project.
Additional Feature Request – File Management UI
It would be extremely helpful if Railway offered a basic file management system for server-based projects.
For example, Pokémon Showdown is a Node.js-based multiplayer server that relies heavily on editable config files such as config/usergroups.csv
, formats.json
, and various log or plugin files. Right now, making small changes requires redeploying or using SSH and volume workarounds.
A built-in file manager that allows users to browse directories, edit files inline, upload/download assets, and restart the server as needed would make hosting and maintaining side servers much more efficient.
This feature would benefit many backend-focused projects not just Showdown and make Railway more powerful for managing dynamic, file-driven servers.
2 days ago
Building a template for this, already done with the Dockerfile
2 days ago
Just getting things polished
2 days ago
Here you go : https://railway.com/deploy/pokemon-showdown
You need to go into public networking and specify the port 8000
How do I specify this in the template so it automatically binds to it ? I already have an EXPOSE command in Dockerfile
2 days ago
Thank you for creating a template Kishan!
For any further discussion, consider using the Template Discussion Thread for easy access in the future https://station.railway.com/templates/pokemon-showdown-d67c1f06
smolpaw
Here you go : https://railway.com/deploy/pokemon-showdownYou need to go into public networking and specify the port 8000How do I specify this in the template so it automatically binds to it ? I already have an EXPOSE command in Dockerfile
a day ago
Deployment is crashed.
turborx
Deployment is crashed.
a day ago
May I see the crash error ?
the relevant error from the failed deploy:
Starting Container
/app/node_modules/esbuild/lib/main.js:2150
throw reject;
^
Error: The service was stopped
at /app/node_modules/esbuild/lib/main.js:969:34
…
Error: Command failed: node build
at build (/app/pokemon-showdown:30:27)
at Object. (/app/pokemon-showdown:143:2)
status: 1
To fix this, please update the template as follows:
Remove the node build step entirely
at package.json
"scripts": {
"start": "node server.js"
}
At Dockerfile:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 8080 # Railway will bind $PORT automatically
CMD ["npm", "start"]
and then server.js
(entrypoint):
const PORT = parseInt(process.env.PORT, 10) || 8000;
server.listen(PORT, () => console.log(`Listening on ${PORT}`));
With these changes, Railway will skip the failing build step and start the Pokemon Showdown server directly.
the template is attempting to run a build
script (node build
) which triggers esbuild and then crashes. Because Showdown doesn’t require a separate build step, I recommend this changes.
13 hours ago
There is no build step in the Dockerfile i am using for the template,
You can check here: https://github.com/smolpaw/pokemon-showdown-railway/blob/master/Dockerfile
At line 33 i did write "Install dependencies and build" but didn't actually run the build step as that wasn't mentioned in the readme link you posted
13 hours ago
Btw I haven't had a single build failure when i have tried to deploy it.
You mentioned deployment crashed so it was a deployment failure not build failure right ?
Here are the deployment logs when I try it2025-08-03T20:38:56.000000000Z Starting Container
2025-08-03T20:38:58.795738969Z RESTORE CHATROOM: lobby
2025-08-03T20:38:58.795746267Z RESTORE CHATROOM: staff
2025-08-03T20:38:58.795753038Z Worker 1 now listening on 0.0.0.0:8000
2025-08-03T20:38:58.795760166Z Test your server at http://localhost:8000
13 hours ago
Are you going into service settings and specifying any build or run commands ?
There is no need for any of that
13 hours ago
I just figured out the reason for the deployment crash
You need to upgrade your plan to Hobby. 0.5GB is not enough to host this template
Attachments
6 hours ago
Thanks for pinpointing that, I'll upgrade to the Hobby plan since 0.5 GB isn’t enough, but if you have any tips to reduce the memory footprint so it can even run on the Free tier, I’d like to hear them.
turborx
Thanks for pinpointing that, I'll upgrade to the Hobby plan since 0.5 GB isn’t enough, but if you have any tips to reduce the memory footprint so it can even run on the Free tier, I’d like to hear them.
5 hours ago
I am not going to review such a massive codebase to save few dollars in memory cost.
Maybe open up an issue with the project regarding memory usage and somebody familiar with the codebase could give you an answer.