Giter Club home page Giter Club logo

minecraft-bedrock-connect's Introduction

Minecraft Bedrock Connect

Gitlab Pipeline Status GitLab Issues GitLab License Static Badge Open in Gitpod

Docker Pulls Docker Image Version Docker Image Size latest by date

A simple Docker image that can provide the Minecraft Bedrock Connect service, based on the project Bedrock Connect

Supported tags and respective Dockerfile links

Tags

Tag(s) Description
latest, 2, 2.* latest stable - debian amd64/arm64
beta, -beta. Beta. New features preview or help to test. It could be unstable.
nightly* development build, very unstable

Quick reference

⭐ Features

  • Running Bedrock Connect as a Docker Container
  • Can be used with MySQL Database as backend
  • Configuration via ENV variables
  • Use of the custom_servers via json file possible

Environment Variables

The following arguments can be placed in the startup command to ajust settings:

Argument Description Default Value
BRC_VERSION The Bedrock Connect version is used when the container is started. For example, 1.15 for the Bedrock Connect version 1.15. It does not mean the Minecraft server version. latest
MYSQL_HOST MySQL Host localhost
MYSQL_DB MySQL Database Name bedrock-connect
MYSQL_USER MySQL Username root
MYSQL_PASS MySQL Password
SERVER_LIMIT How many servers a new player can have in their serverlist 100
NODB If true, use JSON files for data instead of MySQL false
KICK_INACTIVE If true, players will be kicked after 10 minutes of inactivity with the serverlist UI true
CUSTOM_SERVERS Sets the path to a custom server file, for specifying your servers in the list for all players. See custom servers.
USER_SERVERS If true, players can add and remove servers on the serverlist. If false, the options are hidden. true
FEATURED_SERVERS If true, the featured servers will be displayed in the serverlist. If false, the servers are hidden. true
WHITELIST Specify file containing list of whitelisted players. (Should be a text file with the player names specified on seperate lines)
FETCH_FEATURED_IPS If true, dynamically grab the featured server IPs from the domain names. If false, a file featured_server_ips.json will be generated, containing the hard-coded featured server IPs, and to allow changing them if needed. true
FETCH_IPS If true, dynamically grab the server IPs from domain names, of any server a user is attempting to join. false
LANGUAGE Specify a file containing language customizations. See guide for changing wording.
STORE_DISPLAY_NAMES If true, player displays names will be included in the stored player data. true
PACKET_LIMIT Number of datagram packets each address can send within one tick (10ms) 200
GLOBAL_PACKET_LIMIT Number of all datagrams that will be handled within one tick (10ms) before server starts dropping any incoming data. 100000

🔧 How to Install

The Docker image can be deployed quickly and easily via these two commands, or via Docker compose, see examples below.

💪🏻 Non-Docker

For an installation without Docker, please follow the instructions from Pugmatt

🐳 Docker

# Create a volume
docker volume create bedrock-connect

# Start the container
docker run -d --restart=always -p 19132:19132 -e NODB=true -v bedrock-connect:/data --name bedrock-connect strausmann/minecraft-bedrock-connect:2

Exposed Ports

  • UDP 19132 : the Bedrock server port. NOTE that you must append /udp when exposing the port, such as -p 19132:19132/udp

🐳 Deploying with Docker Compose

---
services:
  bedrockconnect: 
    image: strausmann/minecraft-bedrock-connect:2
    restart: always
    environment:
      NODB: "true"
      CUSTOM_SERVERS: "/config/serverlist.json"
      SERVER_LIMIT: 25
    ports:
      - 19132:19132/udp
    volumes:
      - bedrockconnect:/config

volumes:
  bedrockconnect:
    driver: local

🐳 Deploying with Docker Compose and MySQL Backend

---
services:
  bedrockconnect: 
    image: strausmann/minecraft-bedrock-connect:2
    restart: always
    environment:
      MYSQL_HOST: "db"
      MYSQL_USER: "bedrock"
      MYSQL_PASS: "bedrock"
      MYSQL_DB: "bedrock"
      CUSTOM_SERVERS: "/config/serverlist.json"
      SERVER_LIMIT: 25
    ports:
      - 19132:19132/udp
    depends_on:
      - db
    volumes:
      - bedrockconnect:/config

  db: 
    image: mariadb:10.6
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=rootpwbedrock
      - MYSQL_PASSWORD=bedrock
      - MYSQL_USER=bedrock
      - MYSQL_DATABASE=bedrock
      - TZ=Europe/Berlin
      - PGID=1000
      - PUID=1000
    ports:
      - 3306:3306
    volumes:
      - bedrockconnect_database:/var/lib/mysql

volumes:
  bedrockconnect:
    driver: local
  bedrockconnect_database:
    driver: local

Volumes

docker volume create bedrock-connect

License

View license information for the software contained in this image.

As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).

minecraft-bedrock-connect's People

Contributors

strausmann avatar semantic-release-bot avatar

Stargazers

Triassic avatar Aleksandar Damjanovic avatar  avatar Magnus avatar  avatar  avatar Gerard Braad avatar François Michaud avatar

Watchers

 avatar

minecraft-bedrock-connect's Issues

The packet_limit Docker environment variable is not passed to the https://github.com/strausmann/minecraft-bedrock-connect/blob/main/image/bedrock-entry.sh startup command.

The packet_limit Docker environment variable is not passed to the https://github.com/strausmann/minecraft-bedrock-connect/blob/main/image/bedrock-entry.sh startup command.

This causes the error:
[Pugmatt/BedrockConnect] [nioEventLoopGroup-2-1] WARN org.cloudburstmc.netty.handler.codec.raknet.server.RakServerRateLimiter - [/192.168.1.209] Blocked because packet limit has been reached null disconnected

I opened a problem to Pugmatt who kindly analysed it and found that it was caused by the environment variable PACKET_LIMIT not being passed by the startup script "bedrock-entry.sh".

Thank you

Extracting file to BedrockConnect-1.0-SNAPSHOT.jar for brc_version 1.30 fails

The folder structure for the brc_version 1.30 has changed and the BedrockConnect-1.0-SNAPSHOT.jar is no longer at the root of the archive. This causes the easy-add to fail to extract the file and causes a restart loop in the docker image. As you only need the jar file, it might be better to just get the jar file and not the archive to avoid issues with the folder in the archive.

https://github.com/Pugmatt/BedrockConnect/releases/download/{brc_version}/BedrockConnect-1.0-SNAPSHOT.jar

output from docker

2023-04-17 08:11:55 whitelist disabled
2023-04-17 08:11:55 custom_servers disabled
2023-04-17 08:11:55 Latest Bedrock Connect version is: 1.30
2023-04-17 08:11:55 Downloading now Bedrock Connect JAR
2023-04-17 08:11:55 2023/04/17 12:11:55 I! Retrieving https://github.com/Pugmatt/BedrockConnect/releases/download/1.30/BedrockConnect-setup.zip
2023-04-17 08:11:57 2023/04/17 12:11:57 E! unable to find requested file in archive

setting brc_version=1.29 and the container is able to start up.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.