parent
d0084e9f44
commit
1ecb6e544b
57
website/blogs/severmaint.md
Normal file
57
website/blogs/severmaint.md
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
title = Minecraft server maintaince, and what I've learned over the years
|
||||||
|
time = 1722613908
|
||||||
|
========================
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
Minecraft servers are a piece of shit to maintain. There's so many aspects. Such as panels, docker verions, docker itself, pterodactyl, security, RCON, plugins, server versions.. etc. I'll be going over the most commonly found and realised things about minecraft servers in this document.
|
||||||
|
|
||||||
|
1. What does maintaining a minecraft server mean?
|
||||||
|
- It means quickly fixing issues, updating servers, knowing how to use the tools at your disposal.
|
||||||
|
|
||||||
|
## Server versions, distrobutions
|
||||||
|
MC servers have a lot of different distrbutions.
|
||||||
|
|
||||||
|
### Quick history
|
||||||
|
Spigot started on the 29th of June, 2012.[You can find more about the history of spigot here.](https://www.spigotmc.org/wiki/history-of-spigot/). Spigot and Paper are forks of Bukkit, and they were started for different reasons. Right now, the de-facto performance fork is Paper.
|
||||||
|
|
||||||
|
### Fabric?
|
||||||
|
Fabric is a mod loader. As with any mod loader, they should support both multiplayer & singleplayer. Fabric has a server-only version, with a medium-sized amount of server-sized mods. The thing is, that Paper cuts down on a large amount of vanilla glitches and ""features"", that either hurt performance or shouldn't be in the game in the first place. So that's why people prefer using Fabric.
|
||||||
|
|
||||||
|
### Paper forks
|
||||||
|
There are also paper forks, which are usually meant for a very opinionated featureset. For example, Leaves, a fork of fabric, adds configuration flags to remove paper's vanilla-intrusive features.
|
||||||
|
### How does spigot and paper work?
|
||||||
|
Spigot and paper first download the vanilla server, decompile and add patches to it. Then it's ran. Decompilation is the process of
|
||||||
|
## Pterodactyl
|
||||||
|
Pterodactyl panels are the most convenient way for people to host Minecraft servers on Linux systems. These are generally very feature filled, and allow for easy access to your servers, files, etc.
|
||||||
|
Pterodactyl uses Docker, and that's way too hard to explain in a single post here. People make their careers' based on Docker, it's a massive piece of software.
|
||||||
|
|
||||||
|
## Plugins
|
||||||
|
### Downloading plugins
|
||||||
|
Plugins are really easy to download. There's many websites where you can download them from.
|
||||||
|
- [Modrinth](https://modrinth.com/plugins)
|
||||||
|
- [devbukkitProjects](https://dev.bukkit.org/bukkit-plugins)
|
||||||
|
- [Spigot resources](https://www.spigotmasdc.org/resources/)
|
||||||
|
|
||||||
|
Updating them is also very easy. Go into plugins, remove the plugin, upload the new version, and run the server.
|
||||||
|
Make sure the server versions match up.
|
||||||
|
### Configuring plugins
|
||||||
|
Plugin configuration files are very different plugin to plugin. Some of them use [YAML](https://en.wikipedia.org/wiki/YAML), [JSON](https://en.wikipedia.org/wiki/JSON) or [INI files](https://en.wikipedia.org/wiki/INI_file). Generally, the page that you downloaded the plugin from WILL have a tutorial on how to configure the plugin, and use it. Sometimes they don't, then you have to go into generally `plugins/<plugin name>/`. That directory usually contains the configuration for the plugin.
|
||||||
|
|
||||||
|
## General maintiance
|
||||||
|
### Error log reading
|
||||||
|
This is one of the hardest things I've had to done. Plugins can die. If you misconfigure a plugin, you'll see a error relating to YAML, JSON or INI, or whatever your plugin is using. If you try to do something incorrectly, you'll get a error, etc. This is impossible to teach, you have to use plugins, figure out their errors through google and report or fix what you've done wrong.
|
||||||
|
### The JVM vs My Sanity
|
||||||
|
The JVM is this mysterious, horrible black box. Most minecraft servers use Java (and I god-oh-god hope this will change one day), and java uses the JVM. The JVM is a absolute black box. The biggest thing that I know, per aikar's flags you need about 2GB of ram left to the JVM. So, if you have 30 gigs of ram, 28gb goes to the server, and then those 2 gigs will be used up by the JVM. I don't even know what the JVM does. IIRC it manages memory and whatnot.
|
||||||
|
### Flags
|
||||||
|
Just don't bother. Use Aikar's flags or [the flags.sh generator](https://flags.sh). They work OK and are a million times easier to deal with.
|
||||||
|
## Community managment
|
||||||
|
Managing minecraft servers is a big pain. In short, you want to keep player retention very high. This means:
|
||||||
|
1. Constant flow of new players, if you don't have this, your server will fail.
|
||||||
|
2. Multiple staff members for incident managment such as hackers, etc.
|
||||||
|
3. Engaging events
|
||||||
|
## Server security
|
||||||
|
### CoreProtect
|
||||||
|
Coreprotect is a plugin that is basically vital to your server's security. It handles rollbacks, block breaking logs, everything. Very useful plugin.
|
||||||
|
[Their wiki](https://docs.coreprotect.net) has a lot of great information.
|
||||||
|
### Ports
|
||||||
|
Make sure your servers ports aren't exposed to the world! The most reliable setup is running your server behind a proxy such as Velocity (I reccomend, personally).
|
Loading…
Reference in a new issue