#Minecraft Server Admin
This is a framework/toolset to manage multiple Minecraft server instances. The purpose was to make management relatively painless and provide each server with customization. Everything is handled through a single script called minecraftctl. This command could be wrapped and exposed through a web interface for people to manage their own servers.
##Setup
By default, the script expects everything to reside in /srv/minecraft. This can be overridden by setting an environment variable named MCCTL_BASE_DIR.
- Install Java
- Install Screen
- Clone this repo in
/srv/minecraft(or what ever directory you want) - Download a Minecraft Server jar file into the
jarsfolder - Create a new server
- Start the new server
$ mkdir -p /srv/minecraft
$ cd /srv/minecraft
$ git clone git@github.com:lfkeitel/minecraft-server-admin.git .
$ ./bin/minecraftctl create ServerName
$ ./bin/minecraftctl start ServerName
##Usage
minecraftctl has the following commands:
minecraftctl create [servername]minecraftctl backup [servername] daily|hourlyminecraftctl start [servername]minecraftctl stop [servername]minecraftctl restart [servername]minecraftctl send [servername] "command to send to server"
##What's say-time.sh?
say-time.sh is a script that will send the current time to the given Minecraft server and print it in the chat. I find it helpful because I typically play in fullscreen and can't see the time on my computer. You can setup a cron job that will call say-time.sh [servername] at regular intervals. I have mine set to every half hour.
##TODO
- Add a
statuscommand that will show the status of a given server, or all servers. - Provide the ability to op, whitelist, and configure a server without manually editing the server files.
- Use a template for server.properties.
- Ask if the user wishes to accept the EULA.
- Add a
deletecommand. - Add a
downloadcommand to get a Minecraft server version. - Clean up the
backup_serverfunction. - Add an
initcommand to setup the directory structure.