Raspberry Pi Minecraft Bedrock Server

In this tutorial, we will be showing you how to set up your very own Raspberry Pi Minecraft Bedrock server. This project is a cheap way of providing you with an always-on, Bedrock capable server.

Raspberry Pi Minecraft PE Server

This setup stops you from having to leave your phone or computer online if you want others to be always able to access your world. The Pi is also pretty good on power usage so you can save on your power bill too.

For this tutorial, we will be making use of the Nukkit software. We decided to utilize Nukkit since we found that it was one of the most stable Minecraft Bedrock servers currently available that will run on a Raspberry Pi. While still not feature complete, it is still fairly actively developed.

Please note there are some serious drawbacks when comparing this against the Vanilla bedrock server. However, it sadly isn’t currently possible to run the vanilla server on a Raspberry Pi.

If you’re after a server for the Java version of Minecraft, then you should check out our previous tutorial that shows you how to set up a spigot Minecraft server.

If you would like to know more about the server software, then you can find out more about it on the Nukkit website.

Equipment List

The following pieces of equipment are what I recommend for completing this Raspberry Pi Minecraft Bedrock server.

Optional

We last tested this tutorial on a Raspberry Pi 5 that was running the latest version of Raspberry Pi OS Bookworm.

Setting up your Raspberry Pi Minecraft Bedrock Server

In this tutorial, we will work entirely within the terminal. In fact, it is best to change the boot mode of the Raspberry Pi, so it boots directly into the terminal for the Minecraft Bedrock server.

You can also install Raspberry Pi OS Lite, so you don’t install any of the additional packages that come with the full version of Raspberry Pi OS; make sure you install Java, as we will need that.

Minecraft servers are hugely demanding on the Raspberry Pi’s hardware, so every extra bit of resources made available to it, the more it can handle. It’s important to keep this in mind before installing any additional software packages that may drag the performance down.

Preparing your Raspberry Pi

1. Before setting up the Minecraft Bedrock server on our Raspberry Pi, there are a few things we need to prepare. Let’s start by updating our Raspberry Pi’s existing packages to their latest versions using the following two commands.

The first command updates the package list cache, and the second uses this updated cache to upgrade any out-of-date packages.

sudo apt update
sudo apt upgrade -yCopy

2. With your Raspberry Pi updated, we only need to ensure that the two packages are installed for us to be able to install and run the server.

Use the command below to install the wget tool as well as the default JDK package. The JDK package is the most important of the two as it is what will install the Java runtime on to our Raspberry Pi.

The Nukkit server, which we rely on to set up a Minecraft Bedrock Server on our Raspberry Pi, is written in Java and requires this runtime to function properly.

sudo apt install wget default-jdkCopy

Installing the Minecraft Bedrock Server on the Raspberry Pi using Nukkit

3. Now that we have all the packages, we need to set up the Minecraft Bedrock Server, let us move on to creating a place to store it on our Raspberry Pi.

Create a directory within your current user’s home called “nukkit” by using the mkdir command.

mkdir ~/nukkitCopy

4. Once the directory has been created, change to it by using the cd command.

cd ~/nukkit

5. At this point, we can now download the latest version of Nukkit to our Raspberry Pi by using the following command in the terminal.

PetteriM1 develops the build of Nukkit we are using. This includes some additional improvements not available in the main Nukkit branch, and also features an easy-to-obtain build that we can rely on.

wget -O nukkit.jar https://github.com/PetteriM1/NukkitPetteriM1Edition/releases/latest/download/Launcher.jarCopy

Initial Run of Nukkit

6. With Nukkit now downloaded to our Raspberry Pi, we can run it, which will generate all the necessary files to further configure the server.

Running Nukkit is incredibly easy, we can run it with the following simple command.

java -jar nukkit.jarCopy

7. Upon running the server for the first time, you will be asked to choose a language, for this tutorial we will be using English. Therefore, we typed eng into the console and pressed enter.

select language

8. The server should immediately begin booting up, and when it is ready to be connected, it should display the following text.

[INFO] Preparing level "world"
[INFO] Starting GS4 status listener
[INFO] Setting query port to 19132
[INFO] Query is running on 0.0.0.0:19132
[INFO] Default game type: Survival Mode
[INFO] Done (3.109s)! For help, type "help" or "?"

9. While you can now begin to play on your server, you might want first to configure it, so it is set up more to your liking. To do this, first, stop the process by pressing CTRL + C.

Configuring your Minecraft Bedrock Server on the Raspberry Pi.

