DEV Community

Cover image for How to Create a Minecraft Server: Choosing a Host

How to Create a Minecraft Server: Choosing a Host

Sam Erickson
Hello, I am a computer science student at Vancouver Island University. I have a passion for teaching others about things that I am passionate about.
・2 min read

For this I chose Linode. Honestly I am a sucker for advertising and I have heard a million YouTubers mention Linode, and I was able to get a bill credit using one of their affiliate links.

I am also aware that there are cheaper alternates that require much less work than what I did, but I wanted to exercise my knowledge on servers and have as much control over it as possible.

Initial Setup

To start I selected the $10/Month plan which gives you:

  • 2 GB RAM
  • 1 CPU Core
  • 50 GB SSD
  • 2 TB Transfer
  • 40 Gbps Network In
  • 2000 Mbps network Out

This worked okay for the first little bit when there where just two people on my Minecraft server. You will also be using 100% of your CPU core 100% of the time. Linode will remind you of this with a weekly email.

I decided to upgrade to the next tier to improve performance. I know that Digital Ocean has a larger range of tiers to choose from (which are typically $5 /month cheaper than Linode), but I was already with Linode and changing seemed link a pain at the time. I may end up making the switch in the future.

Current Setup

My current package from Linode costs $20/Month + $2.5/Month for automatic backups. This gives me the following specifications:

  • 4 GB RAM
  • 2 CPU Cores
  • 80 GB SSD
  • 4TB Transfer
  • 40 Gbps Network In
  • 4000 Mbps Network Out

Setting Up The VPS

I started off with making sure the packages I wanted were installed with the following command:

sudo apt install default-jre vim ufw screen wget
Enter fullscreen mode Exit fullscreen mode
  • default-jre is the java runtime environment used to run our Minecraft server
  • vim is my editor of choice (you can also use nano, both of these editors are often installed by default)
  • ufw is an Uncomplicated Fire*W*all
  • screen is a terminal multiplexor that is required for running the Minecraft server
  • wget is used to download files from the internet

Creating the users

For security purposes we are going to create two users, one with sudo and one without.

Adding the privilaged user:

useradd -m <username> -G wheel -s /bin/bash
passwd <username>
Enter fullscreen mode Exit fullscreen mode

Adding the non-privilaged user

useradd -m minecraft -s /bin/bash
passwd minecraft
Enter fullscreen mode Exit fullscreen mode

Why create 2 users? I have not ready any other tutorials that use this method, but I like the idea of my servers files and processes being owned by a user that does not have root privileges. You don't need root privileges in order to run a Minecraft server, and therefore, I think you should not have it.

For more information you can read the Debian wiki post Why Sudo?

Discussion (0)