Installing MinecraftEdu on a Remote Hosted Server

MinecraftEdu-Logo-1erntkc

After comparing Minecraft and MinecraftEdu, we decided to go with MinecraftEdu. While we had our own criteria for making this decision, ironically it wasn’t because of one of the biggest selling points of MCE– that teachers could run it on their own machines and set up a local server on the fly without IT involvement. While that applies for many teachers experimenting with Minecraft on their own, I was ready to support one of our teachers with a dedicated server for a couple of classroom projects. Over the last couple of years, though, we’ve been consciously moving most of our server infrastructure to external/hosted solutions. We didn’t want to create a local server which was counter to that strategy. Also, our teacher felt strongly (and we agreed) that her project would be best served with students having access from home. With that in mind, we decided to host MinecraftEdu on a new server through Blackmesh, our existing provider. Here’s how we installed and configured our server for the first time in a remotely-hosted environment.

Many h/t to MCE’s Remote Server Tutorial and the Minecraft Teachers Google Group.

Procurement

Blackmesh has excellent service and support, and they were happy to talk us through what server options were available. There are hosting companies which provide Minecraft-specific services, notably AllGamer.net, but we wanted to keep all of our hosting under one roof. Blackmesh set up a VPS (virtual production server) for us with dedicated IP. To be able to execute the MinecraftEdu server tool commands that were necessary, you have to be able to have SSH access. While not enabled by default, Blackmesh provided it for us on this server.

Once the server was ready for production, the software had to uploaded. Upon purchase of MinecraftEdu, you are given an installer file (.jar – Java executable) which contains both the Minecraft client and the server tool. If you want to launch a local server, this is all you need– launch the installer and server tool, and a MinecraftEdu server will run automatically on your local machine, visible to any other clients on your Local Area Network. We need to move this tool into the hosted environment for it to be accessible externally.

Building the Server

Counter-intuitively, we have to launch the server locally first in order to construct the map/world, then upload it to the hosted server. Launching the server tool for the first time asks you to specify a teacher/administrator password and define some of your global settings. This is where you can customize what abilities students will have. After doing this, a folder called “/minecraftedu” will be created somewhere on your computer. Note– in Mac, it’s in your /Library/ folder, which is often invisible. Either turn on hidden file view to be able to see it in Finder, or navigate directly to /Users/username/Library/Application Support/minecraftedu using the Go To command.

Use an FTP program (for Mac, my favorite is Transmit) to connect to your host and upload the entire minecraftedu folder. Our server environment is now ready to load with our preconfigured settings. Using SSH, we executed:

cd minecraftedu/servertool/server

screen java -Xmx4096M -Xms4096M -jar minecraftedu_server.jar nogui

You can probably use this cut-and-paste if you want, but if you’re curious what this all means:

  • cd minecraftedu/servertool/server
    • Changes directory (cd) to the location of the server program.
  • screen
    • Screen is a utility in Linux which basically creates a separate session for a program to run in. Important for us, because otherwise when we log out or time out of our SSH session, the MinecraftEdu server process would stop running.
  • java […] -jar minecraftedu_server.jar
    • Since the entire program is a Java executable (.jar) file, we ask Linux to launch it (within our newly-created screen) by asking the java program to execute a -jar file called minecraftedu_server.jar.
  • -Xmx4096M -Xms4096
    • Here your commands may differ slightly. -Xmx and -Xms define the amount of memory which Java is allowed to use to run the program. Since this is a server tool that has to process an interactive game environment with lots of users, you want to maximize the amount available. Our server from Blackmesh has 4GB of memory (4GB=4096M), and I’m giving it all to MinecraftEdu since it’s the only thing running on this server.
  • nogui
    • “Nogui” means No Graphical User Interface– in essence, no point-and-click controls. A GUI takes a lot of precious server memory, and you don’t need to use the menus to control the settings on an infrequent basis. There are still ways to control the server from the command line using your SSH.

Once you’ve executed this, you’ll start getting a lot of text detailing the startup procedure of the server. The last line of the startup text should be something along the lines of: “Done! For help, type “help” or “?””

[screen is terminating]

If you try and load the screen command but immediately see the [screen is terminating] message, this likely means that there was a mistake in your command syntax. Check for two things: first, any typos. Particularly if you’ve never used Linux or command-line systems, they’re completely unforgiving for typos. Second, check if your directory and location of minecraftedu_server.jar is the same as what I’ve used. It doesn’t have to be, but make sure that whatever you use accurately points to the location of the file.

Drop the Firewall and Make the Service Automatic

Once the server is running, it’s ready to play, but will have to be opened to the outside world. Minecraft uses the default port of 25565, which will have to be opened on your server by the hosting company. I only know that because Blackmesh saw that I was tinkering with the server and asked if I wanted them to open it up. Otherwise, I would have totally missed this step.

Did I mention that Blackmesh has great service and we’ve been really happy with them?

Also, notice that we have started the service manually– if the server were to reboot for maintenance purposes, the service would not restart automatically. I sent a quick note to Blackmesh and asked them to create a script which would load the service on server boot so that any restart would automatically launch the MCE server as well. The catch is that I need to retain ownership of the service, because if I change server settings or load maps, I’ll need to be able to restart the service myself. Again, Blackmesh configured the server to match our needs.

Accessing the World

When students load up the client, they should use the “Multiplayer” mode to connect to the server. By default, it will scan for local games running. Click the “Direct Connect” button and enter the IP address. Once you know that the connection works and it’s up and running, you can use “Add server” to bookmark your connection.

One comment

  1. Jack says:

    Thank you for sharing this! I’m working on installing minecraft edu on a vps as well so what you’ve shared is truly valuable. I’ll give this a try. Much thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *