-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path.env.example
More file actions
115 lines (103 loc) · 4.96 KB
/
Copy path.env.example
File metadata and controls
115 lines (103 loc) · 4.96 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# =============================================================================
# Recipe Guide — Environment Variables
# =============================================================================
# Copy to .env.local and fill in values:
# cp .env.example .env.local
#
# Required for core app: DATABASE_URL, API_KEY, AUTH_SECRET, AUTH_URL
# Optional: everything else (features degrade gracefully when missing)
# =============================================================================
# -----------------------------------------------------------------------------
# App URLs (Next.js)
# -----------------------------------------------------------------------------
# Leave NEXT_PUBLIC_API_URL empty to use same-origin relative API paths (recommended)
NEXT_PUBLIC_API_URL=
# Public site URL for metadata, OAuth callbacks in production
NEXT_PUBLIC_APP_URL=http://localhost:3000
# NextAuth v5 base URL (must match your dev/prod origin)
AUTH_URL=http://localhost:3000
# -----------------------------------------------------------------------------
# Spoonacular API (50 points/day per free key)
# -----------------------------------------------------------------------------
# Primary key — required for recipe search/detail
API_KEY=your_spoonacular_api_key_here
# Optional rotation keys (API_KEY_2 … API_KEY_10); auto-rotates on daily limit
API_KEY_2=
API_KEY_3=
# API_KEY_4=
# API_KEY_5=
# Legacy alias (optional; API_KEY is preferred)
# SPOONACULAR_API_KEY=
# -----------------------------------------------------------------------------
# Database (PostgreSQL — Neon, Hetzner, etc.)
# -----------------------------------------------------------------------------
DATABASE_URL=postgresql://user:password@host:5432/database?sslmode=require
# -----------------------------------------------------------------------------
# NextAuth v5 (Credentials + Google OAuth)
# -----------------------------------------------------------------------------
# Generate: openssl rand -base64 32
AUTH_SECRET=your_auth_secret_here
# Google Cloud Console → OAuth 2.0 Client ID
# Redirect URI: http://localhost:3000/api/auth/callback/google
# Production: https://your-domain.vercel.app/api/auth/callback/google
GOOGLE_ID=your_google_client_id.apps.googleusercontent.com
GOOGLE_SECRET=your_google_client_secret
# Aliases also supported: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
# -----------------------------------------------------------------------------
# AI providers (free-tier fallback: Groq → Gemini → OpenRouter :free → Hugging Face)
# REQ-0010 / CR-0002 — model IDs live in lib/ai/providers.ts; swap there, not per-route.
# -----------------------------------------------------------------------------
OPENROUTER_API_KEY=
# OpenRouter models MUST use the :free suffix (or openrouter/free). Paid slugs are rejected by design.
GOOGLE_GEMINI_API_KEY=
GROQ_LLAMA_API_KEY=
# Legacy alias — also accepted by lib/ai (same Groq account)
# GROQ_API_KEY=
HUGGING_FACE_INFERENCE_API_KEY=
# Alias accepted by lib/ai
# HF_TOKEN=
# -----------------------------------------------------------------------------
# OpenWeather (weather-based recipe suggestions)
# -----------------------------------------------------------------------------
OPENWEATHER_API_KEY=
# -----------------------------------------------------------------------------
# Cloudinary (recipe image uploads)
# -----------------------------------------------------------------------------
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
# -----------------------------------------------------------------------------
# Email (recipe sharing — Resend or Brevo)
# -----------------------------------------------------------------------------
RESEND_TOKEN=
BREVO_API_KEY=
# BREVO_SMTP_KEY=
EMAIL_SENDER_ADDRESS=you@example.com
# -----------------------------------------------------------------------------
# Contentful CMS (blog at /blog)
# -----------------------------------------------------------------------------
CMS_SPACE_ID=
CMS_ENVIRONMENT=master
CMS_DELIVERY_TOKEN=
# -----------------------------------------------------------------------------
# PostHog Analytics
# -----------------------------------------------------------------------------
NEXT_PUBLIC_POSTHOG_KEY=
NEXT_PUBLIC_POSTHOG_HOST=https://eu.i.posthog.com
# -----------------------------------------------------------------------------
# Sentry (errors + performance; Session Replay configured in SDK)
# -----------------------------------------------------------------------------
NEXT_PUBLIC_SENTRY_DSN=
# Optional release tag for deploy tracking
# NEXT_PUBLIC_SENTRY_RELEASE=
# CI/deploy only — not needed for local dev
# SENTRY_AUTH_TOKEN=
# -----------------------------------------------------------------------------
# Upstash Redis (server cache) + QStash (scheduled jobs)
# -----------------------------------------------------------------------------
UPSTASH_REDIS_URL=
UPSTASH_REDIS_TOKEN=
QSTASH_URL=https://qstash.upstash.io
QSTASH_TOKEN=
QSTASH_CURRENT_SIGNING_KEY=
QSTASH_NEXT_SIGNING_KEY=