Overview
Watch N Chill uses environment variables to configure Redis connections, CORS settings, rate limiting, and server behavior. All variables are optional with sensible defaults for local development.Redis Configuration
Redis connection URL for room state, chat history, and rate limiting.Local development:Upstash Redis (production):
The application automatically detects Upstash URLs (containing
upstash.io) and configures TLS accordingly.Server Configuration
Node.js environment mode. Set to
production for production deployments.HTTP server port for the application.
Hostname the server binds to. Automatically set based on
NODE_ENV.CORS Configuration
Comma-separated list of allowed origins for Socket.IO CORS.Required in production to enable cross-origin Socket.IO connections.
In development mode,
http://localhost:3000 is automatically allowed. In production, you must explicitly set this variable.Rate Limiting
Time window in milliseconds for HTTP rate limiting (1 minute default).
Maximum HTTP requests allowed per IP within the rate limit window.
Default allows 360 requests per minute (6 requests per second).
Maximum concurrent Socket.IO connections allowed per IP address.
Next.js Configuration
Disable Next.js telemetry collection.
Complete Examples
Environment Variable Loading
The application loads environment variables in the following order:- System environment variables
.env.local(local development, gitignored).env.production(production builds).env(committed defaults)
Validation
The application validates critical environment variables at startup:- REDIS_URL: Automatically tested on connection. Logs errors if Redis is unavailable.
- Rate limiting: Falls back to in-memory rate limiting if Redis connection fails.
- CORS: Defaults to localhost in development, requires explicit configuration in production.