• Stars
    star
    199
  • Rank 194,951 (Top 4 %)
  • Language
    Shell
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Build a Minecraft Server using a Raspberry Pi 4! Supports common Servers, SCP, RCON and Wifi Connect.

Balena Server Logo

Minecraft Server

Starter project enabling you a Minecraft Server using just a Raspberry Pi 4 or Jetson Nano.

This project has been tested on a Raspberry Pi 4 B 4GB & Nvidia Jetson Nano. I do not recommend using a Raspberry Pi 3 or older. They do not have enough RAM and power to calculate all the things. 💥

Why balenaMinecraftServer?

  • It works out of the box, just start it, and it just works. 👍
  • You can play anywhere. You can take the Pi to a friend, connect to his Wi-Fi and enjoy playing. 🎮
  • It is free. No costs, no big server and no complication. 🆓
  • Why host on a computer? A Pi is power efficient! 🚀
  • You can easy maintain the files on the Pi by using your PC. 💻

Hardware required

  • Raspberry Pi 4B (We recommend the 4GB or the 8GB model. 1GB is not enough!) or Nvidia Jetson Nano
  • A fan or cooling system to prevent lag caused by throttling
  • A 16GB or greater micro SD Card (We always recommend SanDisk Extreme Pro SD cards)
  • Power supply

Software required

Setup and use 🌠

To run this project is as simple as deploying it to a balenaCloud application; no additional configuration is required.

Setup the device 💿

  • Sign up for or login to the balenaCloud dashboard
  • Create an application, selecting the correct device type for your Raspberry Pi
  • Add a device to the application, enabling you to download the OS
  • Flash the downloaded OS to your SD card with balenaEtcher
  • Power up the board and check it's online in the dashboard

One Click Deployment

You can deploy this server with one click with the button below. Or, you can follow the manual deployment instructions in the next section.

Manually Deploy this application ✈️

  • Install the balena CLI tools
  • Login with balena login
  • Download this project and from the project directory run balena push <appName> where <appName> is the name you gave your balenaCloud application in the first step.

Connect to the server 📡

Balena Minecraft Server sets automatically your Server hostname to balenaminecraftserver.local. It is the address the from your server. You can connect to it like this:

Note: The IP address also works.

Server-IP

Now you have a balenaServer 😎:

NOTE: This works only in the connected Wifi. If you want to play worldwide click here: https://github.com/AlexProgrammerDE/balena-server/blob/master/README.md#play-worldwide-optional-earth_americas

Minecraft Screenshot

Connect to the terminal 📡

The server has no console input option in the cloud dashboard, so you need RCON. The port is 25575 and the password is balena. It is a protocol for connecting to the server. There are many clients, but you can pick one here:

Connect to the file-directory 📡

You can connect to the server and change your serverfiles. I recommend using a tool like WinSCP or if you are using OSX or a linux distribution you can use Filezilla. The IP Address to connect to is “balenaminecraftserver” (without the quotes), the protocol to choose is SCP (If you got the choice), the port number is 22, the username is “root” (again, without the quotes) and the password is “balena” (no quotes). The files are in the folder named “serverfiles” at the root directory, you can double click to open that directory and browse the files in there.

NOTE: You can also change your SCP password by setting the SCP_PASSWORD Environment Variable within balenaCloud. On the left, simply click on “Device Variables” and then click the “Add Variable” button. Give it a name of SCP_PASSWORD, and set the value to your password.

Connect to another Wifi 📡

balenaMinecraftServer has wifi-connect integrated. You can use it for taking the Pi everywhere. If you want to read more is here the link to the programm: https://github.com/balena-io/wifi-connect (There is explained how it works.)

Change hostname

You can change the hostname by defining the DEVICE_HOSTNAME Environment Variable within balenaCloud.

NOTE: If you decide to change the hostname, you will have to use your new hostname within Minecraft to connect to the server, instead of balenaminecraftserver.local.

Custom RAM (optional) 🔗

Devices like the Raspberry Pi 4B 4GB or the 8GB model have enough RAM to run the server with more RAM (the default value used by balena Minecraft server is 1GB). If you set RAM to a value like 2G, 4G, or 6G it will have the specified amount of RAM available.

Add plugins (optional) 🔧

balenaMinecraftServer also supports plugins. Just drop the in the plugins folder using SCP. The current Minecraft version is 1.16. You can get your plugins from there(Other work too.):

NOTE: Before adding the plugin and getting an error look if the plugin supports 1.16.

Play worldwide (optional) 🌎

Once you’ve perfected the setup of your server on your local network, you might be interested in unveiling your server to the rest of the world! Here’s how you can enable remote access and allow players to connect via the Internet.

NO-IP Picture

If you’d like to allow friends outside your local network to join your server, you’ll need to set up dynamic DNS (DDNS) to expose your Pi to the outside world. This example uses a service called No-IP, which has a free tier for people who want to try DDNS out, though other options and methods do exist as well. In the case of this example, you will need to:

  • Create an account with No-IP by visiting their website.
  • After creating the account and logging in, create a Hostname (example: balena.serverminecraft.net) by following their documentation.
  • Set up Port Forwarding: You will need to route your Minecraft traffic to port 25565 on your Pi. To do this, you will log in to your home router and setup Port Forwarding. This step varies by particular brand of modem or router, but the No-IP documentation does a good job of describing the process here. You may need to follow instructions specific to your modem or router if the No-IP documentation does not contain your particular type.
  • Optional: You can log in to No-IP with your router to keep the IP Address current in case it changes. That allows the router to connect automatically to No-IP. Here is a guide by No-IP on how to accomplish this.
  • Paste your public / external internet address in the box labeled IP Address into the No-IP dashboard. You're done. 👍

