Although this is completely unrelated, I thought it was important enough to document on my blog so I decided to do so.
Today, I had to install CentOS7 on a server. Since I'm taking Java and everything, I thought I'd get back into hosting servers for Minecraft, since development for them is done in Java and it's pretty much where I got all of my knowledge. I also learned a ton of Linux commands from doing this. However, it's been a year or so since I last had a server, so I decided now would be a good time to pick it back up.
I first installed CentOS Minimal to my server PC. I chose Minimal because I don't really need the GUI, only command line to run a few Java programs - Spigot, which is a high-performance re-coded Minecraft server, and BungeeCord, another Java program which creates a proxy, enabling a player to teleport in between multiple hosted servers on the same machine or different IPs. For the most part, it's used with Spigot.
I got CentOS Minimal from their website, then installed it to a flash drive with Lili USB Creator (since in Windows, it's overly complex to create drives).
I then installed it to the PC, and then I had to get Java 8. That I had to do via FTP, since I had no GUI. I used FileZilla. After going into the directory, I installed it by typing:
tar xzf jre-8u25-linux-x64.gz
I then had to install the server. I first made the directories:
mkdir Minecraft
cd Minecraft
mkdir Bungee
mkdir Server1
...
mkdir Server20
Although it's considered only 1 server, there are actually 20 servers, each running their own sets of plugins and game modes, etc., for the people that play on them. For this test server, I won't be running them all at once, however, once they go live, I usually go with a dedicated server with at least 64GB of RAM, and preferably an E3-1275 or better for CPU. Since there's so much activity going on, and so many players (avg. 350-500 per server * 20 servers if the server is known) a lot of resources are used up.
Anyways, in each directory, I then used FileZilla to put the server .jar file in each folder, and one-by-one ran each server. I then also went into the Bungee folder and ran that .jar file. Then, I used BungeeCord to tie all the servers together. Essentially what this means is, as soon as a player joins the game, they will be able to choose where they'd like to go without having to close their game and join a different server.
After this, I had to setup a web server. All good servers allow for a website for their players to communicate on forums, donate, vote for the server on server lists, etc. For my website, my personal preference was to use XenForo. When I bought it, it was a bit pricey ($140). But it's highly customizable with CSS, and it definitely does a good job of handling forums.
I used FileZilla to install XenForo. I also made a TeamSpeak installation (will come in handy later).
And that's about it! I now have a fully usable test server. All servers are run with screen so that they can be viewed and reloaded to test new code and plugin additions.
Excellent post! I do not consider it "completely unrelated" as you say, since it is my hope that you will use this technical blog as part of your "digital portfolio", highlighting your skills as part of your digital resume. I greatly enjoyed reading it, especially since you made very effective use of links. I learned a lot.
ReplyDeleteAs you consider your future career, you should think about what you enjoy doing the most. Do you find this kind of system administration fun to do? The running minecraft server as a reward at the end is certainly enticing, but do you find the challenge of getting things like this to work fun in their own right?