Having your own Minecraft server means playing with whoever you want, with your rules, your plugins and no queues or ads. "Free" Minecraft hosts make a living out of limiting you (they shut down on their own, run slow, inject ads); with a VPS you get a real server, on 24/7, for the price of a few coffees a month.
This guide sets up a Minecraft Java Edition server with Paper, the most used server software (vanilla-compatible and much faster).
How much RAM you need
| Regular players | VPS RAM | vCores |
|---|---|---|
| 1-5 (friends) | 2-4 GB | 2 |
| 5-20 | 4-8 GB | 2-4 |
| 20+ or many plugins | 8 GB or more | 4+ |
Disk barely matters at first (a world takes a few GB), but make it NVMe: chunk loading times notice it. Start small: on a GINERNET VPS you can add RAM and CPU in minutes when the server fills up.
Step 1: install Java
With Ubuntu 24.04 on the VPS, connect over SSH and install Java 21 (required for Minecraft 1.20.5+):
apt update && apt install -y openjdk-21-jre-headless
Step 2: download Paper
mkdir -p /opt/minecraft && cd /opt/minecraft
Grab the latest .jar from papermc.io/downloads (right click → copy link) and download it with wget, saving it as paper.jar:
wget -O paper.jar "JAR_URL"
Step 3: first boot and EULA
java -Xms2G -Xmx2G -jar paper.jar --nogui
The first boot stops asking you to accept the license. Accept it and you are set:
echo "eula=true" > eula.txt
Adjust -Xms/-Xmx to the RAM you want to dedicate (leave ~1 GB free for the system: on a 4 GB VPS, use -Xmx3G).
Step 4: run it as a service (systemd)
So the server starts on its own and survives reboots, create /etc/systemd/system/minecraft.service:
[Unit]
Description=Minecraft (Paper)
After=network.target
[Service]
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms2G -Xmx2G -jar paper.jar --nogui
Restart=on-failure
[Install]
WantedBy=multi-user.target
And enable it:
systemctl daemon-reload
systemctl enable --now minecraft
Step 5: open the port and connect
Minecraft Java uses port 25565 TCP. Open it in the firewall (at GINERNET, from the Firewall section of the Manager) and add the server in the game using the VPS IP. You are in.
Basic configuration
Edit server.properties (and restart with systemctl restart minecraft):
motd: the name shown in the server list.max-players: player limit.white-list=true+ thewhitelist add <player>command: only people you approve get in. Highly recommended if the port is open to the internet.view-distance: lower it to 8 if RAM is tight.
Backups
The whole world lives in /opt/minecraft/world*. A nightly cron that tars those folders (ideally copying it off the VPS) saves you from any griefing or corruption:
tar czf /root/backups/mc-$(date +%F).tar.gz -C /opt/minecraft world world_nether world_the_end
Want plugins? With Paper just drop the .jar files into the plugins/ folder and restart. Start with EssentialsX (basic commands) and CoreProtect (griefing rollback).