Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
97 lines (82 loc) · 3.34 KB
/
Copy path.env.example
File metadata and controls
97 lines (82 loc) · 3.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# ==========================================
# BACKEND ENVIRONMENT VARIABLES
# ==========================================
# 1. Server Configuration
PORT=5001
NODE_ENV=development
# 2. MongoDB Database (Required)
# Replace with your MongoDB Atlas connection string
MONGODB_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/walletstack?retryWrites=true&w=majority
# 3. Clerk Authentication (Required)
# Get these from your Clerk Dashboard (clerk.com)
CLERK_SECRET_KEY=sk_test_...
CLERK_PUBLISHABLE_KEY=pk_test_...
# Webhook signing secret for profile sync (docs/DEPLOYMENT.md §6)
CLERK_WEBHOOK_SIGNING_SECRET=whsec_...
# 4. OpenRouter AI (Required)
# Get this from openrouter.ai
OPENROUTER_API_KEY=sk-or-v1-...
# Models are tried in order. Paid primary first, then free fallback.
OPENROUTER_MODELS=meta-llama/llama-3.1-8b-instruct,tencent/hy3:free,cohere/north-mini-code:free
# Private RAG embeddings (required only for knowledge ingestion/search)
# OpenRouter URL/key are inherited when these two values are blank.
RAG_EMBEDDING_BASE_URL=
RAG_EMBEDDING_API_KEY=
RAG_EMBEDDING_MODEL=nvidia/nemotron-3-embed-1b:free
# 5. Upstash Redis Cache (Optional - App runs without it)
# Get this from upstash.com (Redis connection string, not REST)
UPSTASH_REDIS_URL=redis://...
# 6. Resend Email (Optional - For welcome emails)
# Get this from resend.com
RESEND_API_KEY=re_...
# 7. Sentry Observability (Optional)
# Get this from sentry.io (Node project)
SENTRY_DSN=https://...
SENTRY_TRACES_SAMPLE_RATE=0.1
SENTRY_PROFILES_SAMPLE_RATE=0.1
# 8. Market Data Providers (Optional, but recommended)
# Add one or more keys. WalletStack will try them in this order:
# Twelve Data -> Alpha Vantage -> Finnhub -> FMP -> Yahoo fallback
# Free-tier budgets (skip a provider once its window budget is exhausted):
TWELVE_DATA_API_KEY=
ALPHA_VANTAGE_API_KEY=
FINNHUB_API_KEY=
FMP_API_KEY=
# NewsAPI.org. Developer keys are delayed and must not serve a public deployment.
NEWSAPI_KEY=
NEWSAPI_PLAN=developer
NEWSAPI_DAILY_LIMIT=90
# Optional override for news impact only; defaults to dots-studio/dots-3-note-preview:free.
# The free router is appended as a final fallback within the request time budget.
NEWS_IMPACT_MODELS=
ALPHA_VANTAGE_DAILY_LIMIT=25
TWELVE_DATA_MINUTE_LIMIT=8
# 8b. Portfolio analytics & import tuning
BENCHMARK_SYMBOL=^NSEI
RISK_FREE_PERCENT=7
ANALYTICS_MAX_HOLDINGS=10
MAX_IMPORT_ROWS=500
MAX_RADAR_SYMBOLS=25
# 9. Market data diagnostics (optional; keep false in normal operation)
DEBUG_MARKET_DATA=false
# 10. AI response caching (seconds) — protects OpenRouter spend from repeat calls
# AI_INSIGHT_CACHE_TTL=1800
# AI_REPORT_CACHE_TTL=3600
# AI_SIMULATION_CACHE_TTL=300
# 11. API docs are available only with NODE_ENV=development
# 12. Background jobs (alert scanner + weekly digest email)
# ENABLE_CRONS=false disables all scheduled work (useful in dev/tests)
ENABLE_CRONS=true
CRON_TIMEZONE=Asia/Kolkata
ALERT_RETRIGGER_COOLDOWN_HOURS=24
MAX_ALERTS_PER_USER=30
DIGEST_EVENT_HORIZON_DAYS=14
DIVIDEND_CACHE_TTL=21600
# Public site metadata (set both origins to the actual production domain)
SITE_URL=https://walletstack.in
VITE_SITE_URL=https://walletstack.in
GOOGLE_SITE_VERIFICATION=
VITE_GA_MEASUREMENT_ID=
# Number of trusted reverse proxies. Heroku defaults to 1 when DYNO is present.
# Do not enable proxy trust unless the app is reachable only through that proxy.
TRUST_PROXY_HOPS=0