Gaming On Functionland’s FxBlox RK1 : Minecraft Server On Aarch64- Part 1

Fierro Labs
7 min readNov 14, 2023

--

Gameplay screenshot on M1 Mac

Gaming on ARM chipsets has traditionally been a difficult thing to do. In the last 3–4 years, performance of ARM-SoC’s have grown by leaps and bounds and software support for them has progressed as well. So let’s see if we can play one of the oldest and most popular games in the world, Minecraft.

Okay in this tutorial we won’t be using the actual device hardware to play the game and that is why this tutorial will NOT be device specific. These instructions will work on any SBC or ARM chip you have at home.

Setting up a minecraft server at home is equivalent to those companies that are wholly dedicated to setting up cloud minecraft servers. Your home hardware is just like that cloud server in the sense that you don’t actually use that hardware to render the graphics, blocks, and interactions. Cloud Minecraft servers have tighter security, support for lots of players, mob customizations, and other premium features you pay monthly/annually for.

The beauty of self hosting your minecraft server is you can set up all these features for free and learn a whole bunch of new skills along the way.

Preface

In this tutorial we will learn:

  • How to install and configure Minecraft server
  • How to play with friends outside the network
  • Delete the Minecraft server

Install Minecraft Server

You will be able to install the server on your device, and play using your client hardware. For example, I set up the server on the FxBlox by Functionland, but I play the actual game using my gaming rig hardware. Friends can connect to your server as well remotely if they are also using Java Minecraft.

TLDR; Minecraft Server on Docker (Java Edition) (docker-minecraft-server.readthedocs.io)

In this section we will use Docker Compose. Compose is basically a script that can be run to deploy a docker container. If you don’t have docker, there is a convenience script to install all that you need. Assuming you are running a flavor of linux, copy/paste this into your Terminal:

curl -fsSL https://get.docker.com | sudo sh

Enter your password to let that install and you’lll be good to go with the rest of the tutorial.

Now, head to the directory of your choice, this is necessary because the Docker Compose script will add data from Minecraft into that directory.

For example, I am using a FxBlox, if you want to find your installed drive path you can by using the command:

df -h

This command will work on any Linux OS device, its use is to identify total space and available space on a file system. You’ll know which one is yours from the capacity of the drive and the “Filesystem” should start with /dev/. As well as the fact that the type of drive installed will be shown. E.g. I installed an nvme drive and you can see nvme in the path. So I can add files to this drive by heading to the “/media/pi/nvme0n1p1” path. Take this into consideration when running on your machine.

Now:

  1. Change directory to preferred location:

cd /media/pi/nvme0n1p1/

2. Create a directory:

mkdir Minecraft

3. Enter that directory:

cd Minecraft

4. Create a file:

vim docker-compose.yml(must be named this specifically)

You can use any text editor you like nano or vi/vim, but if you don’t have any, you can install vim with sudo apt install vim

5. Press ‘i’, then copy/paste this into the file:

version: "3.8"
services:
mc:
image: itzg/minecraft-server
tty: true
restart: unless-stopped
stdin_open: true
ports:
- "25565:25565"
environment:
EULA: "TRUE"
volumes:
# attach the relative directory 'data' to the container's /data path
- ./data:/data

6. Exit by pressing “ESC”, then typing “:wq!” (as shown in gif below)

7. Run this script

docker compose up -d

8. Docker will download the image and start it up!

Congrats you now have a server on your local network running in Survival mode!

This server allows for many options including changing the Game Mode, PVP, Spawning mobs, and other administrative options. You can check out what is available to you on the Documentation page.

To connect to it on your local network, you can use any device that runs Java Minecraft and connect to the server at: <local-IP> (E.g. 192.168.69.69).

How To Play With Friends Outside the Network

Most modern routers have an option to enable and obtain a free DDNS. DDNS stands for Dynamic Domain Name System, in this context it will allow us to address our home network from anywhere in the world with a simple domain name. The domain name is partially customizable so if you want to share your Minecraft server with your friends, then you just have to share your domain name with them. Unfortunately, since all routers are different, I can’t guide you through your individual setup, but you can Google “Setup DDNS on <router-name> router”, that’ll get you on the right track.

I highly recommend reading this comprehensive article because I go into more detail on how to set up your device to accept outside connections:

After getting your domain name, you need to assign your server a static IP as well as enable port forwarding on your router. These are necessary because default home configurations will periodically change your server’s IP address, unless you assign it one directly. And your default router settings won’t know that you want to allow outside access to your minecraft server unless you open the Minecraft port. If any of these are not set, then your friends and yourself may have trouble finding your server in the future.

When assigning a static IP, just assign the server the IP address it currently has.

When setting up port forwarding, make sure to add these rules:

External port = 25565, Internal port = 25565, Protocol = TCP, Host IP = <ip-of-your-fxblox>.

After you have a domain name, DDNS, static IP, and port forwarding set up. Friends will be able to connect to your Minecraft server by entering:

<domain-name>.tld:25565

Delete The Minecraft Server

If at any point you decide that you don’t want to have the server anymore, all you have to do is delete the data folder under the Minecraft folder we created.

But before you can do that, you have to stop the server that is currently running:

docker compose down

And now you can delete the data folder:

rm -rf /media/pi/nvme0n1p1/Minecraft/data

This will delete the world you created and the next time you launch the server, it will be a new world with a different seed. To relaunch it, just use the same command as before:

docker compose up -d

If you want to completely get rid of the minecraft server and everything, you have to stop the container, delete the container, and finally delete the image.

  1. docker compose down
  2. docker rmi itzg/minecraft-server
  3. rm -rf Minecraft

And now you can be completely rid of the Minecraft server and its data.

Advisory

I’m only including an advisory for those that don’t know what they’re doing and haven’t considered the security risk with opening up ports to your home network. You may have heard of streamers getting swatted, the first step in that process is knowing someone’s public IP address. You may have heard that having open ports on the internet is bad, in standard home web server use cases, yes there is much more risk.

But we are running a Minecraft server in a Docker container. There is security built into the game, as well as Docker. So, you get extra layers of security by running it like this. Now if you open up extra ports on your router that aren’t necessary, then you could be creating a critical level problem. So, I recommend you look more into the security of self-hosting and be confident in your own abilities to pursue your hobbies.

Conclusion

In the next article we will find out how to run the Minecraft CLIENT on your FxBlox and how to optimize it for better frames.

In this article, you should have learned how to create your own Survival mode Minecraft world. As well as the fundamental IT tasks needed to get a server that your friends from afar can join.

Follow my YouTube channel for more web 3 content. Follow my Medium blog for more personal experience content and tutorials. Find me on X at @legendofmar. Checkout the Functionland Telegram for support and updates. Cheers!

--

--

Fierro Labs

Fierro Labs is a Web3 content and documentation creative studio. In this blog we talk about and make guides on IT and Web3 topics! Email: marco@fierrolabs.com