Files
bkvargyasandClaude Fable 5.1 5ade592384 Courtside MVP: engine, web app, Docker + Cloudflare Tunnel deploy, docs
Tournament engine (pools, single/double elimination, standings with proper
tiebreaks, withdrawals, two-court queue with ETAs and alerts), a single-process
Node server with SQLite via node:sqlite and a WebSocket live board, organizer
desk, QR landing page that follows the tournament phase, Dockerfile and
compose with cloudflared, and documentation for deploying and running a day.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MB7nCCAscYsb3zzkT6LHZi
2026-09-03 20:31:46 +00:00

19 lines
847 B
Bash

# Copy to .env and fill in. Never commit .env.
# Password for the organizer desk at /admin. Required unless TRUST_CF_ACCESS=true.
ADMIN_PASSWORD=change-me
# Random string used to sign the organizer session cookie. Generate one with:
# openssl rand -hex 32
# If left empty a random secret is generated at startup (organizers must sign in again after each restart).
SESSION_SECRET=
# Optional. If "true", requests carrying the Cf-Access-Authenticated-User-Email header
# (set by Cloudflare after an Access policy on /admin*) are treated as organizers.
# Only enable when the app is reachable exclusively through the tunnel.
TRUST_CF_ACCESS=false
# Cloudflare Tunnel token from Zero Trust → Networks → Tunnels → (your tunnel) → Install connector.
# The tunnel's public hostname should route to http://app:3000.
CLOUDFLARE_TUNNEL_TOKEN=