# OpenAI OPENAI_API_KEY=your-openai-api-key OPENAI_TIMEOUT_SECONDS=25 OPENAI_MAX_RETRIES=0 # Database DATABASE_URL=postgresql+psycopg://swaddle:swaddle@localhost:5433/swaddle DB_POOL_SIZE=5 DB_MAX_OVERFLOW=5 DB_POOL_RECYCLE_SECONDS=1800 # Media CLOUDINARY_URL=cloudinary://api-key:api-secret@cloud-name # CORS: exact origins, plus an optional regex for generated preview hostnames. CORS_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 CORS_ORIGIN_REGEX= # Container runtime (read by server/docker-entrypoint.sh, not by the app) PORT=8000 WEB_CONCURRENCY=2 LOG_LEVEL=info RUN_MIGRATIONS=0 # Client build (Vite inlines VITE_* at build time; set it on Vercel too) VITE_API_URL=