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
19 lines
466 B
YAML
19 lines
466 B
YAML
# Local run without Cloudflare: http://localhost:3000
|
|
# docker compose -f docker-compose.local.yml up --build
|
|
services:
|
|
app:
|
|
build: .
|
|
image: courtside:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
- PORT=3000
|
|
- DB_PATH=/data/courtside.sqlite
|
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-changeme}
|
|
- SESSION_SECRET=${SESSION_SECRET:-}
|
|
volumes:
|
|
- courtside-data:/data
|
|
volumes:
|
|
courtside-data:
|