10. The Minecraft Bedrock Server we are using on our Raspberry Pi actually generates two different configuration files.

a. The first configuration file controls how the Nukkit software operates. With this, you can control aspects such as the seed used for generating a world, the number of chunks to be sent, and similar settings.

Most users will probably not need to edit Nukkit’s configuration file, but if you want to take a look, you can begin editing by running the following command in the terminal.

nano ~/nukkit/nukkit.ymlCopy

b. The other configuration file that Nukkit generates when it first starts is the one that controls the Minecraft Bedrock server game settings. With this you can control various options such as whether PVP should be enabled, what game mode to use and more.

You can edit the Minecraft server properties by using the command below in the terminal.

nano server.propertiesCopy

11. Once you have finished making your changes to the configuration files, make sure you save them by pressing CTRL + X then pressing Y and then ENTER.

12. Afterwards, you can immediately proceed to start up Nukkit again by typing in the following command:

However, if you plan on running a Minecraft Bedrock Server on your Raspberry Pi for the long run, we recommend skipping down to our section on getting the server to start at boot.

java -jar nukkit.jarCopy

Start the Bedrock Server at Boot

13. To enable our Bedrock server to start at startup, we will need to create a service for it.

Let’s begin writing this service by running the command below.

sudo nano /lib/systemd/system/minecraftbedrockserver.serviceCopy

14. Within this file, add the following text. This text defines the service and tells the service manager what file to run.

Ensure that you replace “<USERNAME>” with your username. For example, if your username is “pi” you would replace the text with that.

[Unit]
Description=Minecraft Bedrock Server

[Service]
User=<USERNAME>
Group=<USERNAME>
Restart=on-abort
WorkingDirectory=/home/<USERNAME>/nukkit
ExecStart=/usr/bin/java -jar /home/<USERNAME>/nukkit/nukkit.jar

[Install]
WantedBy=multi-user.targetCopy

Once you have entered in all the data, you can save the file by pressing CTRL + X then Y followed by ENTER.

15. Now that we have created our new service, we need to enable it by running the following command.

sudo systemctl enable minecraftbedrockserver.serviceCopy

16. Let’s go ahead and start up our Pi’s Minecraft Bedrock server with the command below.

This command instructs the service manager to start our newly created service.

sudo systemctl start minecraftbedrockserver.serviceCopy

17. To check the status of the Bedrock server service, use the command below.

sudo systemctl status minecraftbedrockserver.serviceCopy

18. If you ever have the need to stop your Bedrock server, all you need to do is run the following command.

sudo systemctl stop minecraftbedrockserver.serviceCopy

19. Finally, to stop the server from being automatically started when your Raspberry Pi turns on, you will want to disable the service.

sudo systemctl disable minecraftbedrockserver.serviceCopy

Connecting to your Minecraft Bedrock Server

If you’re on a local network, connecting to the Raspberry Pi Minecraft Bedrock server will be easy. To test out our recently set-up server, we will need to do the following.

20. If you don’t already know the IP address of your Raspberry Pi, one of the easiest ways to get it is by using the “hostname” command within the terminal.

The first IP address returned by this command will be the local IP assigned to your Pi.

hostname -ICopy

21. Now load up Minecraft on a Mobile Phone, a Windows PC, or console that is located on the same local network as the Raspberry Pi.

minecraft pocket edition main menu

22. Go to the friend’s tab and then your server should pop up at the bottom under LAN Games. If it doesn’t simply go to direct connect and enter the IP we got earlier on the Pi using the hostname commandhostname -I“.

We have highlighted the direct connect button in our screenshot below.

Raspberry Pi Minecraft PE Server Connect Buttons

23. If you want to allow access to the Minecraft Bedrock server via the internet, then you will need to set up port forwarding or use a service like Tailscale or Pangolin.

You will need to port forward the port 19132 (Unless you change it in the server properties) to the local IP address of your Raspberry Pi. Keep in mind that opening ports always increases the security risk from outside sources.

For more information, check out our port forwarding guide for the Raspberry Pi.

Updating your Minecraft Bedrock Server

1. The Nukkit server we rely on is updated relatively often to maintain support for the latest versions of Minecraft Bedrock. Luckily, the update process is relatively straightforward.

You can verify whether a new release is available by checking the Nukkit GitHub releases page.

To update your Raspberry Pi powered Minecraft Bedrock Server, you will first have to make sure you are in the correct directory by running the following change directory command.

cd ~/nukkitCopy

