105 lines
3.5 KiB
YAML
105 lines
3.5 KiB
YAML
# Java Edition Minecraft behind mc-router. Live since 2026-10-06 at mc.gbrown.org.
|
|
#
|
|
# mc-router owns the one public port (25565) and routes each player by the hostname
|
|
# they typed: Java clients send it in their first packet, so several servers can
|
|
# share one port and one IP. Bedrock clients do not send it, which is why the
|
|
# Bedrock server in ../Bedrock stays separate on its own UDP port.
|
|
#
|
|
# Start: docker compose up -d (from this directory)
|
|
#
|
|
# Each hostname needs a DNS-only (grey cloud) A record in Cloudflare pointing at the
|
|
# home IP. The proxied *.gbrown.org wildcard can't carry Minecraft traffic, and a
|
|
# specific record overrides it. UniFi forwards 25565/tcp to this host. Home
|
|
# Assistant's Cloudflare integration keeps these records on the current home IP;
|
|
# select each new record there too.
|
|
#
|
|
# Add a server:
|
|
# 1. mkdir servers/<name>, then copy the "gib" service below and point it there
|
|
# 2. add "<hostname>=<service>:25565" to MAPPING
|
|
# 3. add the DNS-only record for <hostname>
|
|
# Servers publish no ports of their own; only mc-router is reachable from outside.
|
|
|
|
services:
|
|
mc-router:
|
|
image: itzg/mc-router:latest
|
|
container_name: mc-router
|
|
environment:
|
|
# <hostname players type>=<service name>:<port inside the network>
|
|
MAPPING: |
|
|
mc.gbrown.org=gib:25565
|
|
ports: ["25565:25565"]
|
|
networks: [minecraft]
|
|
labels:
|
|
com.centurylinklabs.watchtower.enable: "true"
|
|
restart: unless-stopped
|
|
|
|
gib:
|
|
image: itzg/minecraft-server:latest
|
|
container_name: mc-gib
|
|
environment:
|
|
# 26.1.2 matches the newest OptiFine (SEUS shaders) on the desktop. The 1.20.4
|
|
# world is in backups/; upgrades rewrite the world and cannot be undone.
|
|
- VERSION=26.1.2
|
|
- DIFFICULTY=normal
|
|
- MAX_PLAYERS=30
|
|
# Paper since 2026-10-13. The last vanilla state is backups/gib-26.1.2-vanilla-*.
|
|
- TYPE=PAPER
|
|
# DonutSMP-style plugin set, pulled from Modrinth on each start. Every entry
|
|
# needs a 26.1.2 Paper build; check Modrinth before adding or bumping VERSION.
|
|
# Config lives in servers/gib/plugins/<Plugin>/. GrimAC only publishes alpha builds.
|
|
- MODRINTH_DOWNLOAD_DEPENDENCIES=required
|
|
- |
|
|
MODRINTH_PROJECTS=
|
|
luckperms
|
|
vaultunlocked
|
|
essentialsx
|
|
essentialsx-spawn
|
|
placeholderapi
|
|
playerpoints
|
|
zmenu
|
|
zauctionhouse
|
|
ultimateshop
|
|
smartspawner
|
|
wildrtp
|
|
ultimate-teams
|
|
asbounty
|
|
axafkzone
|
|
tab-was-taken
|
|
deluxemenus
|
|
coreprotect
|
|
worldedit
|
|
worldguard
|
|
grimac:alpha
|
|
chunky
|
|
- MEMORY=12G
|
|
- SIMULATION_DISTANCE=16
|
|
- VIEW_DISTANCE=16
|
|
- ALLOW_FLIGHT=true
|
|
- ENABLE_COMMAND_BLOCK=true
|
|
- ENABLE_WHITELIST=true
|
|
- UID=1000
|
|
- GID=1000
|
|
- EULA=true
|
|
- TZ=America/New_York
|
|
- ENABLE_ROLLING_LOGS=true
|
|
- LANG=en_US.UTF-8
|
|
- LANGUAGE=en_US:en
|
|
- LC_ALL=en_US.UTF-8
|
|
- SERVER_NAME=Gib's Minecraft Server
|
|
- SNOOPER_ENABLED=false
|
|
- WHITELIST_FILE=/data/whitelist.json
|
|
#- ENABLE_AUTOPAUSE=true
|
|
# Don't change MOTD it was really hard to make it look good.
|
|
- MOTD= \u00A7aGib's Minecraft Server\u00A7r \u00A74Welcome to HECK
|
|
labels:
|
|
com.centurylinklabs.watchtower.enable: "true"
|
|
volumes:
|
|
- ./servers/gib:/data
|
|
networks: [minecraft]
|
|
stdin_open: true
|
|
tty: true
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
minecraft: {}
|