Crafty Minecraft Server

Please read our disclaimer https://docs.ibracorp.io/#disclaimer.

What is Crafty?

Crafty is a Minecraft Server Wrapper / Controller / Launcher. The purpose of Crafty is to launch a Minecraft server in the background and present a web interface for the admin to use to interact with their server. Crafty is compatible with Windows (7, 8, 10) and Linux (via Python).

Features

Installation

Docker Container

  1. Head to the CA Store in Unraid

  2. Search for Crafty. You have two options - The Binhex’s Repository or freddy0’s Repository. In this example, let's use freddy0’s.

  3. Set the Network Type to your custom Docker network

    1. To do this, open the terminal in Unraid and type (Where 'somename' is anything you'd like to call it.) docker network create somename

  4. Check the port and appdata location meet your needs (note that by default, freddy0’s template is using a range of 100 ports between 25500-25600, this can be changed but I would leave this as it is because as long as you don’t port forward these ports in your router you should be safe)

  5. Apply and Submit

Configuration

  1. After installing the Container, go to the logs, you will see the Admin username and password for the WebUI.

  2. Go to the WebUI, log in with the credentials given in the logs.

  3. After logging in, you will be presented with a setup page. It really doesn't matter what you type because it’s going to throw an error anyways (Crafty does not create a folder automatically at the time of writing this) Click “Save and Finish”.

  4. You will receive a 404 page, close this window, relaunch the WebUI (no need to restart the container) enter the same credentials and log in.

  5. Now you should have successfully logged in to the admin panel. To change the admin password, click on “Change Password” on the left side panel.

Now we are almost ready, just a few more things to do before we can launch our first server

Creating a Server Folder

After installing the container, in the Unraid appdata folder we will find the docker folder (“freddy0-Crafty” by default).

There is currently a bug with spaces in any filenames, this is going to be addressed in the next release.

  1. Open the container folder, you will find 3 more folders. We want minecraft_servers

  2. Inside minecraft_servers, we will create a new folder named by our server name (for the sake of this tutorial, let's name the folder Test)

  3. Now, we need to download our .jar file. Depending on if you want a vanilla or modded server, you can download whatever .jar file you want. For this example, we will use a vanilla server.jar (option 1.). Here are a few options to try out.

    1. Paper (Server-Side Mod Loader) - https://papermc.io/downloads

  4. After downloading the .jar file, move it inside our server’s folder.

Create a Server - WebUI

Now that the folder is ready, we can head back to Crafty WebUI, click the + button next to “Create New Server”. The same form from the setup will appear, this time, we will enter the folder we just created. Fill out the same as below.

  1. The Server Path will be /minecraft_servers/your server’s folder The Server Jar MUST match the .jar file’s name you put inside the server folder.

To choose the JDK version Crafty uses, use these paths in the Crafty UI:

Java 8: /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java

Java 11: /usr/lib/jvm/java-1.11.0-openjdk-amd64/jre/bin/java

Java 16: /usr/lib/jvm/java-1.16.0-openjdk-amd64/jre/bin/java

  1. Memory size is up to you with how much your server can afford to allocate. Leave this as default and change it later if needed.

  2. Click Create New Server - you will jump back to the dashboard where you will see your server ready to be launched!

  3. Press the Run button to start the server.

You will be told to accept the EULA to continue.

Go back to your server’s folder. Crafty has automatically created the eula.txt file for us, open the file and change the false value to true. Save, close, and run the server again.

Now the server should start, you should see this in your logs:

If you reached this far and everything is working, we can go back to the dashboard to see and manage our new server:

  • Status: Pretty obviously means the current status for your server

  • Autostart: start this particular server when the docker runs

  • Server Type: Server’s version, and if it's modded, which modloader it is using.

  • Server Description: that is a description for you if you are running multiple servers and want to keep note of which is which

  • Server IP: currently set to 127.0.0.1 (that means localhost)

  • Port: The first server will be set to 25565 by default (more on this later)

Server Settings

In the dashboard for each server, there is an edit button, which enables you to modify basic stuff like the server’s name, memory size, port, IP, and more.

For now, we are going to focus on the port and IP.

For the server IP, set it to 0.0.0.0. This should disable LAN connections but seems more stable, your mileage may vary.

NOTE

When exposing your server to outgoing connections, when using the default port, in the Minecraft server list you will only need to type in your public ipv4. If you decided to create 2 servers, the second server will be set by default to port 25566. In that, case you will need to type your public ipv4 + port (ex. 123.123.123.123:25566) Which can be avoided if you use Cloudflare, more on that later.

Exposing the server

To let your friends join your brand new Minecraft server, you first need to port forward through your router’s firewall.

The process of port-forwarding is different for every router manufacturer so we will not cover the process, however, there is plenty of information for most routers online and you can contact your ISP for support.

Although we did expose 100 ports in Unraid, I wouldn’t suggest you do the same in your router, just the ones you need.

PLEASE NOTE

It has been reported that you are unable to connect to the Minecraft server using your WAN IP/subdomain if your computer is on the same WAN address as the server. If you connect via a VPN you will be able to connect like normal. This won't be a problem for all of your friends connecting remotely. To keep latency times down we would suggest just connecting directly to it using the LAN address.

Setting yourself as a server operator

When logging in to your new server, you will be logging in as a normal user. But if you want, you can give yourself the powers of an operator with a simple command in Crafty.

In crafty, press the terminal button on the server you want to give op on Then in the command line, type “/op YOURINGAMENAME” and press enter.

After doing this, you should see this brief message pop in the chat.

Now you can run any command from within the server.

Linking subdomains to Cloudflare

If you have a domain and want your server to have a more professional look, you can link a subdomain to it so your users don’t have to type in your ip+port. This also protects you by not letting everyone know which port is open in your network.

Go into your Cloudflare dashboard and then to the DNS tab.

Add a new CNAME record, This can be the name of your Minecraft server. This record should point to your own IP (in this example, we will be using DuckDNS to track our public IP). Make sure you set the proxy status to DNS only or it will not work!

Now create another record, this time an SRV record, and fill out the form like so:

In this example “smc” just stands for Survival Minecraft, you can type whatever you want as long as it matches your subdomain.

For more than 1 server, just type the same info except for the subdomain and the port. The rest is the same!

After you saved that, you can type the subdomain in Minecraft, no need for ports!

Final Words

We hope you enjoyed this guide. It was conceptualized, written, and implemented by our community member Roei and Community Leader Hawks.

Support Us

Our work sometimes takes months to research and develop. If you want to help support us please consider:

Thank you for being part of our community!

Last updated