| # Copy this file to .env and fill in real values. NEVER put real secrets in | |
| # this .example file β it is committed to git. Real secrets go in .env only. | |
| # Reddit API credentials (free β create an app at https://www.reddit.com/prefs/apps) | |
| # Select "script" type when creating the app | |
| # REDDIT_CLIENT_ID=your_client_id_here | |
| # REDDIT_CLIENT_SECRET=your_client_secret_here | |
| # REDDIT_USER_AGENT=CryptoNarrativeBot/1.0 by YourUsername | |
| # Economic calendar (free key at https://site.financialmodelingprep.com) | |
| # Powers the Economic Calendar panel + Market Impact Forecast. Skips if unset. | |
| # FMP_API_KEY=your_fmp_key_here | |
| # NewsData.io free tier (200 req/day β https://newsdata.io) | |
| # NEWSDATA_API_KEY=your_newsdata_key_here | |
| # Optional: spike alert push channels (free) | |
| # TELEGRAM_BOT_TOKEN=your_bot_token | |
| # TELEGRAM_CHAT_ID=your_chat_id | |
| # DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/... | |
| # Persistent DB (free) β back the SQLite DB up to a private HF Dataset so the | |
| # scorecards / track record / model survive Space rebuilds. Create a private | |
| # dataset at https://huggingface.co/new-dataset and set both: | |
| # HF_DB_DATASET=yourname/crypto-terminal-db | |
| # HF_TOKEN=hf_... (a WRITE token) | |
| # Admin panel password (open /admin) β CHANGE THIS | |
| ADMIN_PASSWORD=change_me | |
| # Secret for cron endpoints (/api/cron/*). Use a long random string. | |
| # The same value goes into your GitHub Actions secret CRON_SECRET. | |
| CRON_SECRET=change_me_to_a_long_random_string | |
| # ββ Email briefs ββββββββββββββββββββββββββββββββββββββββββββββ | |
| # OPTION A (recommended, works on Hugging Face / any host): Brevo HTTP API. | |
| # Free 300 emails/day. Sign up at https://www.brevo.com, verify your sender | |
| # email, then create an API key (menu: SMTP & API > API Keys). | |
| # BREVO_API_KEY=xkeysib-xxxxxxxx | |
| # SMTP_FROM=Crypto Narrative <you@gmail.com> # your VERIFIED Brevo sender | |
| # OPTION B (local / SMTP-allowed hosts only β BLOCKED on HF Spaces): Gmail SMTP. | |
| # Gmail: enable 2FA, then create an App Password at | |
| # https://myaccount.google.com/apppasswords | |
| # SMTP_HOST=smtp.gmail.com | |
| # SMTP_PORT=587 | |
| # SMTP_USER=you@gmail.com | |
| # SMTP_PASS=your_16_char_app_password | |
| # SMTP_FROM=Crypto Narrative <you@gmail.com> | |
| # Optional: override defaults | |
| # DB_PATH=narrative_analysis.db | |
| # REFRESH_INTERVAL_MINUTES=30 | |
| # ββ Live trading on MEXC (optional, OFF unless TRADE_ENABLED=true) ββββββ | |
| # Mirrors the EXISTING signal onto your futures account. It never changes | |
| # how a signal is computed. Put the real values in your host's secrets, | |
| # never in the repo. | |
| # MEXC_API_KEY= | |
| # MEXC_API_SECRET= | |
| # TRADE_ENABLED=false # must be exactly "true" to arm auto-trading | |
| # TRADE_SYMBOL=BTC_USDT | |
| # TRADE_MARGIN_USDT=5 # MARGIN per trade; notional = margin x leverage | |
| # TRADE_LEVERAGE=100 # always cross margin | |
| # TRADE_TP_PCT=1.0 # take-profit distance, matches the 1% target | |
| # MEXC_FUTURES_BASE=https://contract.mexc.com | |
| # MEXC_ORDER_PATH=/api/v1/private/order/submit | |
| # TRADE_HOLD_HOURS=24 # timed exit, matches the scorecard's 24h horizon | |