- Extract WebSocket handlers from main.py into handlers.py - Add V3 feature docs (dealer rotation, dealing animation, round end reveal, column pair celebration, final turn urgency, opponent thinking, score tallying, card hover/selection, knock early drama, column pair indicator, swap animation improvements, draw source distinction, card value tooltips, active rules context, discard pile history, realistic card sounds) - Add V3 refactoring docs (ai.py, main.py/game.py, misc improvements) - Add installation guide with Docker, systemd, and nginx setup - Add helper scripts (install.sh, dev-server.sh, docker-build.sh) - Add animation flow diagrams documentation - Add test files for handlers, rooms, and V3 features - Add e2e test specs for V3 features - Update README with complete project structure and current tech stack - Update CLAUDE.md with full architecture tree and server layer descriptions - Update .env.example to reflect PostgreSQL (remove SQLite references) - Update .gitignore to exclude virtualenv files, .claude/, and .db files - Remove tracked virtualenv files (bin/, lib64, pyvenv.cfg) - Remove obsolete game_log.py (SQLite) and games.db Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
109 lines
3.5 KiB
Plaintext
109 lines
3.5 KiB
Plaintext
# =============================================================================
|
|
# Golf Game Server Configuration
|
|
# =============================================================================
|
|
# Copy this file to .env and customize as needed.
|
|
# All values shown are defaults.
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Server Settings
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Host to bind to (0.0.0.0 for all interfaces)
|
|
HOST=0.0.0.0
|
|
|
|
# Port to listen on
|
|
PORT=8000
|
|
|
|
# Enable debug mode (more verbose logging, auto-reload)
|
|
DEBUG=false
|
|
|
|
# Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL
|
|
LOG_LEVEL=INFO
|
|
|
|
# Environment name (development, staging, production)
|
|
ENVIRONMENT=development
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Database
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# PostgreSQL connection URL (event sourcing, game logs, stats)
|
|
# For development with Docker: postgresql://golf:devpassword@localhost:5432/golf
|
|
DATABASE_URL=postgresql://golf:devpassword@localhost:5432/golf
|
|
|
|
# PostgreSQL URL for auth/stats features (can be same as DATABASE_URL)
|
|
POSTGRES_URL=postgresql://golf:devpassword@localhost:5432/golf
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Room Settings
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Maximum players per game room
|
|
MAX_PLAYERS_PER_ROOM=6
|
|
|
|
# Room timeout in minutes (inactive rooms are cleaned up)
|
|
ROOM_TIMEOUT_MINUTES=60
|
|
|
|
# Length of room codes (e.g., 4 = "ABCD")
|
|
ROOM_CODE_LENGTH=4
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Security & Authentication
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Secret key for JWT tokens (generate with: python -c "import secrets; print(secrets.token_hex(32))")
|
|
SECRET_KEY=
|
|
|
|
# Enable invite-only mode (requires invitation to register)
|
|
INVITE_ONLY=false
|
|
|
|
# Comma-separated list of admin email addresses
|
|
ADMIN_EMAILS=
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Game Defaults
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Default number of rounds (holes) per game
|
|
DEFAULT_ROUNDS=9
|
|
|
|
# Cards to flip at start of each round (0, 1, or 2)
|
|
DEFAULT_INITIAL_FLIPS=2
|
|
|
|
# Enable jokers in deck by default
|
|
DEFAULT_USE_JOKERS=false
|
|
|
|
# Require flipping a card after discarding from deck
|
|
DEFAULT_FLIP_ON_DISCARD=false
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Card Values (Standard 6-Card Golf)
|
|
# -----------------------------------------------------------------------------
|
|
# Customize point values for cards. Normally you shouldn't change these.
|
|
|
|
CARD_ACE=1
|
|
CARD_TWO=-2
|
|
CARD_KING=0
|
|
CARD_JOKER=-2
|
|
|
|
# House rule values
|
|
CARD_SUPER_KINGS=-2 # King value when super_kings enabled
|
|
CARD_TEN_PENNY=1 # 10 value when ten_penny enabled
|
|
CARD_LUCKY_SWING_JOKER=-5 # Joker value when lucky_swing enabled
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Production Features (Optional)
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Sentry error tracking
|
|
# SENTRY_DSN=https://your-sentry-dsn
|
|
|
|
# Resend API for emails (required for user registration/password reset)
|
|
# RESEND_API_KEY=your-api-key
|
|
|
|
# Enable rate limiting (recommended for production)
|
|
# RATE_LIMIT_ENABLED=true
|
|
|
|
# Base URL for email links
|
|
# BASE_URL=https://your-domain.com
|