Minecraft is a custom TCP protocol, not HTTP, so the no-port UX is solved with a DNS SRV record (_minecraft._tcp.mc.<domain> -> :25565) rather than an HTTP reverse proxy. Landing page now shows the bare address. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
22 lines
1.1 KiB
Cheetah
22 lines
1.1 KiB
Cheetah
# Resolve every *.${BASE_DOMAIN} (and the apex) to the Docker host LAN IP.
|
|
# Rendered by tooling/render-config.sh -> dnsmasq/dnsmasq.conf (gitignored).
|
|
address=/${BASE_DOMAIN}/${HOST_LAN_IP}
|
|
no-resolv
|
|
|
|
# Minecraft SRV record: guests connect to "mc.${BASE_DOMAIN}" with NO port —
|
|
# the SRV lookup points the client at port 25565. Target mc.${BASE_DOMAIN}
|
|
# resolves to HOST_LAN_IP via the wildcard above.
|
|
# Format: srv-host=_service._proto.name,target,port
|
|
srv-host=_minecraft._tcp.mc.${BASE_DOMAIN},mc.${BASE_DOMAIN},25565
|
|
|
|
# Full client air-gap (see plan/11-full-airgap-mirror.md): spoof the real
|
|
# upstream hosts -> our Caddy mirror. Auth hosts (session/textures/api.mojang)
|
|
# are NOT spoofed — drasl handles those via authlib-injector. Keep this list in
|
|
# sync with the proxy-capture step.
|
|
address=/meta.prismlauncher.org/${HOST_LAN_IP}
|
|
address=/piston-meta.mojang.com/${HOST_LAN_IP}
|
|
address=/piston-data.mojang.com/${HOST_LAN_IP}
|
|
address=/libraries.minecraft.net/${HOST_LAN_IP}
|
|
address=/maven.neoforged.net/${HOST_LAN_IP}
|
|
address=/resources.download.minecraft.net/${HOST_LAN_IP}
|