🧱 Minecraft Bedrock Edition Server

This page documents the Minecraft Bedrock Edition server instance deployed and managed through Ansible.
The deployment is fully automated, version‑controlled, and reproducible using the bedrock_setup role.


📦 Overview

Component Description
Edition Minecraft Bedrock Edition Server
Deployment Method Ansible (bedrock_setup role)
Playbook playbooks/minecraft/deploy_bedrock.yml
Inventory inventory/minecraft/
Version Pin bedrock_setup_version: 1.21.132.3
Source Download Official Bedrock server download page
Version Discovery Automated via Playwright (check_bedrock_version.yml)

🧩 Architecture

The Bedrock server is deployed as a standalone Linux host managed through Ansible.
All configuration is stored in Git and applied idempotently.

Key Components


🔧 Deployment Workflow

1. Set the Bedrock Version

The server version is controlled by:

bedrock_setup_version: 1.21.132.3

This variable lives in the Minecraft inventory and determines which Bedrock server package is downloaded and installed.

2. Run the Deployment Playbook

To deploy or update the server:

ansible-playbook playbooks/minecraft/deploy_bedrock.yml

The role ensures:


🔍 Checking for New Bedrock Versions

The Bedrock server does not provide an API for version discovery.
To automate this, the homelab uses a Playwright‑based scraper.

Version Check Playbook

check_bedrock_version.yml

This playbook:

  1. Launches Playwright in headless mode
  2. Scrapes the official Bedrock server download page
  3. Extracts the latest available version
  4. Prints the version to stdout for easy consumption

Updating the Inventory Version

When a new version is detected:

  1. Update the inventory variable:

    bedrock_setup_version: <new_version>
    
  2. Re-run the deployment playbook:

    ansible-playbook playbooks/minecraft/deploy_bedrock.yml
    

This ensures the server is always running the latest official Bedrock release.


🌐 Official Download Source

The Bedrock server package is always retrieved from:

Minecraft Bedrock Server Download
https://www.minecraft.net/en-us/download/server/bedrock

The bedrock_setup role handles downloading and verifying the archive.


▶️ Service Management

The role installs a systemd service:

systemctl status bedrock
systemctl restart bedrock
systemctl enable bedrock

The service is restarted automatically when:


🌐 External Accessibility (Port Forwarding Requirement)

To make the Bedrock server reachable from outside the network, the router must forward the default Bedrock port from the WAN to the Bedrock host.

Port Forwarding Rule (ER605)

Create the following NAT rule on the router:

Setting Value
Type Port Forwarding
WAN Port 19132 (UDP)
LAN Host minecraft-1
LAN Host IP Bedrock server IP (DMZ VLAN)
LAN Port 19132 (UDP)
Description minecraft-bedrock-external

Firewall Requirements

Because the Bedrock server resides in the DMZ:

Verification

After applying the rule:

  1. Start the Bedrock server service.
  2. Use an external network (cellular hotspot, VPN, etc.) to test connectivity.
  3. Confirm that clients can join using your public IP or DNS hostname.