added minecraft server role

This commit is contained in:
2026-09-16 13:19:26 -06:00
parent d6fb95cbb0
commit ba1d2e80ae
3 changed files with 55 additions and 0 deletions

View File

@@ -19,4 +19,5 @@
- gitea - gitea
- jellyfin - jellyfin
- wazuh - wazuh
- minecraft

View File

@@ -0,0 +1,35 @@
---
# Paper Minecraft server with Geyser (Bedrock<->Java bridge) + Floodgate (Bedrock auth without Java account).
# Java players: mc.boxswapper.io:25565 (TCP); Bedrock players: mc.boxswapper.io:19132 (UDP) - Geyser translates, Floodgate authenticates.
# External prerequisites (NOT managed by this repo):
# - Cloudflare A record mc.boxswapper.io -> public IP (grey-cloud, like vpn.boxswapper.io)
# - Router port forwards: TCP 25565 + UDP 19132 -> 10.10.0.45
- name: Deploy Minecraft Server
containers.podman.podman_container:
image: docker.io/itzg/minecraft-server:latest
name: minecraft
env:
EULA: "TRUE"
TYPE: PAPER
VERSION: "{{ minecraft_version }}"
MEMORY: "{{ minecraft_memory }}"
MOTD: "{{ minecraft_motd }}"
DIFFICULTY: "{{ minecraft_difficulty }}"
GAMEMODE: "{{ minecraft_gamemode }}"
MAX_PLAYERS: "{{ minecraft_max_players }}"
VIEW_DISTANCE: "{{ minecraft_view_distance }}"
ONLINE_MODE: "{{ minecraft_online_mode }}"
PLUGINS: "{{ minecraft_plugins | join(',') }}"
restart_policy: always
recreate: true
state: started
volumes:
- /opt/apps/minecraft/data:/data:z
- /usr/share/zoneinfo/America/Denver:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "25565:25565"
- "19132:19132/udp"
network:
- npm_internal
ip: '{{ minecraft_ip }}'

View File

@@ -15,6 +15,7 @@ directories:
- /opt/apps/wazuh/config/wazuh_cluster - /opt/apps/wazuh/config/wazuh_cluster
- /opt/apps/wazuh/config/wazuh_dashboard - /opt/apps/wazuh/config/wazuh_dashboard
- /opt/apps/wazuh/config/wazuh_indexer - /opt/apps/wazuh/config/wazuh_indexer
- /opt/apps/minecraft
## Jellyfin directories for media ## Jellyfin directories for media
@@ -31,6 +32,7 @@ images:
- docker.io/wazuh/wazuh-dashboard:{{ wazuh_version }} - docker.io/wazuh/wazuh-dashboard:{{ wazuh_version }}
- docker.io/wazuh/wazuh-indexer:{{ wazuh_version }} - docker.io/wazuh/wazuh-indexer:{{ wazuh_version }}
- docker.io/wazuh/wazuh-manager:{{ wazuh_version }} - docker.io/wazuh/wazuh-manager:{{ wazuh_version }}
- docker.io/itzg/minecraft-server:latest
wazuh_version: 4.14.1 wazuh_version: 4.14.1
@@ -65,3 +67,20 @@ wazuh_indexer_ip: 10.10.0.42
wazuh_agent_rpm: wazuh-agent-4.14.1-1.x86_64.rpm wazuh_agent_rpm: wazuh-agent-4.14.1-1.x86_64.rpm
wazuh_server_address: wazuh.boxswapper.io wazuh_server_address: wazuh.boxswapper.io
## Minecraft server (Java + Bedrock crossplay via Geyser/Floodgate)
## External DNS (not managed here): Cloudflare A record mc.boxswapper.io -> public IP (grey-cloud,
## same as vpn.boxswapper.io / wazuh.boxswapper.io). Router MUST forward TCP 25565 + UDP 19132 -> 10.10.0.45.
minecraft_host: mc.boxswapper.io
minecraft_ip: 10.10.0.45
minecraft_version: latest
minecraft_memory: 2G
minecraft_motd: "Internal Apps Minecraft - mc.boxswapper.io"
minecraft_difficulty: normal
minecraft_gamemode: survival
minecraft_max_players: 20
minecraft_view_distance: 10
minecraft_online_mode: "TRUE"
minecraft_plugins:
- https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot
- https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot