#Feature Request – One-Step Pokémon Showdown Side-Server Setup.

24 messages · Page 1 of 1 (latest)

real holly
#

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:

git clone https://github.com/smogon/pokemon-showdown.git
cd pokemon-showdown
npm install
npm run start
GitHub

Pokémon battle simulator. Contribute to smogon/pokemon-showdown development by creating an account on GitHub.

ancient wadiBOT
#

Project ID: N/A

real holly
#

N/A

real holly
#

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.

hybrid valveBOT
#

New reply sent from Help Station thread:

Building a template for this, already done with the Dockerfile

You're seeing this because this thread has been automatically linked to the Help Station thread.

hybrid valveBOT
#

New reply sent from Help Station thread:

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

You're seeing this because this thread has been automatically linked to the Help Station thread.

Railway

Deploy Pokemon Showdown Server on Railway with one click, start for free. Deploy your own Pokemon Showdown battle server

worthy wren
hybrid valveBOT
#

New reply sent from Help Station thread:

Deployment is crashed. You need to clone the official repo and then need to set up files please read this https://github.com/smogon/pokemon-showdown/blob/master/server/README.md

You're seeing this because this thread has been automatically linked to the Help Station thread.

GitHub

Pokémon battle simulator. Contribute to smogon/pokemon-showdown development by creating an account on GitHub.

hybrid valveBOT
real holly
#

ok

#

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:34Error: Command failed: node build
    at build (/app/pokemon-showdown:30:27)
    at Object.<anonymous> (/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.

hybrid valveBOT
#

New reply sent from Help Station thread:

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

You're seeing this because this thread has been automatically linked to the Help Station thread.

GitHub

Contribute to smolpaw/pokemon-showdown-railway development by creating an account on GitHub.

#

New reply sent from Help Station thread:

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 it
2025-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

You're seeing this because this thread has been automatically linked to the Help Station thread.

#

New reply sent from Help Station thread:

Are you going into service settings and specifying any build or run commands ?
There is no need for any of that

You're seeing this because this thread has been automatically linked to the Help Station thread.

#

New reply sent from Help Station thread:

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 server

You're seeing this because this thread has been automatically linked to the Help Station thread.

hybrid valveBOT
#

New reply sent from Help Station thread:

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.

You're seeing this because this thread has been automatically linked to the Help Station thread.

hybrid valveBOT
#

New reply sent from Help Station thread:

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.

You're seeing this because this thread has been automatically linked to the Help Station thread.

hybrid valveBOT
#

New reply sent from Help Station thread:

That makes sense thanks for the tip! I’ll open an issue on the official Pokémon Showdown repo asking about memory‐usage optimizations for low-RAM environments and see if someone familiar with the codebase can advise.

You're seeing this because this thread has been automatically linked to the Help Station thread.

worthy wren
#

Let me know if we’re good to call
this thread solved! The template has been made, even though it doesn’t work for trial users.

ruby peak
#

Couldn't reply on the website so doing it here

Yes. it's resolved. The memory requirement for this template is just too large for a trail plans limit.
I will update the description to convey that message