Blog

How to host a Minecraft server

JSJesse Schokker·August 31, 2026·8 min read
How to host a Minecraft server
Bound byOne CPU coreClock speed beats core count, every time.
MemoryModestDriven by view distance and mods, not player count.
Biggest leverView distanceMore effective than any hardware change.
NeedsJavaVersion must match your Minecraft version.

Minecraft is far lighter than its reputation suggests. A handful of friends on a vanilla or Paper world runs comfortably in a few gigabytes of memory. What drives the requirement is not player count — it is view distance, how much of the world has been explored, and how many mods you are running. A heavily modded pack for six people will want considerably more than a plain server for twenty.

How to install it

  1. Install Java first. Recent Minecraft versions need a current Java release; older versions need an older one. Check which your version wants before anything else.
  2. Download your chosen server software. Vanilla from Minecraft’s own site, Paper from PaperMC, Fabric or Forge from their installers. Make this decision now, not later.
  3. Put it in its own empty folder. The server scatters files on first run, and untangling it from other things later is miserable.
  4. Run it once and let it fail. It will stop immediately and write out its files. This is expected.
  5. Accept the licence. Open eula.txt and change false to true. The server will not start until you do.
  6. Run it again and wait for the world to generate.
# Minecraft is not on Steam — download the jar directly.
# Vanilla from minecraft.net, or Paper from papermc.io

mkdir -p /home/mc/server && cd /home/mc/server

# First run writes eula.txt and exits. This is expected.
java -Xms4G -Xmx4G -jar server.jar nogui

sed -i 's/eula=false/eula=true/' eula.txt

# Second run generates the world.
java -Xms4G -Xmx4G -jar server.jar nogui

How to configure it

server.propertiesalmost everything
eula.txtthe licence gate above
ops.json / whitelist.jsonadmins and allowed players
server.properties
motd=Your server name here
max-players=20
white-list=true
online-mode=true

# The two performance dials. Simulation is usually
# the better one to reduce first.
view-distance=8
simulation-distance=6

difficulty=normal
spawn-protection=0
SettingWhat it doesSensible value
view-distanceHow far players can see. Accepts 1–32, but going much above 10–12 hurts noticeably.8–10
simulation-distanceHow far the world actually runs — mobs, crops, redstone. Separate from what is visible, and usually the better one to lower first.4–6
online-modeVerifies players against Mojang. Turning it off means anyone can join as any username.true
max-playersHard cap. Set it before you share the address.as needed
MemoryNot in this file — it is the -Xms/-Xmx flags on the java command.4–6 GB
  • view-distance is your single biggest performance lever. Lowering it helps more than any other change.
  • simulation-distance is separate, and often the better one to reduce first — it controls what is actively running rather than what is merely visible.
  • Leave online-mode on unless you know exactly why you are turning it off. Off means anyone can join claiming any username.
  • Set max-players and white-list before you tell anyone the address.
  • Memory is not in this file. It is set with Java flags in whatever script starts the server.
The mistake almost everyone makes

Giving the server as much memory as the machine has. Java periodically tidies up the memory it has been given, and the more you hand it, the longer that pause takes. Those pauses are the lag spikes. Give it what it needs and a little headroom — not everything you own.

Worth knowing

  • Paper for plugins, Fabric or Forge for mods. Plugins are server-side only, so players join with an unmodified game. Mods must be installed by every player, matching exactly.
  • Your world is a folder. Copy it before any major change — almost every disaster in Minecraft hosting is recoverable if you did.

Written from experience running these servers. If something here no longer matches what you are seeing, tell us and we will recheck it.

Share this article

JS
Jesse SchokkerFounder & Engineer, GameDash

Building GameDash at Schokker IT — the game server control panel we always wished existed. Writes about infrastructure automation, the SDK and running game servers at scale.

Get early access

GameDash is not open for sign-ups yet. Leave your e-mail and we will tell you the moment it is. Your address is never shared with any 3rd parties and is used exclusively for GameDash news.