olomana/games/minecraft/README.md

72 lines
2.2 KiB
Markdown

# Minecraft
Self-host one or multiple servers.
## Setup
### Whitelist
#### Method 1: Docker
In the `itzg/minecraft-server` env vars in docker, add the following to enable and configure whitelist.
```
ENABLE_WHITELIST: "TRUE"
WHITELIST: "player1,player2,player3"
```
Note: The whitelist is additive, so if you set it to `[player1]` and later `[player2,player3]`, you'll end up with a whiltelist accepting all 3 players.
Edit the whitelist in `whitelist.json` in the server directory.
#### Method 2: Manual
After first time startup set `enforce-whitelist=true` in `server.properties`.
Then, create `whitelist.properties` in the server directory with the following contents:
```
[
{
"uuid": "player_uuid",
"name": "player_username"
}
]
```
#### Method 3: In Game
After first time start go into `server.properties` and set `enforce-whitelist=true`.
Add users via server commands (`whitelist add NAME`).
#### Plugins/Mods
### Plugins
SinglePlayerSleep: `https://www.spigotmc.org/resources/singleplayersleep.68139/`
Dynmap: `https://www.spigotmc.org/resources/dynmap%C2%AE.274/`
NoEndermanGrief: `https://www.spigotmc.org/resources/no-enderman-grief2.71236/`
ajLeaderboards: `https://www.spigotmc.org/threads/ajleaderboards.471179/`
#### Updating Plugins
It's very easy, just obtain the new jar file for the updated plugin, stop server and swap old jar in `plugins/`.
Most plugins should not need to regenerate their data, so you can leave it as is.
## Maintenance
### Backups
Take backups periodically, we got griefed once and only survived because of a backup.
Create Tar archive:
```
cd location_of_mc_files
tar -czvf ~/1970.01.01-world-backup.tar.gz world world_nether world_the_end server.properties whitelist.json spigot.yml
```
And move to a safe place.
### Periodic Restarts
You might want this because the JVM might start hitting memory limits if too much is going on.
You can configure scheduled restarts by configuring `crontab` to periodically restart the container.
Edit crontab: `sudo crontab -e`
Add: `0 2 * * * docker restart minecraft-2023 minecraft-creative`
## References
https://github.com/itzg/docker-minecraft-server
https://github.com/Joshi425/minecraft-exporter