# --- Core --- FLASK_CONFIG=dev # dev | prod SECRET_KEY=change-me-to-a-long-random-string SERVER_NAME= # e.g. classifieds.example.com (prod) # --- Database (MySQL 8.0) --- DB_USER=classifieds DB_PASSWORD=change-me DB_HOST=127.0.0.1 DB_PORT=3306 DB_NAME=classifieds # Dev override: leave DATABASE_URL empty to build from parts above. # For a quick local smoke test without MySQL you may set: # DATABASE_URL=sqlite:///dev.db DATABASE_URL= # --- Redis (sessions, rate-limit, cache, queue) --- REDIS_URL=redis://127.0.0.1:6379/0 # --- i18n --- DEFAULT_LOCALE=en SUPPORTED_LOCALES=en,vi,es # --- Email (Brevo smart relay / SMTP) --- MAIL_SERVER= MAIL_PORT=587 MAIL_USE_TLS=true MAIL_USERNAME= MAIL_PASSWORD= MAIL_FROM=no-reply@example.com MAIL_FROM_NAME=Classifieds # --- Media (uploaded images); default instance/media --- MEDIA_ROOT= # --- Cloudflare Turnstile (CAPTCHA) --- # Leave both blank in dev to bypass CAPTCHA verification. TURNSTILE_SITE_KEY= TURNSTILE_SECRET_KEY= # --- Security tokens --- TOKEN_VERIFY_MAX_AGE=86400 # 24h email-verify link life (seconds) TOKEN_RESET_MAX_AGE=3600 # 1h password-reset link life (seconds) # Stripe # Get keys from https://dashboard.stripe.com/apikeys STRIPE_SECRET_KEY= STRIPE_PUBLISHABLE_KEY= # Get webhook secret after running: stripe listen --forward-to localhost:5000/billing/webhook STRIPE_WEBHOOK_SECRET=