
Deploy Minecraft Paper Server
Pinned Paper Minecraft: 2G heap, /data volume, EULA, autopause, TCP 25565.
Just deployed
/data
Deploy and Host Minecraft Paper Server on Railway
Pinned Paper Java Edition on itzg/minecraft-server. World and plugins live on a /data volume. Players join over a public TCP 25565 proxy (not HTTP). Heap defaults to 2G, not 8G.
About Hosting Minecraft Paper Server on Railway
This is a single paper service:
- Image
itzg/minecraft-server:2026.9.0-java25(digestsha256:4e29d14082d94748f945edad3ee5307b97adc730fec49860199f5e52218a9ae3) - Java 25 (Paper 26.x minimum)
TYPE=PAPER,VERSION=26.2,PAPER_BUILD=121(stable)- Volume mount
/datafor world,server.properties, plugins, logs - TCP proxy application port 25565
MAX_MEMORY=2GandINIT_MEMORY=2Gwith Aikar flags- Native empty-server pause via
PAUSE_WHEN_EMPTY_SECONDS=60 - No extra dashboard service (panels balloon RAM on a 2G heap)
Join address is the Railway TCP proxy host:port shown on the service (the public port is assigned by Railway; the container still listens on 25565).
Why Deploy Minecraft Paper Server on Railway
Marketplace Minecraft cards such as BLEtpx still default an 8G heap, unpinned :latest images, and weak persistence. This listing pins the itzg tag and Paper build, mounts /data, exposes TCP 25565, keeps the heap at 2G, requires an explicit EULA, and documents autopause.
Verified on the template test project: deployment 512d44f1-9a13-4388-b24e-5eed78132776 reached SUCCESS with /data mounted; logs showed Done (10.110s)!; a status ping on the TCP proxy returned Paper 26.2 with MOTD Paper on Railway.
Common Use Cases
- Small friend-group Paper SMP
- Plugin testing on a pinned Paper build
- Always-on Java Edition server with a sane Railway bill
- Worlds that survive redeploys via
/data - Idle-friendly hosting with native pause-when-empty
Dependencies for Minecraft Paper Server Hosting
You need a Minecraft Java Edition client and acceptance of the Minecraft EULA. The server downloads the pinned Paper jar on first boot (needs outbound HTTPS). Premium accounts are required unless you set ONLINE_MODE=FALSE.
Deployment Dependencies
EULA(required): you must set this toTRUEyourself. That is Mojang EULA acceptance. The server will not start otherwise. Do not leave it blank.TYPE=PAPER,VERSION=26.2,PAPER_BUILD=121— pinned PaperMAX_MEMORY=2G,INIT_MEMORY=2G— never 8GUSE_AIKAR_FLAGS=TRUEENABLE_AUTOPAUSE=FALSE— itzg JVM freeze; leave off unless you need itPAUSE_WHEN_EMPTY_SECONDS=60— native pause when no players are onlineMAX_TICK_TIME=-1— disables the vanilla tick watchdog (required if you later enable itzg autopause)VIEW_DISTANCE=8,SIMULATION_DISTANCE=6,MAX_PLAYERS=20ONLINE_MODE=TRUE,MODE=survival,DIFFICULTY=normal- Volume
/dataand TCP proxy port 25565 (created by the template)
No generated secrets. Whitelist/ops are in-game or files on /data.
One-click deploy
- Click deploy.
- Set
EULA=TRUE(required). - Wait for first boot (downloads Paper 26.2-121 and generates a world).
- Open the Paper service → Settings → Networking → TCP Proxy. Copy
host:port. - Minecraft Java client → Multiplayer → Direct Connection → paste
host:port.
Autopause (save RAM when empty)
Prefer native pause on Paper 26:
PAUSE_WHEN_EMPTY_SECONDS=60maps topause-when-empty-seconds. The JVM stays up; the dedicated server stops ticking after 60 empty seconds.- Set
0/-1if farms must keep running with nobody online.
Legacy itzg freeze (ENABLE_AUTOPAUSE=TRUE) SIGSTOPs Java and wakes on a TCP knock:
ENABLE_AUTOPAUSE=TRUE
MAX_TICK_TIME=-1
JVM_DD_OPTS=disable.watchdog:true
Leave that off by default. knockd plus Railway’s TCP proxy is easy to misconfigure. Do not set ENABLE_AUTOSTOP=TRUE — Railway will treat a stopped process as a crash and restart it.
How this is healthier than BLEtpx-style clones
- Pinned image tag + digest, not
:latest - Pinned Paper 26.2 build 121
- 2G heap, not 8G
/datavolume- Explicit required
EULA - Autopause documented (native + optional itzg)
- TCP 25565 only — no RAM-heavy dashboard
After Deploy
- Confirm logs contain
Done (andStarting Minecraft server on *:25565. - Copy the TCP proxy endpoint.
- Join with a Java client. Default
ONLINE_MODE=TRUE. - Drop plugin jars into
/data/plugins(volume browser orrailway ssh) and restart. - Raise
MAX_MEMORY/INIT_MEMORYtogether only if you also size the Railway service above heap + ~500MB native.
Support Checklist
If a deploy fails, include the Paper deployment ID, whether /data is mounted, the TCP proxy endpoint, and log lines around EULA, Paper download, memory (Setting initial memory), and Done (.
Template Content
TZ
EULA
MODE
MOTD
TYPE
VERSION
DIFFICULTY
MAX_MEMORY
INIT_MEMORY
MAX_PLAYERS
ONLINE_MODE
PAPER_BUILD
MAX_TICK_TIME
VIEW_DISTANCE
USE_AIKAR_FLAGS
ENABLE_AUTOPAUSE
ENABLE_ROLLING_LOGS
SIMULATION_DISTANCE
PAUSE_WHEN_EMPTY_SECONDS
OVERRIDE_SERVER_PROPERTIES
STOP_SERVER_ANNOUNCE_DELAY
