Files

223 lines
6.2 KiB
Bash

# ==============================================
# SerpentRace Backend Environment Configuration
# ==============================================
# Copy this file to .env and fill in your values
# This file contains all environment variables used by the backend
# ==============================================
# APPLICATION CONFIGURATION
# ==============================================
# Node.js environment (development, production, test)
NODE_ENV=development
# Server port number
PORT=3000
# Base URL for the application (used for email links, etc.)
APP_BASE_URL=http://localhost:3000
# ==============================================
# DATABASE CONFIGURATION (PostgreSQL)
# ==============================================
# Database connection details
DB_HOST=localhost
DB_PORT=5432
DB_NAME=serpentrace
DB_USERNAME=postgres
DB_PASSWORD=your_db_password
# Database URL (alternative to individual settings)
# DATABASE_URL=postgresql://username:password@localhost:5432/serpentrace
# ==============================================
# REDIS CONFIGURATION
# ==============================================
# Redis connection details (for caching and sessions)
REDIS_HOST=localhost
REDIS_PORT=6379
# Redis URL (alternative to individual settings)
REDIS_URL=redis://localhost:6379
# Redis password (if required)
# REDIS_PASSWORD=your_redis_password
# ==============================================
# JWT (JSON Web Token) CONFIGURATION
# ==============================================
# Secret key for JWT signing (REQUIRED - use a strong, random key in production)
JWT_SECRET=your_super_secret_jwt_key_change_in_production
# JWT token expiration time
# Can be specified in seconds (e.g., 86400) or time format (e.g., 24h, 7d, 30m)
JWT_EXPIRY=86400
# Alternative format
JWT_EXPIRATION=24h
# JWT refresh token expiration (for future use)
JWT_REFRESH_EXPIRATION=7d
# Game token expiration (for game session tokens)
GAME_TOKEN_EXPIRY=86400
# ==============================================
# EMAIL SERVICE CONFIGURATION (SMTP)
# ==============================================
# SMTP server configuration
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_SECURE=false
# Email authentication
EMAIL_USER=your_email@domain.com
EMAIL_PASS=your_email_password
# From address for outgoing emails
EMAIL_FROM=noreply@serpentrace.com
# ==============================================
# CHAT SYSTEM CONFIGURATION
# ==============================================
# Chat inactivity timeout (in minutes)
CHAT_INACTIVITY_TIMEOUT_MINUTES=30
# Maximum messages per user per session
CHAT_MAX_MESSAGES_PER_USER=100
# Cleanup old messages after X weeks
CHAT_MESSAGE_CLEANUP_WEEKS=4
# ==============================================
# GAME CONFIGURATION
# ==============================================
# Board generation settings
MAX_SPECIAL_FIELDS_PERCENTAGE=67
MAX_GENERATION_TIME_SECONDS=20
GENERATION_ERROR_TOLERANCE=15
# ==============================================
# MINIO/S3 CONFIGURATION (File Storage)
# ==============================================
# MinIO server configuration (for file uploads)
MINIO_ENDPOINT=localhost
MINIO_PORT=9000
MINIO_ACCESS_KEY=serpentrace
MINIO_SECRET_KEY=serpentrace123!
MINIO_USE_SSL=false
# S3 bucket name (if using S3 instead of MinIO)
# S3_BUCKET_NAME=serpentrace-files
# ==============================================
# LOGGING CONFIGURATION
# ==============================================
# Log level (error, warn, info, debug)
LOG_LEVEL=info
# Log file retention (in days)
LOG_RETENTION_DAYS=30
# ==============================================
# SECURITY CONFIGURATION
# ==============================================
# API rate limiting (requests per minute per IP)
RATE_LIMIT_RPM=60
# Maximum file upload size (in MB)
MAX_UPLOAD_SIZE_MB=10
# CORS allowed origins (comma-separated)
CORS_ORIGINS=http://localhost:3000,http://localhost:3001,http://localhost:8080
# ==============================================
# ADMIN CONFIGURATION
# ==============================================
# Admin bypass settings
ADMIN_BYPASS_ENABLED=true
# Default admin user (for development only)
# ADMIN_DEFAULT_EMAIL=admin@serpentrace.com
# ADMIN_DEFAULT_PASSWORD=change_this_password
# ==============================================
# MONITORING & HEALTH CHECKS
# ==============================================
# Health check endpoint timeout (in milliseconds)
HEALTH_CHECK_TIMEOUT=5000
# Database connection pool settings
DB_CONNECTION_POOL_MIN=2
DB_CONNECTION_POOL_MAX=10
# ==============================================
# DEVELOPMENT ONLY SETTINGS
# ==============================================
# These settings should only be used in development
# Enable detailed SQL logging
DB_LOGGING=true
# Enable debug mode for various services
DEBUG_MODE=false
# Disable email sending in development (logs emails instead)
EMAIL_DEBUG_MODE=true
# ==============================================
# PRODUCTION ONLY SETTINGS
# ==============================================
# These settings are typically used only in production
# Enable HTTPS (for production)
# HTTPS_ENABLED=true
# SSL_CERT_PATH=/path/to/cert.pem
# SSL_KEY_PATH=/path/to/key.pem
# Sentry configuration (for error tracking)
# SENTRY_DSN=https://your-sentry-dsn@sentry.io/project-id
# New Relic configuration (for performance monitoring)
# NEW_RELIC_LICENSE_KEY=your_new_relic_license_key
# NEW_RELIC_APP_NAME=SerpentRace Backend
# ==============================================
# EXTERNAL API KEYS (Optional)
# ==============================================
# Third-party service API keys (if used)
# ANALYTICS_API_KEY=your_analytics_key
# PAYMENT_API_KEY=your_payment_processor_key
# ==============================================
# NOTES & SECURITY WARNINGS
# ==============================================
# SECURITY NOTES:
# - Never commit .env files to version control
# - Use strong, unique passwords and keys
# - Regularly rotate JWT secrets and API keys
# - Use environment-specific values for each deployment
# REQUIRED VARIABLES:
# The following variables are required for the application to start:
# - NODE_ENV
# - DB_HOST, DB_PORT, DB_NAME, DB_USERNAME, DB_PASSWORD
# - REDIS_HOST, REDIS_PORT
# - JWT_SECRET
# - EMAIL_HOST, EMAIL_PORT, EMAIL_USER, EMAIL_PASS
# OPTIONAL VARIABLES:
# All other variables have sensible defaults and are optional