So you want to run a Minecraft server for you and a few friends. Good call. It's not as scary as it looks, and once you've done it once you'll wonder why you waited. This walkthrough takes you from nothing to a running server, with a real focus on the stuff that trips people up the first time.
What you actually need
A Minecraft server is just a program that runs in the background and waits for players to connect. It doesn't need a graphics card or a gaming rig. What it cares about is RAM, a decent CPU, and a stable internet connection.
Here's a rough RAM guide for small groups. These are sensible starting points, not hard limits, and modded servers eat far more than vanilla.
| Players | Vanilla / Paper | Light mods or plugins |
|---|---|---|
| 2 to 5 | 2 GB | 3 to 4 GB |
| 5 to 10 | 3 to 4 GB | 4 to 6 GB |
| 10 to 20 | 4 to 6 GB | 6 to 8 GB |
For a handful of friends building and exploring, 4 GB is a comfortable spot. You can always bump it later. The most common beginner mistake is giving the server too little RAM and then blaming lag on something else.
Home hosting or a host?
You've got two ways to do this. Run it on a spare computer at home, or rent a server from a host. Both work. They just suit different people.
Running it at home is free if you've already got a PC sitting around. The catch is that the machine has to stay on whenever anyone wants to play, it uses your home internet (so your upload speed matters), and you'll need to open a port on your router so people outside your house can connect. More on that in a second, because it's where most people get stuck.
A host runs the server on hardware in a data center that's online all the time. You don't tie up your own PC, you don't touch your router, and you usually get a control panel to manage everything. The trade off is cost, though plenty of hosts offer a free tier to start. If you want to skip the home networking headache entirely, our free Coal plan at Bytte.cloud lets you spin up a small server and see if hosting is for you before you spend a penny.
Honestly, if you've never done this before and the goal is just to play with friends without babysitting a PC, a host is the easier road. But there's nothing wrong with learning on your own machine first. You'll understand the moving parts better.
Picking a version and a server type
First, decide on a Minecraft version. Match it to whatever version you and your friends play on. If you're all on the latest release, use that. If someone has mods tied to an older version, everyone needs to be on the same one. The server and the client have to match exactly or people just won't connect.
Next, the server type. This matters more than people expect:
- Vanilla is the official server from Mojang. It's pure Minecraft with no extras. Simple, but it can get laggy with more players and you can't add plugins.
- Paper is a tuned version of the server that runs much smoother and supports plugins. For most small communities, this is the one I'd recommend. It's a drop in replacement for vanilla.
- Spigot is the older plugin platform Paper is built on. Paper is generally faster, so there's little reason to pick Spigot today.
- Fabric and Forge are for mods, the kind that add new blocks, mobs and machines. Pick the one your mod pack is built for.
If you just want better performance and the option to add things like permissions or homes later, go with Paper. You can run plugins such as EssentialsX and LuckPerms on it without any drama.
Installing the right Java version
Minecraft servers run on Java, and the version matters. Newer Minecraft needs newer Java. As a rough guide, modern versions (1.20 and up) want Java 21, while slightly older ones run on Java 17. If you try to start a server with the wrong Java, it'll either refuse to launch or throw an unsupported class version error.
Grab a free build from Adoptium (Temurin) or Azul Zulu rather than the consumer Java download. After installing, check it from a terminal:
java -version
You want to see the major version match what your server needs. If you're on a host, this is usually handled for you in the panel, which is one less thing to get wrong.
First start and the EULA
Put your server jar in its own empty folder. Don't drop it on your desktop or in Downloads, because the server creates a pile of files and folders around itself the first time it runs. Give it a clean home.
Run it once. On the first launch it'll generate some files and then stop almost immediately with a message about agreeing to the EULA. That's expected. Mojang requires you to accept the end user license agreement before the server will run.
Open the file called eula.txt and change the line so it reads:
eula=true
Save it, then start the server again. This time it'll build the world and open up properly. If you ever see the server quit straight away with no obvious error, this is the first thing to check.
The server.properties settings to change first
After that first proper start, you'll have a file called server.properties. This is the main config and it's plain text, so any editor works. You don't need to touch most of it, but a few lines are worth setting right away:
motd=Our little server
max-players=10
difficulty=normal
gamemode=survival
pvp=true
view-distance=10
white-list=true
online-mode=true
A few notes on these. The motd is the little description shown in the server list, so make it yours. Set max-players to match your RAM, not your ambition. view-distance at 10 is fine for a small group, and dropping it to 8 helps if things feel sluggish. Leave online-mode set to true so only people with real Minecraft accounts can join, which keeps random strangers out.
I turned on white-list in that example on purpose. We'll come back to why in a moment.
Port forwarding, and why home hosting needs it
If you're running at home, this is the part that catches everyone. Your server listens on port 25565 by default. On your own network, friends in the same house can connect using your computer's local address. But anyone outside your house can't reach it until you tell your router to send traffic on that port to the right machine. That's port forwarding.
The steps look roughly like this:
- Give the server computer a fixed local IP so it doesn't change.
- Log into your router's admin page (usually something like 192.168.0.1).
- Find the port forwarding section.
- Forward TCP port 25565 to that computer's local IP.
- Give friends your public IP address so they can connect.
It works, but be honest with yourself about the downsides. Forwarding a port exposes your home network a little more than before, so keep the server updated and don't run weird unknown plugins. Your public IP can change unless you pay for a static one, which means handing out a new address now and then. And your home upload speed becomes the ceiling for how many people can play smoothly. A quick warning: never share your router login or post your IP in public Discord channels.
This is the single biggest reason people move to a host. A rented server comes with its own address and the port already handled, so there's nothing to forward and nothing about your home network to worry about.
Make yourself operator and use a whitelist
Once the server is up, you want admin powers. In the server console, type:
op YourMinecraftUsername
That makes you an operator, which lets you run commands, change the time, give items and manage other players in game. Only op people you actually trust. An operator can do almost anything.
Now the whitelist. Because you set white-list=true earlier, only approved players can join. Add each friend by name from the console:
whitelist add FriendUsername
whitelist reload
For a server meant for friends, I'd always run with a whitelist on. It's the simplest way to make sure that the only people connecting are the ones you invited. Without it, anyone who finds your address can wander in.
Take your first backup
Before you and your friends pour hours into a base, make a backup. Worlds get corrupted, lightning strikes the wrong creeper, someone runs a command they shouldn't. A backup turns a disaster into a minor annoyance.
The world lives in the world folder next to your server jar (plus world_nether and world_the_end if they exist). The safest way to copy it is to stop the server first so the files aren't mid write, then zip the whole folder:
stop
Then, once it's fully shut down, copy or zip the world folders somewhere safe like an external drive or cloud storage. On a host, this is usually a one click backup button in the panel, and you can often schedule it to happen automatically. Either way, get into the habit early. The first backup you actually need is the one you'll be glad you took.
Where to go from here
That's the whole loop. Pick a version, get the right Java, accept the EULA, set a few values in server.properties, sort out port forwarding if you're at home, op yourself, whitelist your friends, and back things up. Once it's running you can start adding plugins, tweaking the difficulty, or trying a small mod pack.
Start simple. Get four friends on a plain Paper server before you go building a giant modded world with twenty plugins. You'll learn what each setting does, and when something breaks you'll have a much better idea where to look. Have fun with it.



