This page has been visited an unknown number of times.
Page last generated:
2025/06/15 10:07:00.
This post was written 2025-05-14 23:00:00 -0700 by Robert Whitney and has been viewed an unknown number of times since unknown time. This post was last viewed an unknown length of time ago.
Welcome to the first part of my Minecraft Admin Guide series! In this guide, I will cover the essential steps to set up your Minecraft server, including backup strategies and security measures. Whether you're a seasoned admin or just starting out, this guide will help you ensure your server runs smoothly and securely.
In my own setup I use docker-compose to manage my Minecraft server and all of it's dependencies so I will be using that as the basis for this guide. I highly recommend using docker-compose for your server setup as it makes managing your server and all of it's dependencies much easier as well as makes it easier to migrate your server to a new host if you ever need to do so.
I have included a sample of my docker-compose.yml file below to give you an idea of how to setup a basic network behind a velocity proxy. This is not a complete guide to setting up a velocity proxy, but it should give you a good starting point. I will be covering velocity in more detail in a future post.
undefined
In this example just save and modify the relevent sections of the docker-compose.yml file to your own server setup.
Save this file in a directory on your server as docker-compose.yml
and then run the command docker-compose up -d
to start the server.
This will start the server in detached mode, meaning that it will run in the background and you can close your terminal without stopping the server.
You can also use the command docker-compose logs -f
to view the logs of the server in real time.
This will show you the logs of all of the containers in the docker-compose file, so you can see if there are any errors or if the server is starting up correctly.
You can use the command docker-compose attach
to attach to the server console and interact with the server directly.
Backups are crucial for any server, especially for a Minecraft server where player data and world progress can be lost in an instant. There are several strategies you can use to back up your server and I will be covering the basics here. If you are interested in a more complex backup strategy involving s3 storage and object lifecycle management then read my second guide about how to backup your Minecraft server to remote storage using S3.
The most basic backup strategy is to simply copy the world folder and server files to a different location on your server or to an external drive. This can be done manually or with a script that runs on a schedule. I recommend using a script that runs on a schedule so that you don't have to remember to do it yourself. I have provided, below, a simple bash script that will use rdiff to create a backup of your world folder and server files while also keeping a history of the last 7 days worth of backups.
undefined
Another option that you can use on top of this, as an extra layer, is CoreProtect.
CoreProtect is a block logging plugin that allows you to roll back changes made to your world.
This can be useful if you have a griefer on your server (or if you accidentally break something).
CoreProtect will log all changes made to your world and allow you to roll back those changes to a specific time, or changes made by a specific player.
What I really mean to say is that CoreProtect can be a real life saver in a pinch and I highly recommend using it!
I have a fork of CoreProtect called CoreProtectX that adds some extra features and adds slight variation to the commands. CoreProtectX provides precompiled jar files that you can download to your plugins directory without any extra hassle!
Now that we have backups covered, let's talk about security. Security is a crucial aspect of running any server, and Minecraft is no exception.
There are several steps you can take to secure your server and protect it from attacks.
The first step is to make sure that your server is running the latest version of Minecraft and all of your plugins are up to date.
If you are using a proxy such as Velocity then the next step is to make sure that your minecraft server is not publicly accessible, as it is required to be in offline mode to work with velocity.
This means that you should not be exposing your server to the internet directly, but instead using a proxy to handle the connections.
This is important because if your server is in offline mode and publicly accessible, then anyone can connect to your server and potentially cause problems. That brings me to the next point which is to make sure that if your server is publicly accessible, then you should be sure that the server configuration is set to online-mode so that only authenticated players may join the server.
For a detailed overview of plugins that you can setup to enhance the security of your server then check out my post: "Essential Security Plugins for Any Public Minecraft Server".
If you are not running a server for the public community then you should be sure to set the server to whitelist mode so that only players that you have added to the whitelist may join the server.
This is important because it prevents anyone from joining your server without your permission.
If this is a private server for you, to play with friends, then this guide should suit your needs perfectly as it is designed for private servers.
If you are running a public community server, or minecraft network, then you should be sure to setup a proper proxy, like Velocity, and make sure to follow my future guides on how to secure your server and network with more advanced whitelist and security measures.
I will cover some advanced security measures such as using DNSBL lookups and other methods to reduce the risk of attacks on your server in a future post.
Now that I have covered the basics of setting up a server, basic backup strategy, and essential security measures I will dive deeper into advanced backup strategies and further security measures to protect the confidentiality and integrity of your backups and server data. Keep posted on my blog for the next update regarding backup strategies in depth which will include how to use S3 storage with policies, and object lifecycle management to automate your backups and keep your server data in tact.
xnite, real name Robert Whitney, is a self-taught computer programmer with a passion for technology. His primary focus is on secure, reliable, and efficient software development that scales to meet the needs of the modern web. Robert has been writing since 2010 and has had contributions published in magazines such as 2600: The Hacker Quarterly. His background in technology & information security allows him to bring a unique perspective to his writing. Robert's work has also been cited in scientific reports, such as "Future Casting Influence Capability in Online Social Networks: Fake Accounts and the Evolution of the Shadow Economy" by Matthew Duncan, DRDC Toronto Research Centre.
For Minecraft related inquiries feel free to reach out to the community on the Break Blocks Club discord server, for everything else please email me at admin@xnite.me
You can also find me on the various social media platforms listed on my website, but I do not check them often.
Repository | Author | Release Version | Release Date | Links |
---|