6 Commits
  • Add TCPShield / Proxy Protocol support
    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.
  • Fix gamerule toggles for 26.x renames; add map/skins/pregen + admin favors
    Minecraft 26.x renamed every gamerule to snake_case (keepInventory →
    keep_inventory, doDaylightCycle → advance_time, ...), so the panel's
    queries hit unknown rules: reads returned nothing, toggles always
    started from 'off', and sets silently failed. Rules are now defined by
    candidate names resolved against the live server (works on old and new
    versions), sets are verified by re-query, and failures surface the
    server's actual reply. Toggles render only for rules the server reports.
    
    Creative additions:
    - Featured mods on the Mods page: BlueMap (3D web map), SkinRestorer
      (real skins in offline mode), Chunky (pregen) — verified for 26.2
    - BlueMap plumbing: MAP_PORT mapping in compose, in-network detection,
      'Open the live world map' link on the Overview
    - Player modal favors: heal, teleport-to-player, give item
    - Broadcast box gained a full-screen title mode
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
  • Disable enforce-secure-profile so offline-launcher players can join
    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>
  • Allow beta-typed Modrinth builds for EasyAuth (easyauth:beta)
    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>
  • Minecraft 26.2 Fabric server stack with CraftDeck management panel
    - docker-compose: itzg/minecraft-server (Fabric, offline mode, whitelist
      enforced, Modrinth-managed mods), itzg/mc-backup sidecar, custom dashboard
    - Gated auth for offline mode: approve username -> whitelisted with a short
      registration window -> EasyAuth /register + /login; auto-revoke on expiry
    - CraftDeck panel (Next.js 16, zero native deps): live console (SSE), players
      & stats, lag diagnostics (server TPS vs player ping via spark), performance
      graphs, Modrinth mod search/manager, backups & restore, sandboxed file
      browser/editor, .env config editor with compose apply, cron schedules,
      Discord alerts, scrypt-hashed panel login
    - scripts/setup.sh generates secrets; docs/ covers auth, mods, updating,
      backups, networking (Tailscale), troubleshooting
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>