Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
63 lines (53 loc) · 2.22 KB
/
Copy path.env.example
File metadata and controls
63 lines (53 loc) · 2.22 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
# =============================================================================
# Portfolio Chatbot Widget — Environment Variables
# Copy to .env.local and fill in values. Never commit .env.local.
# =============================================================================
# --- Required: Redis (Upstash) — sessions + vector storage ---
# Get from: https://console.upstash.com → your database → REST API
UPSTASH_REDIS_URL=
UPSTASH_REDIS_TOKEN=
# --- Required: AI (primary) ---
# Get from: https://aistudio.google.com/apikey
GOOGLE_GEMINI_API_KEY=
# --- Required: Embeddings fallback ---
# Get from: https://huggingface.co/settings/tokens
HUGGING_FACE_API_KEY=
# --- Optional: AI fallbacks (free-tier chains in lib/ai/providers.ts) ---
# OpenRouter: https://openrouter.ai/keys
OPENROUTER_API_KEY=
# Groq: https://console.groq.com/keys
GROQ_API_KEY=
# OpenAI (paid last resort): https://platform.openai.com/api-keys
OPENAI_API_KEY=
# Alternate env var names also supported in code:
# OpenRouter_API_KEY=
# Groq_Llama_API_KEY=
# Hugging_Face_Inference_API_KEY=
# --- App / widget configuration ---
# Public URL where this chatbot is deployed (embed + API base)
NEXT_PUBLIC_CHATBOT_URL=http://localhost:3000
# Site URL for OpenRouter HTTP-Referer fallback
NEXT_PUBLIC_SITE_URL=
CHATBOT_TITLE=Chat Assistant
CHATBOT_GREETING=👋 How can I help you today?
CHATBOT_PLACEHOLDER=Message...
# Session TTL in seconds (default 30 days)
SESSION_TTL=2592000
# Feedback recipient (email sending not yet wired)
FEEDBACK_EMAIL=
# --- Sentry (optional) — error tracking ---
# Client DSN (browser): Sentry → Project Settings → Client Keys (DSN)
NEXT_PUBLIC_SENTRY_DSN=
# Server alias (optional; falls back to NEXT_PUBLIC_SENTRY_DSN)
SENTRY_DSN=
# Build-time source map upload (Vercel CI only — not exposed to browser)
# Org slug: Sentry → Settings → General
SENTRY_ORG=
# Project slug: Sentry → Project Settings → General (not the org name)
SENTRY_PROJECT=
# Auth token: Sentry → Settings → Auth Tokens (project:releases scope)
SENTRY_AUTH_TOKEN=
# --- Required: seed endpoint protection ---
# Generate a random string — required for POST /api/seed in all environments
# curl -H "Authorization: Bearer $SEED_SECRET" -X POST .../api/seed
SEED_SECRET=