The v3.3.5 router reads config.LEADERBOARD_INCLUDE_TEST_DEFAULT but the
staging compose file was never passing the env through to the container.
This change was applied manually on the staging host before but never
made it back into the repo — fixing that so CI deploys pick it up.
Value on staging is sourced from .env (already set to true). Production
leaves it unset, so the default of false applies.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Invite request feature:
- Public form to request an invite when INVITE_REQUEST_ENABLED=true
- Stores requests in new invite_requests DB table
- Emails admins on new request, emails requester on approve/deny
- Admin panel tab to review, approve, and deny requests
- Approval auto-creates invite code and sends signup link
CI/CD pipeline:
- Build & push Docker image to Gitea registry on release
- Auto-deploy to staging with health check
- Manual workflow_dispatch for production deploys
Also includes client layout/sizing improvements for card grid
and opponent spacing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mirrors production config with reduced memory limits (128M app, 96M
postgres, 32M redis, 48M traefik) and staging defaults. Rate limiting
disabled for easier testing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>