Since all cards now use 1 slot regardless of rarity, 30 slots
is too restrictive. Bumped to 1000 so there's effectively no limit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Empty Russian and Chinese locale files so English is used regardless
of client language. Translate all CustomGameEventManager error messages,
SendCustomMessage calls, and deck/card UI strings to English.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Override getCardDeckSlots to always return 1 so mythic and higher
rarity cards don't take multiple slots in the 30-slot deck.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
--system flag creates the user with /sbin/nologin, causing
'This account is not available' when entrypoint tries su.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Entrypoint now runs as root, fixes ownership of /app/data to nextjs:nodejs
(uid 1001), then drops privileges via su before starting the app.
This fixes 'unable to open database file' when the host data/ directory
is created by Docker as root and is not writable by the nextjs user.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cookie path /admin meant the browser never sent it to /api/admin/check
(the auth check endpoint), so every check returned unauthenticated.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Log password attempt details, secure flag decision, and Set-Cookie header
to help debug login failures.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove test.vpk and light_fix.vpk from maps/ folder so the Dota 2
client only shows one map (invasion) in the lobby selection.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Allows the game client to make HTTP API calls from a listen server
(local lobby) instead of requiring a Steam dedicated server.
CreateHTTPRequestScriptVM has the exact same API signature but works
in both dedicated server and listen server contexts.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Point game client (server_config.lua) to the new domain with HTTPS
and enable secure flag on the admin session cookie for HTTPS.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add compose.prod.yml for production deployments using pre-built image
from registry.achmad.dev/dota-zombie-invasion:latest with healthcheck
and env-var-based admin password configuration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>