# ICH Screening Application - Environment Configuration # STEP 1: Copy this file to .env # STEP 2: Update values below with your configuration # STEP 3: DO NOT commit .env to version control! # ════════════════════════════════════════════════════════════════════════════ # APPLICATION & DEBUG # ════════════════════════════════════════════════════════════════════════════ FLASK_ENV=production FLASK_DEBUG=False ICH_APP_DEBUG=False ICH_APP_PORT=7860 # Secret key for Flask sessions - MUST be set in production # Generate with: python -c "import secrets; print(secrets.token_hex(32))" SECRET_KEY=CHANGE_ME_IN_PRODUCTION_USE_COMMAND_ABOVE # ════════════════════════════════════════════════════════════════════════════ # DATABASE - NEON POSTGRESQL (REQUIRED) # ════════════════════════════════════════════════════════════════════════════ # Your connection string from Neon DATABASE_URL=postgresql://:@/?sslmode=require # ════════════════════════════════════════════════════════════════════════════ # FILE UPLOADS & STORAGE # ════════════════════════════════════════════════════════════════════════════ ICH_MAX_UPLOAD_MB=2048 UPLOAD_BASE_DIR=uploads # ════════════════════════════════════════════════════════════════════════════ # MODEL CONFIGURATION # ════════════════════════════════════════════════════════════════════════════ # Fold selection: ensemble | best | 0 | 1 | 2 | 3 | 4 ICH_FOLD_SELECTION=ensemble # Hugging Face model repository ICH_HF_MODEL_REPO=HarshCode/eff_b4_brain ICH_HF_TOKEN= # ════════════════════════════════════════════════════════════════════════════ # SMTP / EMAIL (REQUIRED FOR OTP + PASSWORD RESET EMAILS) # ════════════════════════════════════════════════════════════════════════════ SMTP_HOST=smtp.your-provider.com SMTP_PORT=587 SMTP_USER=your-email@domain.com SMTP_PASSWORD=CHANGE_ME SMTP_FROM=no-reply@your-domain.com SMTP_USE_TLS=true # Optional aliases also supported by code (Brevo-style): # EMAIL_HOST, EMAIL_PORT, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD, EMAIL_FROM, EMAIL_USE_TLS # Public base URL used in email links when app is behind proxy/load balancer. # Example local: ICH_PUBLIC_BASE_URL=http://127.0.0.1:7860 # Example prod: ICH_PUBLIC_BASE_URL=https://your-domain.com ICH_PUBLIC_BASE_URL= # Optional local debugging for auth emails (prints OTP/reset link to server logs) ICH_DEBUG_AUTH_EMAILS=false # ════════════════════════════════════════════════════════════════════════════ # CELERY + REDIS (ASYNC TASK QUEUE FOR BATCH PROCESSING) # ════════════════════════════════════════════════════════════════════════════ # Redis broker and result backend for Celery workers. # Local dev: redis://localhost:6379/0 # Upstash (cloud): rediss://default:@: # Leave empty to use default local Redis REDIS_URL= # ════════════════════════════════════════════════════════════════════════════ # LOGGING & MONITORING # ════════════════════════════════════════════════════════════════════════════ ICH_LOG_LEVEL=INFO ICH_LOCAL_MODE=True # ════════════════════════════════════════════════════════════════════════════ # RENDER.COM DEPLOYMENT (optional) # ════════════════════════════════════════════════════════════════════════════ # RENDER_EXTERNAL_HOSTNAME is set automatically by Render