For a deeper look at setting up remote access, please reference this guide (Note: You can skip the DUC part).

Custom Server (optional) 👓

If you want to customize your server even further, but don't know where to start, take a look at some server software listed here:

Note: Balena Minecraft Server uses Paper. It is an efficient and powerful server. It is compatible with spigot and bukkit plugins.

If you want to use a different Minecraft Sever .jar, add a variable called JAR_FILE. The value should be the same as your custom .jar file that you placed in the serverfiles directory using SCP.

I encourage you to take your server build even further! There are many tutorials out there on server customization-- this article only touches on a few ideas. If you need help, please reach out by submitting an issue on GitHub.

This project is in active development so if you have any feature requests or issues please submit them here on GitHub. PRs are welcome, too. :octocat:

Here is a little server demo 👑:

Server Demo

More Repositories

1

SoulFire

Advanced Minecraft Server-Stresser Tool. Launch bot attacks on your servers to measure performance.
Java
241
star
2

PistonQueue

Best queue plugin out there!
Java
57
star
3

PistonMOTD

Control your Minecraft servers MOTD. Supports RGB colors and multiple platforms.
Java
40
star
4

PistonBot

My own minecraft bot with cool features.
TypeScript
18
star
5

PistonChat

An advanced chat plugin for survival/anarchy servers.
Java
17
star
6

PistonClient

My own minecraft client!
Java
8
star
7

chat-uwuify

UwUifies your minecraft chat.
Kotlin
7
star
8

6b6t-website-old

The previous 6b6t.org website!
TypeScript
6
star
9

PistonRestart

A 2b2t like server restarting plugin.
Java
6
star
10

socialtale

Manage all your social media accounts with one dashboard!
TypeScript
5
star
11

Pimusic

A easy and comfortable way to use Bluetooth, Airplay and Spotify Connect.
Shell
5
star
12

PistonMute

Mute addon for PistonChat.
Java
4
star
13

PistonFilter

Chat filter addon for PistonChat.
Java
4
star
14

PistonPost-frontend

Open source platform inspired by Reddit.
TypeScript
3
star
15

ExploitsX

ExploitsX is a top-of-the-line constantly updated exploit fixer focused on patching bugs, lag glitches, and crash glitches for minecraft servers. It supports versions 1.8 through 1.17.
Java
3
star
16

ServerPinger

A awesome discord Bot for pinging a minecraft server and displaying some stuff in discord.
TypeScript
3
star
17

balena-minecraft-bungeecord

Build a Bungeecord Proxy using a Raspberry Pi! Supports Waterfall and SCP
Shell
3
star
18

SoulFirePluginExample

Example of how to make a plugin for ServerWrecker.
Java
3
star
19

PistonEntityFixer

Lists and kills entities as you wish.
Java
2
star
20

PlayerVanishPlus

Another good vanish plugin for spigot.
Java
2
star
21

EggWarsReloaded

The best free EggWars plugin.
Java
2
star
22

AlexProgrammerDE.github.io

This is my self hosted personal web page.
CSS
2
star
23

PistonChunkLimiter

Limits amount of blocks like shulkers and chests in a chunk.
Java
2
star
24

KeyboardVisualizer-Installer

The inofficial Installer for the KeyboardVisualizer project here: https://github.com/CalcProgrammer1/KeyboardVisualizer
Shell
2
star
25

PistonUtils

Plugin utils. Adds things like an pro update parser and console colors!
Java
2
star
26

personal-page

My own custom personal website!
TypeScript
2
star
27

PistonVideo-frontend

My own attempt at creating a video upload website like youtube.
TypeScript
2
star
28

balena-github-actions

Get your own balena ci running using github actions.
2
star
29

balena-apache

Create your own apache web server using just a Raspberry Pi!
Shell
1
star
30

AlexProgrammerDE

OMG I got this stuff now too!
1
star
31

HalloweenEssentials

A halloween plugin for 10b10t.org.
Java
1
star
32

PistonNC

Easily control your name color ingame
Java
1
star
33

RCON-Script

Batchfile
1
star
34

PistonVideo-backend

My own attempt at creating a video upload website like youtube.
Java
1
star
35

PistonChatBridge

A plugin for syncing the chat with discord.
Java
1
star
36

Minecraft-Server

This is a Minecraft Server installer. It supports multiple servers.
Shell
1
star
37

PistonInvite

Java
1
star
38

ServerWrecker-new-ui

Java
1
star
39

TokenCommand

Generates a token and puts it into a mysql database.
Java
1
star
40

WebGameStats

Display your ingame stats in the web.
Java
1
star
41

HeadAPI

Get a players head, Example plugin included. (Requires paper)
Java
1
star
42

BungeeSudo

Force players to run commands on their connected server. Works across the whole network.
Java
1
star
43

ServerRestart

Simple server restarting plugin for modern server setups
Java
1
star
44

soulfiremc.com

SoulFire website and documentation.
MDX
1
star
45

PistonPost-backend

Open source platform inspired by Reddit.
Java
1
star
46

balena-2bored2wait

You hate the 2b2t queue? Use a Raspberry Pi and this software to stay in queue even if you are playing somewhere else. Based on 2bored2wait.
Shell
1
star