Skip to main content

This has been one of the most rewarding projects of my life. With some technical know-how, you can create a private server for your kids and their friends to play Minecraft.

This guide will walk you through how to create a Minecraft Server, for free, on Oracle Cloud Infrastructure. You will leave here with a safe space for your kids and their friends to play Minecraft for years to come.

And let’s be honest, you’ll have a great time playing too.


Learn, Teach, and Play Video Games!

This really is the gift that keeps on giving. Minecraft is a blank slate, ready for your creative spark. When you are done with this guide, you will be able to create worlds like you have seen featured by Mojang.

  • Create Quests for your kids to undertake.
  • Create an economy where you can buy, sell, and trade. (talk about supply and demand, scarcity, and level of effort)
  • Build castles with epic views with your kids.
  • Learn coding principles by introducing them to JSON so they can create epic command blocks and builds.
  • Discover new words like spelunking and get chased by Zombies and Skeletons 🧟

Choose Your Cloud Platform

The first step in building a Minecraft server is choosing a cloud provider that suits your skill level. If you are not interested in running your Linux box, a quick search will provide you with a list of great solutions you can pay for. I have not used any, but they are plenty with a quick Google Search.

However, if you want to 🧠 learn a thing or two, and dust off some 🖥️ Linux skills and know-how, then the rest of this article is for you.

I chose Oracle Cloud Infrastructure (OCI) for my environment. They have a very generous free tier with plenty of capacity, and I wanted to try something new. If you know AWS, the EC2 free tier may be enough, but not sure.

Install Ubuntu on OCI to Run Your Minecraft Server

Oracle is a relative newcomer in the Cloud Service Provider space. They are competing directly with AWS, Azure, and Google Cloud, and that’s good for you. They offer a perfect free tier of services that you can use to power a 20-person Minecraft server without breaking a sweat.

Here is a blog directly from Oracle that will walk you through getting your Minecraft server’s foundation up and running. https://blogs.oracle.com/developers/post/how-to-set-up-and-run-a-really-powerful-free-minecraft-server-in-the-cloud

In this article, you will complete the following:

  • Sign up for a free account. (I suggest you add a CC. There are a few Reddit posts about OCI closing accounts because of a small balance)
  • Choose an Image (OS) and Shape (Virtual Machine Hardware)
  • Log into your new Minecraft server.
  • Follow the directions to get your Vanilla JAVA Minecraft server online. 🏁

✅ You now have a new Minecraft server. However, we still have some steps to go to get to the fun part, adding plugins and customizing the experience.

Upgrade Download the PaperMC, Geyser, and Floodgate

You may wonder why you can’t connect yet from your iPhone, Android, or tablet. Currently, your server will only allow connections from your PC or Mac because the server is a pure JAVA server.

To allow for plugins and infinite customization, we will now switch over to running a Minecraft fork called PaperMC for our server. Read more about this project at https://papermc.io/

Install Paper PC

  1. Log into your server’s console.
  2. Go to the Minecraft directory that you created in the blog how-to guide.
  3. Grab the latest version of Paper MC
wget https://api.papermc.io/v2/projects/paper/versions/1.19.4/builds/538/downloads/paper-1.19.4-538.jar

Note: You will want to go to https://papermc.io/downloads/paper and copy the download link and replace the above with the latest build)

Install Geyser-Spigot proxy

This is the plugin that will allow Bedrock clients like iOS, Android and Consoles to connect to your server.

  1. If you don’t have a plugins directory, create it in your Minecraft directory (‘mkdir plugins’) and then open it (cd plugins)
  2. Grab the latest Geyser-Spigot proxy using wget. Use the download link with the latest build from here: https://ci.nukkitx.com/job/GeyserMC/job/Geyser/job/master/

Install Floodgate

This will allow us to connect from a Bedrock client without needing a Java Minecraft account.

  1. In your plugins directory, grab the latest floodgate-geyser from this repository. https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/

Let’s Go!

Almost there… before you start the server again, we have a few more things to take care of.

  1. Open the firewall ports on the server for 19132. Your iOS and Android clients will connect to this port
sudo firewall-cmd --permanent --zone=public --add-port=19132/tcp
sudo firewall-cmd --permanent --zone=public --add-port=19132/udp
sudo firewall-cmd --reload
  1. Add 19132 TCP & UDP to your OCI Security List. Take a look back at the blog from Oracle for a refresher if you need one.
  2. Head back to your Minecraft directory and start the JAVA server. It will look something like this. ‘java -Xmx1024M -Xms1024M -jar paper-1.19.4-511.jar nogui’
  3. Let’s Go!

Connect to Your New Minecraft Server

  1. Head over to your phone and try to connect.
  2. Create a new server by choosing ‘Add Server’ from the home screen. Add a name, your servers IP address, and use port 19132
  3. Connect!
  4. Head over to this guide if you would like to connect to Minecraft from your Switch

💬 Chat with me below if you get stuck…

Add Plugins for the Real Fun

