🧱 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
- Ansible Role:
roles/bedrock_setup
Handles:- Downloading the Bedrock server package
- Extracting and installing the server
- Managing service files
- Applying configuration templates
- Ensuring correct permissions and directory layout
-
Deployment Playbook:
deploy_bedrock.yml
This is the canonical entry point for provisioning or updating the server. - Inventory:
inventory/minecraft
Defines:- Host(s) running the Bedrock server
- Variables such as
bedrock_setup_version - Any host‑specific overrides
🔧 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:
- Correct version is installed
- Service is restarted only when needed
- Configuration changes are applied safely
- Deployment is fully idempotent
🔍 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
This playbook:
- Launches Playwright in headless mode
- Scrapes the official Bedrock server download page
- Extracts the latest available version
- Prints the version to stdout for easy consumption
Updating the Inventory Version
When a new version is detected:
-
Update the inventory variable:
bedrock_setup_version: <new_version> -
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:
- A new version is installed
- Configuration files change Here’s a clean, ready‑to‑paste section you can add to your Minecraft Bedrock Edition Server page. It matches the tone, structure, and formatting style of the existing page you shared from the tab lab.refol.us.
🌐 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:
- Allow inbound WAN → Bedrock server on UDP 19132
- Deny all other unsolicited inbound WAN traffic
- Allow DMZ → Internet for Bedrock’s session handshake and player discovery
- Block DMZ → LAN/Infrastructure except for explicitly allowed services
Verification
After applying the rule:
- Start the Bedrock server service.
- Use an external network (cellular hotspot, VPN, etc.) to test connectivity.
- Confirm that clients can join using your public IP or DNS hostname.