feat(dnsmasq): SRV record so clients connect to mc.<domain> without a port
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>
This commit is contained in:
@@ -3,6 +3,12 @@
|
|||||||
address=/${BASE_DOMAIN}/${HOST_LAN_IP}
|
address=/${BASE_DOMAIN}/${HOST_LAN_IP}
|
||||||
no-resolv
|
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
|
# 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)
|
# upstream hosts -> our Caddy mirror. Auth hosts (session/textures/api.mojang)
|
||||||
# are NOT spoofed — drasl handles those via authlib-injector. Keep this list in
|
# are NOT spoofed — drasl handles those via authlib-injector. Keep this list in
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ export const site = {
|
|||||||
tagline: "LAN-party Minecraft server",
|
tagline: "LAN-party Minecraft server",
|
||||||
baseDomain: BASE_DOMAIN,
|
baseDomain: BASE_DOMAIN,
|
||||||
|
|
||||||
// Connect target shown to guests.
|
// Connect target shown to guests. No port needed — a dnsmasq SRV record
|
||||||
serverAddress: `mc.${BASE_DOMAIN}:25565`,
|
// (_minecraft._tcp.mc.<domain>) points clients at 25565.
|
||||||
|
serverAddress: `mc.${BASE_DOMAIN}`,
|
||||||
|
|
||||||
// Drasl auth web UI + authlib-injector API root.
|
// Drasl auth web UI + authlib-injector API root.
|
||||||
authUrl: `http://auth.${BASE_DOMAIN}`,
|
authUrl: `http://auth.${BASE_DOMAIN}`,
|
||||||
|
|||||||
Reference in New Issue
Block a user