Add plugins to your Minecraft server to enhance the gameplay experience. Required plugins could include ViaVersion, Floodgate, and Geyser-Spigot. ViaVersion allows backwards-compatible clients to connect to older servers, Floodgate allows users without paid Mojang accounts to play, and Geyser-Spigot allows iOS and Android bedrock clients to connect to the Java Minecraft server. Other plugins could include World Edit, World Guard, LuckPerms, Vault, Quests, and Dynmap.

Building a Minecraft server for your kids and their friends can be a fun and rewarding experience. By following these steps, you can create a safe and engaging environment for your kids to explore and play Minecraft together. So why not give it a try today?

World Edit

This allows players to quickly and easily edit the landscape of their worlds. It provides various tools for manipulating terrain, including copy and paste, fill and replace, and brush tools for sculpting and smoothing. Use this plugin to create custom landscapes and structures – https://dev.bukkit.org/projects/worldedit

World Guard

Protect areas of their world from being modified by players. It provides tools for creating and managing regions, including defining areas with specific shapes and sizes, setting permissions for players and groups, and creating custom flags for more advanced control over how regions behave. This plugin is useful for creating safe zones, PvP arenas, and other protected areas within a Minecraft world. – https://enginehub.org/worldguard

WorldGuard Extra Flags

Adds additional flags to the WorldGuard plugin, extending its functionality. These flags allow server administrators to customize the behavior of regions, such as setting custom messages for entry and exit, disabling certain commands within a region, and more. This plugin is useful for creating more specific and unique regions within a Minecraft world. – https://www.spigotmc.org/resources/worldguard-extra-flags.4823/

Vault

A permissions plugin, chat, and economy API that allows plugin developers to easily create plugins that can interact with many different permission plugins and economy systems. It provides a unified API for interacting with these systems, making it easier for developers to create plugins that require access to player permissions or economy data. – https://www.spigotmc.org/resources/vault.34315/

LuckPerms

A permissions plugin for Minecraft servers. It allows for fine-grained control over permissions, including assigning permissions to specific groups and users, setting up inheritance between groups, and defining specific permissions for certain contexts. This plugin is useful for managing server permissions and ensuring that players have access to the appropriate commands and features based on their role within the server. Use this plugin to give certain users access to Essentials commands like /sell so they can interact with the server economy – https://luckperms.net/download

Quests

Create and manage quests. These quests can range from simple tasks like collecting items or killing mobs, to more complex challenges that require players to solve puzzles or explore hidden areas. The plugin provides tools for defining quest objectives, tracking player progress, and rewarding players for completing quests. Use this plugin to add an extra layer of challenge and engagement to your Minecraft server. – https://www.spigotmc.org/resources/quests.3711

Dynmap

Provides an interactive map of your Minecraft world that players can view in a web browser. It updates in real-time as players explore and build within the world, and can be customized with different map styles and markers to highlight points of interest. Use this plugin to give players a better sense of the overall layout and geography of your Minecraft world, and to help them navigate and find their way around. – https://dev.bukkit.org/projects/dynmap

Dynmap Worldguard

Adds functionality to the Dynmap plugin by displaying regions created with the WorldGuard plugin on the Dynmap map. This allows players to see the boundaries of protected areas and to better understand the layout of the server. – https://dev.bukkit.org/projects/dynmap-worldguard

A Few Maintenance Steps For Your Minecraft Server

Add NewRelic Monitoring for Free

NewRelic is an excellent tool for performance monitoring and watching logs. Datadog is also popular. However, the FREE tier NewRelic is perfect. Tools like this will help you monitor your server’s performance, set alerts, and ensure it’s performing well.

Create MORE Minecraft Instances on the Same Server 🙂

In my case, I created three different Minecraft servers to provide different game modes. For example, you must adjust each server configuration, changing the ports you connect to. Comment below if you want to learn more about how to do this.

  • Creative mode server for them to create and show off wild builds.
  • A survival server with cheats enabled (water breathing and keep inventory)
  • Finally, a survival mode server, a complete default vanilla server.

Set Up Backup Scripts

It’s critical to have backups of your Minecraft server if anything goes wrong. Here is a great script that automates the whole thing for you. Some configuration is required.

A few more notes on backups…

  1. Create a cron to run automatically.
  2. Here is a slick rsycn script to move the backup to another machine. I cron this on my laptop, and done! Move this anywhere. An AWS S3 bucket would be a perfect solution.
  3. Your backup is only as good as the last time you tested it. Because I am moving them to my laptop, it’s very easy to quickly uncompress, run the JAVA MC server, and connect to from my laptop. I suggest doing this as often as you feel necessary, but at least once every 3 months.

This has been such a rewarding and fun project. My kids are now taking 100 days of Python with me on replit.com and adjusting the economy.

My son and his friends create a new crazy quest to make almost daily and we have about 15 kids playing on the server.


This article was written in part by AI 😉

Using ChatGPT, Whisper, and Notion, I dictated my notes to a voice recording, transcribed them automatically and then parsed the transcription into 5 general topics. ChatGPT then summarized each section with 15 word bullet points and published the draft to Notion.

Leave a Reply