Deploy Minecraft Server (Paper)

Paper Minecraft server with the world on a volume and a ready address

Deploy Minecraft Server (Paper)

Just deployed

Deploy and Host Minecraft Server (Paper) on Railway

This template runs a Minecraft Java server on Paper, using itzg/minecraft-server, a Docker image with over 400 million pulls. The world is stored on a Railway volume, and the address your friends type into Minecraft is ready in the Variables tab.

I made it because the Minecraft templates on Railway are old or unreliable: 30 of them share a few hundred deploys a quarter, the busiest has a health score of 73, and several others are below 35. This one tracks the itzg image's stable tag, so new Minecraft and Paper versions work without a template update.

About Hosting Minecraft Server (Paper)

The deploy form asks for one thing: type TRUE in EULA to accept the Minecraft EULA. The server doesn't start without it.

When the deploy is done, copy SERVER_ADDRESS from the Variables tab of the minecraft service (it looks like something.proxy.rlwy.net:12345). In Minecraft, open Multiplayer, Add Server, and paste it.

In my test the first boot took 26 seconds, including downloading Paper and generating a new world. After a redeploy it came back in 8 seconds and loaded the same world from the volume. A Server List Ping (what the Multiplayer screen sends) answered in about half a second with the version and player count.

An empty server used 0.86 GB of RAM in my test, which is about $9 a month at Railway's RAM price. The heap starts at 512 MB and grows up to MAX_MEMORY (2 GB by default) as players load chunks, so the bill follows how much the server is used.

Common Use Cases

  • A private survival world for a group of friends, with ENABLE_WHITELIST and WHITELIST to keep strangers out
  • A modded or Fabric server: set TYPE to FABRIC or FORGE and add mods through itzg's MODRINTH_PROJECTS variable

Dependencies for Minecraft Server (Paper) Hosting

A Minecraft Java Edition account for every player. Bedrock (phones and consoles) needs UDP, which Railway's TCP proxy doesn't carry.

Deployment Dependencies

Implementation Details

Set OPS to your Minecraft username to become an operator on first start. For console commands, open a shell with railway ssh from the Railway CLI and run rcon-cli, for example rcon-cli whitelist add Steve. RCON's password is generated for you, and its port isn't exposed to the internet.

Change VERSION to pin a Minecraft version such as 1.21.8. LATEST follows new releases, which can break plugins the day a new version comes out.

The trial plan caps a service at 1 GB of RAM. On the trial, set MAX_MEMORY to 700M or the server gets killed when the heap grows. On the Hobby plan the 2 GB default works for a handful of players.

Railway's TCP proxy gives a random port, so the address isn't a plain domain you can hand out. If you want play.yourdomain.com, add an SRV record at your DNS provider that points to the proxy host and port.

Why Deploy Minecraft Server (Paper) on Railway?

There's no machine to keep on at home and no router ports to open. The world is on a volume that survives redeploys, and you pay for the RAM the server uses instead of a fixed plan.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
47
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51