2. Now, before we can update the server, we must temporarily stop it. If you have used the service that we wrote earlier in the guide, you will be able to stop the server by running the following command in the terminal.

sudo systemctl stop minecraftbedrockserver.serviceCopy

3. Within this directory, we simply need to redownload the latest available Nukkit binary from their GitHub.

Run the following command to download the latest build of Nukkit to your Raspberry Pi.

wget -O nukkit.jar https://github.com/PetteriM1/NukkitPetteriM1Edition/releases/latest/download/Launcher.jarCopy

4. Once the download is finished, you should now have the latest available version of the Nukkit server.

You can then start your server again by running the following command.

sudo systemctl start minecraftbedrockserver.serviceCopy

Conclusion

Hopefully, by now, you should have a fully operational Raspberry Pi Minecraft Bedrock Server.

While we aren’t able to use the official release of the server on our Pi, the Nukkit software at least gives us a decent solution.

If you come across any issues or have some feedback related to this tutorial, then please don’t hesitate to leave a comment below.

If you liked this tutorial, be sure to check out our many other Raspberry Pi projects.

Need faster help? Premium members get priority responses to their comments.

Upgrade for Priority Support

Leave a Reply

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

70 Comments

  1. Avatar for Dave
    Dave on

    Hi, I just set this up as a service.
    Which is working great.

    However I am no longer in the minecraft console so can’t type in commands on the server which I was able to do before I made it a service.

    1. Avatar for Gus
      Gus on
      Editor

      As a service, it runs in the background. To be able to bring the console back, you will need to stop the service and run the server manually.

  2. Avatar for Cameron
    Cameron on

    Does this work with 7 people?
    I am running Raspbian Buster on a pi 3b+.
    thanks!

    1. Avatar for Gus
      Gus on
      Editor

      It worked fine with two people, but I think once you get beyond three to five people online at the same time, it will really start to struggle.

  3. Avatar for DrMedShadow
    DrMedShadow on

    How to get this to auto-start on reboot? Could you give me a tutorial or something else?

    1. Avatar for Gus
      Gus on
      Editor

      The tutorial has now been updated with instructions on setting up auto-start.

  4. Avatar for zatalian
    zatalian on

    How can i connect this nukkit server to node-red or an mqtt server? Is this possible?

  5. Avatar for Tim
    Tim on

    Do you know how to change the seed of the world as it is not working for me.

    1. Avatar for Gus
      Gus on
      Editor

      You should be able to change it in properties file.

      ~/nukkit/server.properties

      Alternatively, you can set it in the nukkit.yml under the worlds section.

      ~/nukkit/nukkit.yml
  6. Avatar for Ulum
    Ulum on

    Thanks for the tutorial.
    I got java not found error while trying to run the jar, solved it by installing openjdk.

    sudo apt-get install openjdk-8-jre-headless -y

    it works fine.
    I don’t have any knowledge about java, so I don’t know if this makes any difference in performance

    1. Avatar for Gus
      Gus on
      Editor

      Thanks for this Ulum, we have updated the tutorial to now install JDK. It appears it was removed as a pre-installed package.

  7. Avatar for Evan
    Evan on

    what do i put for the internal and external port in my router? I just put 19132 for both and i put the ip of my pi but when my friend try to connect it says it cant connect. what do i do?

    1. Avatar for Gus
      Gus on
      Editor

      Hi Evan,

      Technically port 19132 should be correct and allow traffic to flow to your Raspberry Pi.

      Sometimes I find the port forwarding on routers to be a hit and miss. Sometimes, a restart will fix the problem.

      Do you have the model # of your router? as this can help work out issues.

      Thanks,
      Gus

  8. Avatar for Alex M
    Alex M on

    I’m trying to get this to work with the cross platform edition, it’s not showing up under friends on minecraft. Is there any advice you have on what to do differently for the bedrock edition or will this not work with the bedrock edition?

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi Alex,

      This project should definitely work with the bedrock edition, but it will not support all the features of it. I personally do not know why it wouldnt by appearing.

      I am assuming you are connecting within the same local network?

      Cheers,
      Emmet

  9. Avatar for jhan
    jhan on

    is there a way to set this server up so you can play even when you are not connected to the same wifi network?

  10. Avatar for GoldAurora
    GoldAurora on

    Thanks for this tutorial! Please add to your tutorial how to update the nukkit installation. This process worked great for me for a month but now I am getting errors about being outdated.

    I overwrote nukkit.jar using the original command wget -O nukkit.jar https://go.pimylifeup.com/3xsPQA/nukkit and it appears to be working OK but that was just a guess.

    1. Avatar for Emmet
      Emmet on
      Editor

      Hi GoldAurora,

      Just re-running the comamnd as you are doing is the best way to update your Minecraft PE Edition server installation.

      We have added a section to the tutorial to reflect this.

      Cheers,
      Emmet

  11. Avatar for Karlos
    Karlos on

    Good article. The only thing I did different was to install it as a service. That way it starts on boot and restarts if crashes etc.

    Create a service file.

    sudo nano /lib/systemd/system/minecraft-server.service

    Add this:
    [Unit]
    Description=Minecraft Server

    [Service]
    WorkingDirectory=/opt/nukkit
    ExecStart=/usr/bin/java -jar nukkit.jar

    [Install]
    WantedBy=multi-user.target

    Assuming you files are in opt like mine.

    Then run
    sudo systemctl daemon-reload
    sudo systemctl enable minecraft-server

    Now you should be able to start the server with:

    sudo service minecraft-server start

  12. Avatar for Bradley
    Bradley on

    How to get this to start on reboot?

    1. Avatar for Sasha
      Sasha on

      Run sudo nano /etc/rc.locals and paste the server start command from root (/) and on end of command type & sign. Past it before exit 0 command!

  13. Avatar for Alex
    Alex on

    Hi,
    Has anyone got this working with the new 1.2.2 version of minecraft, it seems to be a big update.

    1. Avatar for Alex
      Alex on

      Hi,
      Once I worked out exactly where the forums were pointing me for the files, this seems to work! I have build 81 running and I have connected from 1.2.3 on iPad. Just need the kids to try and break it now…

  14. Avatar for Rick
    Rick on

    Hmm, mine seems to be stuck on debugging. I tried disabling debug mode (going into the nukkit.yml and changing debug to 1) but it doesn’t work. Don’t know what else to try.

  15. Avatar for Virgil
    Virgil on

    After:
    sudo java -jar nukkit.jar

    I get an error:
    ERROR: Invalid or corrupt jarfile nukkit.jar

    How do you fix this issue stuck on this step.

    1. Avatar for Gus
      Gus on
      Editor

      Have you tried redownloading the file ?

    2. Avatar for Matthew
      Matthew on

      You probably made the O in -O -o

    3. Avatar for Joe
      Joe on

      You need to CD to Nukkit/archive/target then try again

  16. Avatar for Simon
    Simon on

    Fantastic guide – I did have one problem which was that I used Raspbian Jessie Lite not realising this does not come with Java, and when I tried to run the server with command line “sudo java -jar nukkit.jar” I received an error that ‘java’ was an unknown command.

    To install java I just used the command:

    sudo apt-get update
    sudo apt-get install oracle-java8-jdk

    Worked great and the server seems to run OK without the need for overclocking so far.

    Thanks again for a great guide

  17. Avatar for Chad Lawson
    Chad Lawson on

    Can this support API type calls? I’d like to have actions in the game trigger GPIO and vice versa.

    1. Avatar for broo0ose
      broo0ose on

      If you install the Pokkit plugin for Nukkit, it can then use plugins for the Spigot and Bukkit servers. The upshot of this is that you can run the RaspberryJuice plugin which gives you the python API.

    2. Avatar for Chad Lawson
      Chad Lawson on

      Excellent. Thank you for replying.

  18. Avatar for Shawn
    Shawn on

    I need help!!! How do I access it via internet without port forwarding?

    1. Avatar for Gus
      Gus on
      Editor

      You won’t be able to access it without port forwarding.

  19. Avatar for Aniruddh kammar
    Aniruddh kammar on

    Excellent guide!! Thanks to the maker, I got my mcpe server running within an hour

    Problems I faced and troubleshooting them

    The version on the server and mcpe version need to be same. My were different so it kept displaying “syncing packets to server” or something like that

    Be careful the are many build for a same version eg: mcpe 1.1.0.x
    I found the correct build by hit and trial. I tried all the builds of the version and one worked at last. make sure that you reboot the server after trying each build as sometimes it gets stuck.

  20. Avatar for Tom
    Tom on

    the first time i connected my client, I was able to build. After i diconnected, and reconnected, i can no longer build in minecraft. What do I need to change

    1. Avatar for Aniruddh kammar
      Aniruddh kammar on

      You must have fiddled with the .yaml file maybe try re-installing the server
      You can remove the nukkit directory and install it again