Back to blog

How I Built a Cheap, Secure Minecraft Server for My Kid (and Learned a Few Things Along the Way)

MISCELLANEOUS

7 minutes read
How I Built a Cheap, Secure Minecraft Server for My Kid (and Learned a Few Things Along the Way)

I’ve been playing Minecraft with my kid ever since he started prep school. With Minecraft for Education offered as an optional part of the curriculum, he grew into the game naturally — and he’s a sharer. I’ve spent countless weekends learning the ropes, roaming across the Overworld in search of raw materials.

As more of his friends got sucked into the magic of the game, our LAN-hosted worlds just didn’t cut it anymore. We needed something better: a proper Minecraft server that he and his buddies could connect to anytime.

I had no clue what running one actually involved. I’m a server guy, sure, but Minecraft? That was uncharted territory. So I did what any reasonable parent would do — I spent a few weeks deep-diving into forums, subreddits, and tech blogs.

Turns out there’s a right way to do this. Not the “rent a $5/month shared server and call it a day” kind of setup. I wanted something solid, secure, and ideally built from spare parts and eBay scraps.

The hardware

This is where the Fujitsu Futro comes in.

These things are ex-enterprise thin clients and sell for peanuts on eBay when companies rotate inventory. They’re small, low-power, silent, and reliable. Perfect for a project like this. I had some DDR3 SODIMM RAM from old laptops and a spare SSD lying around. RAM upgrade? Done.

A 32GB M2 drive is enough for the operating system
The server is ready
Extra RAM

The SSD install was another story. These units don’t come with drive cages or brackets, so I did what any hacker dad would do—velcro’d it to the inside of the lid. Crude? Yeah. Effective? Absolutely - I wasn’t aiming for beauty points here.

Hacking the SSD together with velcro strip

If it works, it ain’t stupid

The software stack

I installed Ubuntu Server and went with PaperMC for performance and plugin support. Crafty Controller handles the UI and lets me manage the server remotely without SSHing in every time I want to bounce it or update configs.

Crafty Controller Console

Crafty Controller - the heart of the server

For version and platform compatibility, I installed ViaVersion and Geyser. That means my kid can play with friends on Bedrock clients (mobile, console, etc.) even though the server runs Java. Additionally, ViaVersion helps the server handle several versions of the Minecraft client, which is nice as things don’t break every time the Java client gets an update. No complaints so far.

Security: because this is still the internet

Let’s be clear about one thing: if you’re exposing any server to the internet, especially one that a bunch of kids are going to connect to, you need to isolate it. I put the Minecraft box on a dedicated VLAN that has no access to my main LAN. If it ever gets popped, they’re stuck in a sandbox with nothing useful.

I also keep the OS updated with unattended-upgrades, limit SSH access by disabling password login and using keys, and I don’t run anything else on that machine. It’s a single-purpose setup. The firewall only exposes the exact ports I need (no SSH to the outside world, I cannot stress this enough):

  • TCP 25565 for Java

  • UDP 19132 for Bedrock

And that’s it. Everything else is locked down.

Network rack setup

Fujitsu Futro servers in the rack

Two Fujitsu Futro servers are better than none.

The Minecraft server sits alongside another Futro unit that runs HomeAssistant (two for the price of one, including free international shipping) and an HP MicroServer in my rack, segmented through VLANs and running off a managed switch. Overkill? Maybe. But I sleep better at night knowing the attack surface is minimal.

Port Forwarding and external access

I forwarded ports on the edge router to the Futro’s internal IP. I use a dynamic DNS service since I’m on a residential IP. That address stays private, but it works fine for my kid and their friends.

Make sure to only forward what you need. No need to open up your whole damn house for a few creepers.

Whitelist or bust

One thing I made sure to configure from the start: player whitelisting. Only the usernames I explicitly approve get in. This prevents randoms from joining and messing the world up. In PaperMC, this is as easy as:

whitelist on
whitelist add <username>

Crafty lets you do this from the UI too, but I prefer the command line when I’m already SSH’d in.

Final thoughts

I didn’t expect to enjoy this project, but I did. It scratched the sysadmin itch, cost next to nothing, and my kid - and his colleagues - now thinks I’m some kind of wizard. More importantly, it’s secure, it works, and it taught both of us something.

If you’re in the same boat and want to build instead of buy, this is a solid blueprint. Just don’t forget the velcro.

  • Machine: Fujitsu Futro with 8GB RAM, SSD strapped with velcro
  • OS: Ubuntu Server
  • Server flavor: PaperMC
  • Management: Crafty Controller
  • Cross-play: ViaVersion + Geyser
  • Security: VLAN isolation, port forwarding for 25565 (and 19132 if needed), dynamic DNS, SSH key auth only
  • Access control: Whitelist enabled

Minecraft server glossary (for parents and other normal people)

If you’ve landed on this article because you need to build a similar setup but you’re still confused after reading through it, check out the mini-glossary below to get up to speed with terminology:

Minecraft Java vs. Bedrock

Two versions of the game. Java is the original, used mostly on PCs. Bedrock is the version for consoles, mobile, and Windows 10/11. They’re not directly compatible, which is why things like Geyser exist.

PaperMC

A high-performance Minecraft server software compatible with the Java version. Faster, more stable, and supports plugins. Think of it as the “tuned” version of a regular Minecraft server.

Plugins

Add-ons that give the server more features. Think custom rules, better performance, admin tools, or mini-games. Only work with server flavors like PaperMC.

Crafty Controller

A web-based interface to manage one or more Minecraft servers. Lets you start, stop, monitor, and configure servers without touching a command line.

ViaVersion

A plugin that lets clients running different Minecraft versions connect to the same server. Useful when updates roll out and clients don’t all upgrade at the same time.

Geyser

A bridge between Bedrock and Java editions. It lets players using consoles or phones connect to a Java server. Without it, Java and Bedrock players are stuck in separate universes.

Whitelist

A list of approved players. Only usernames on this list can connect to the server. Everyone else gets the door slammed in their face.

Overworld

The main Minecraft world. It’s where most of the game happens: trees, sheep, mountains, and mining.

LAN-hosted game

Short for “Local Area Network” game. Only works when players are connected to the same home Wi-Fi or Ethernet. Good for couch play, bad for remote friends.

Port forwarding

A router configuration that lets people from the outside world access a service (like Minecraft) running on a device inside your home network. Do this wrong and you could open up more than intended.

VLAN

Virtual LAN. A way to isolate devices on your network so they can’t talk to each other directly. Security best practice when you expose something to the internet.

Dynamic DNS (DDNS)

If your home IP address changes, this gives you a fixed domain name that always points to your current address. Makes it easier to connect from outside.

Photo by Connor Gan on Unsplash