Skip to content

Guides

Minecraft Server Hosting is a Scam – How to Properly Host a Minecraft Server

An 8GB hosted server can cost up to $40 a month. I run mine on a secondhand office PC that cost less than three months of hosting. Here's exactly how I set it up.

An 8GB hosted server can cost up to $40 a month. I run mine on a secondhand office PC that cost less than three months of hosting. Here's exactly how I set it up.


Pick the PC

Minecraft servers lean heavily on one CPU core, so a fast older CPU beats a slow one with lots of cores. You don't need a graphics card.

The best value is ex-corporate small form factor PCs: Dell OptiPlex, Lenovo ThinkCentre or HP EliteDesk. They're cheap, quiet and built to run all day.

Part

Look for

Why

CPU

Intel 8th gen i5 or newer, or Ryzen equivalent

Single-core speed keeps the game smooth

RAM

8GB minimum, 16GB ideal

4–6GB for Minecraft, the rest for the OS and future services

Storage

Any SSD, 128GB+

Loading chunks off a hard drive is painfully slow

Network

Gigabit Ethernet

Always plug it in — no Wi-Fi

GPU

Not needed

The server renders nothing

Install Ubuntu Server

  1. Download Ubuntu Server LTS.

  2. Flash it to a USB with Rufus.

  3. Boot the PC from the USB (F12 on most Dells).

  4. Use the whole disk, and tick Install OpenSSH server.

After it reboots, log in and note the IP address:

CMD / Batch
ip a

Look for the 192.168.x.x address. Then set a DHCP reservation for this PC in your router so the IP never changes. You'll need that for port forwarding.

Connect over SSH

From your main computer, open Terminal (Mac/Linux) or PowerShell (Windows):

PowerShell
ssh yourname@192.168.x.x

Update everything:

PowerShell
sudo apt update && sudo apt upgrade -y

You can unplug the monitor and keyboard now. Everything from here happens over SSH.


Install Docker

Docker runs each app in its own container. No dependency mess, and if something breaks, you delete the container and start again.

PowerShell
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

Log out and back in, then test it:

PowerShell
docker run hello-world

Start the Minecraft server

I use the itzg/minecraft-server image. It's the most popular one and handles the setup for you.

PowerShell
mkdir minecraft && cd minecraft
nano docker-compose.yml

Paste this in:

PowerShell
services:
  mc:
    image: itzg/minecraft-server
    container_name: minecraft
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      TYPE: "PAPER"
      VERSION: "LATEST"
      MEMORY: "6G"
    volumes:
      - ./data:/data
    restart: unless-stopped
    tty: true
    stdin_open: true
  • EULA accepts Minecraft's licence.

  • PAPER is a performance-tuned server — noticeably smoother than vanilla on old hardware.

  • MEMORY is the RAM Minecraft gets. Leave 2GB for the system.

  • ./data stores your world, so it survives restarts and updates.

Start it and watch the logs:

PowerShell
docker compose up -d
docker logs -f minecraft

When you see Done, join from your gaming PC using the server's local IP. Press Ctrl+C to stop watching the logs — the server keeps running.


Let friends in

In your router, forward TCP port 25565 to the server's reserved IP. Then give friends your public IP (search "what is my IP").

Turn on the whitelist so only people you add can join:

PowerShell
docker exec -i minecraft rcon-cli whitelist on
docker exec -i minecraft rcon-cli whitelist add FriendName

What's next

Look at what you just did: installed Linux, managed it remotely, deployed an app with Docker and opened it to the internet. That's the foundation of a homelab.

The same compose file works for almost anything. Swap the image and you've got:

  • Jellyfin — your own Netflix for your media.

  • Immich — your own Google Photos.

  • Pi-hole — ad blocking for every device on your network.

All of them can run on this same box, right next to your Minecraft server. Tell me what you want to self-host next in the YouTube comments.

Minecraft Server Hosting is a Scam – How to Properly Host a Minecraft Server — kelvinbytes