# Application ENV=development DEBUG=true APP_NAME=encrypted-p2p-chat SECRET_KEY=your-secret-key-here-change-in-production # Docker Host Ports (change these if you have conflicts) POSTGRES_HOST_PORT=5432 SURREAL_HOST_PORT=8001 REDIS_HOST_PORT=6379 BACKEND_HOST_PORT=8000 NGINX_HTTP_PORT=80 NGINX_HTTPS_PORT=443 # PostgreSQL (for auth data) POSTGRES_HOST=postgres POSTGRES_PORT=5432 POSTGRES_DB=chat_auth POSTGRES_USER=chat_user POSTGRES_PASSWORD=change-this-password DATABASE_URL=postgresql+asyncpg://chat_user:change-this-password@postgres:5432/chat_auth DB_POOL_SIZE=20 DB_MAX_OVERFLOW=40 # SurrealDB (for real-time chat data) SURREAL_HOST=surrealdb SURREAL_PORT=8000 SURREAL_USER=root SURREAL_PASSWORD=change-this-password SURREAL_NAMESPACE=chat SURREAL_DATABASE=production SURREAL_URL=ws://surrealdb:8000 # Redis (for caching and rate limiting) REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD= REDIS_URL=redis://redis:6379 # WebAuthn / Passkeys RP_ID=localhost RP_NAME="Encrypted P2P Chat" RP_ORIGIN=http://localhost # Frontend (Vite requires VITE_ prefix) VITE_API_URL=http://localhost:8000 VITE_WS_URL=ws://localhost:8000 VITE_RP_ID=localhost # CORS CORS_ORIGINS='["http://localhost:3000","http://localhost:5173"]' # WebSocket WS_HEARTBEAT_INTERVAL=30 WS_MAX_CONNECTIONS_PER_USER=5 # Encryption KEY_ROTATION_DAYS=90 MAX_SKIPPED_MESSAGE_KEYS=1000 # Rate Limiting RATE_LIMIT_MESSAGES_PER_MINUTE=60 RATE_LIMIT_AUTH_ATTEMPTS=5