Install a Minecraft Server on a VPS

A VPS gives you complete control over your Minecraft server. No game panel limitations, no shared resources, and the freedom to configure everything exactly as you want. The trade-off: you have to set everything up yourself. In this guide, we walk through the installation step by step, from a bare Linux VPS to a running, optimized Minecraft server.

Step 1: choose a VPS and log in

Choose a VPS with at least 4 GB RAM and 2 CPU cores for a small server (up to 10 players). For larger communities, go with 8 GB or more. Ubuntu 24.04 LTS or Debian 12 are solid choices for the operating system.

Log in via SSH: ssh root@YOUR_IP. First, update the system:

apt update && apt upgrade -y

Step 2: install Java 25

Minecraft 26.x requires Java 25. Install it:

apt install -y wget
wget https://download.eclipse.org/adoptium/25/latest/jdk/x64/linux/OpenJDK25-jdk_x64_linux_hotspot.tar.gz
tar -xzf OpenJDK25-jdk_x64_linux_hotspot.tar.gz
mv jdk-25* /opt/java-25

Add Java to your PATH by adding to /etc/profile.d/java.sh:

export JAVA_HOME=/opt/java-25
export PATH=$JAVA_HOME/bin:$PATH

Source it: source /etc/profile.d/java.sh and verify: java -version.

Step 3: create a dedicated user

Never run a Minecraft server as root. Create a dedicated user:

useradd -m -s /bin/bash minecraft

Step 4: download and configure Paper

Switch to the minecraft user and set up the server:

su - minecraft
mkdir server && cd server
wget https://api.papermc.io/v2/projects/paper/versions/26.3/builds/LATEST/downloads/paper-26.3-LATEST.jar -O paper.jar

Create a start script start.sh with optimized JVM flags (Aikar's flags):

#!/bin/bash
java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
  -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \
  -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
  -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \
  -XX:InitiatingHeapOccupancyPercent=15 \
  -XX:G1MixedGCLiveThresholdPercent=90 \
  -XX:G1RSetUpdatingPauseTimePercent=5 \
  -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem \
  -XX:MaxTenuringThreshold=1 \
  -jar paper.jar --nogui

Make it executable: chmod +x start.sh. Run it once to generate the files, accept the EULA by editing eula.txt to eula=true, then run again.

Step 5: configure server.properties

Key settings to adjust in server.properties:

  • server-port=25565 (or your preferred port)
  • view-distance=10 (reduce to 8 or 6 for better performance)
  • simulation-distance=6 (keeps entity processing manageable)
  • max-players=20 (set to your expected player count)
  • motd= (your server's description)

Step 6: open the firewall

ufw allow 25565/tcp
ufw allow 22/tcp
ufw enable

Step 7: auto-start with systemd

Create /etc/systemd/system/minecraft.service so the server starts on boot and restarts on crash:

[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=/home/minecraft/server/start.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Enable and start: systemctl enable minecraft && systemctl start minecraft.

Step 8: optimization

For the best performance:

  • In paper-global.yml: enable async chunk loading, reduce entity activation range.
  • In spigot.yml: reduce mob spawn limits, increase merge radius for items and XP orbs.
  • Install anti-lag plugins like ClearLagg for automatic entity cleanup.
  • Set up automated restarts every 6 to 12 hours to prevent memory buildup.

Should I use a game panel on my VPS?

Optional but recommended if you manage multiple servers. Pterodactyl is a popular free panel that provides a web interface for file management, console, and player management. For a single server, command-line management with screen or tmux works fine.

How do I update the server?

Stop the server, download the latest Paper jar, replace the old one, and start again. Your world, plugins, and configuration are preserved. Always back up before updating.

Can I run multiple servers on one VPS?

Yes, if you have enough RAM. Each server needs its own directory and port. A VPS with 16 GB RAM can comfortably run 2 to 3 small servers. Use different ports (25565, 25566, etc.) or set up a Velocity proxy.

Need a VPS for your Minecraft server? Check our VPS plans starting at 4 GB RAM, or go with managed Minecraft hosting if you prefer a ready-to-use setup.


Still stuck? Open a support ticket and our team will help you out.

Back to the blog