Adds enforced Proxy Protocol config and docs: a patch-set (config/patches/patch-set.json) that enables proxy protocol, whitelists TCPShield, and sets proxy/direct IPs; exposes PATCH_DEFINITIONS and mounts ./config/patches in docker-compose.yml; adds a featured "Proxy Protocol Support" entry to the dashboard mods page; and adds docs/tcpshield.md describing setup, verification, security model, and first-boot behavior.
The vanilla command resolves never-seen names through Mojang's API, so a
premium account's UUID gets whitelisted instead of the offline UUID the
player actually connects with — the exact 'You are not white-listed'
loop hit on first join. The panel now computes the offline UUID
(md5 OfflinePlayer:<name>, UUID v3 — verified against known vectors),
writes whitelist.json itself, and issues 'whitelist reload'.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
EasyAuth flagged it at startup: with enforce-secure-profile on (vanilla
default), TLauncher/offline clients are rejected before they can even
authenticate. Set ENFORCE_SECURE_PROFILE=FALSE on the mc service and
document the symptom in troubleshooting.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
EasyAuth publishes its 26.x builds as beta on Modrinth, and the itzg
resolver only accepts release-typed versions by default, so the mc
container failed to start. Pin easyauth:beta in the default mod list and
teach the panel's mod manager to compare entries by base slug so version
qualifiers don't break protected/duplicate checks.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>