# Supabase SUPABASE_URL= SUPABASE_SERVICE_ROLE_KEY= # Worker WORKER_ID=hf-worker-1 MAX_WORKERS=2 POLL_INTERVAL_MS=3000 ENABLE_WORKER=true ENABLE_CRON=true # Turnitin TURNITIN_SHARED_PASSWORD= TURNITIN_CREDENTIAL_ENCRYPTION_KEY= TARGET_URL=https://www.turnitin.com/login_page.asp?lang=en_us CLASS_TITLE=Summer Reading 2026 ASSIGNMENT_TITLE=HTLLP notes # Playwright PLAYWRIGHT_HEADLESS=true # Object storage. Existing plain paths continue to read from Supabase after # switching new writes to R2. STORAGE_PROVIDER=supabase INPUT_BUCKET=relv-turnitin-inputs REPORT_BUCKET=relv-turnitin-reports DIAGNOSTICS_BUCKET=relv-turnitin-diagnostics SESSION_BUCKET=relv-turnitin-sessions SUPABASE_INPUT_BUCKET=turnitin-inputs SUPABASE_REPORT_BUCKET=turnitin-reports SUPABASE_SESSION_BUCKET=turnitin-sessions R2_ACCOUNT_ID= R2_ACCESS_KEY_ID= R2_SECRET_ACCESS_KEY= R2_ENDPOINT=https://ACCOUNT_ID.r2.cloudflarestorage.com R2_REGION=auto # Cron intervals (minutes) QUOTA_CHECK_INTERVAL=30 CLEANUP_INTERVAL=15 STALE_RECOVERY_INTERVAL=5 # Report REPORT_RETENTION_HOURS=24 # Server PORT=7860 INTERNAL_SECRET= ALLOWED_ORIGINS=https://hl-internal-finance-amber.vercel.app,http://localhost:3000