Special thanks go out to our Discord user @Roei for writing this great guide!
Thanks also to Freddy0 and the Crafty developers for contributing to the documentation and container/template!
Be sure to join our Discord to join the discussions, get support relating to our videos and guides and also say a big thanks to @Roei.https://gitlab.com/crafty-controller/crafty-webhttps://gitlab.com/crafty-controller/crafty-web
Please read our disclaimer https://docs.ibracorp.io/#disclaimer.
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).
Tornado web server used as a backend for the website.
Argon2 used for password hashing
SQLite DB is used for settings.
Adminlte used for web templating
Font Awesome 5 used for Buttons
Head to the CA Store in Unraid
Search for Crafty. You have two options - The Binhex’s Repository or freddy0’s Repository. In this example, let's use freddy0’s.
Set the Network Type to your custom Docker network
To do this, open the terminal in Unraid and type (Where 'somename' is anything you'd like to call it.) docker network create somename
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)
Apply and Submit
After installing the Container, go to the logs, you will see the Admin username and password for the WebUI.
Go to the WebUI, log in with the credentials given in the logs.
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”.
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.
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
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.
Open the container folder, you will find 3 more folders. We want minecraft_servers
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
)
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.
Vanilla Minecraft Server Jar - https://www.minecraft.net/en-us/download/server
Paper (Server-Side Mod Loader) - https://papermc.io/downloads
Forge (Client-Side Mod Loader) - https://files.minecraftforge.net/net/minecraftforge/forge/
After downloading the .jar file, move it inside our server’s folder.
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.
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
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.
Click Create New Server - you will jump back to the dashboard where you will see your server ready to be launched!
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)
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.
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.
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.
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!
We hope you enjoyed this guide. It was conceptualized, written, and implemented by our community member Roei and Community Leader Hawks.
Our work sometimes takes months to research and develop. If you want to help support us please consider:
Liking and Subscribing to our Youtube channel
Joining our Discord server
Becoming a paid member on our IBRACORP website
Donating via Paypal