|
1 | | - # Since the ".env" file is gitignored, you can use the ".env.example" file to |
2 | | -# build a new ".env" file when you clone the repo. Keep this file up-to-date |
3 | | -# when you add new variables to `.env`. |
| 1 | +# Server environment variables |
| 2 | +DATABASE_URL="postgresql://user:password@localhost:5432/pdr_ai" |
| 3 | + |
| 4 | +# Clerk Authentication |
| 5 | +NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_test_..." |
| 6 | +CLERK_SECRET_KEY="sk_test_..." |
| 7 | + |
| 8 | +# OpenAI API |
| 9 | +OPENAI_API_KEY="sk-..." |
| 10 | + |
| 11 | +# NextJS client environment variables |
| 12 | +NEXT_PUBLIC_UPLOADTHING_ENABLED="true" |
| 13 | + |
| 14 | +# Trend / web search (optional — leave keys unset if you do not use trend search) |
| 15 | +# SEARCH_PROVIDER default when unset is tavily-only (same as tavily). |
| 16 | +# tavily → requires TAVILY_API_KEY |
| 17 | +# serper → requires SERPER_API_KEY |
| 18 | +# fallback → Serper first, then Tavily if Serper returns no results; set both keys for full behavior |
| 19 | +# parallel → merge Serper + Tavily; set both keys for full behavior (Serper-only works with SERPER_API_KEY only) |
| 20 | +# If a required key is missing, the pipeline no-ops that provider; providerUsed may be "none" when no key backs the active path. |
| 21 | +TAVILY_API_KEY="tvly-..." |
| 22 | +SERPER_API_KEY="..." |
| 23 | +SEARCH_PROVIDER="tavily" # "tavily" | "serper" | "fallback" | "parallel" |
| 24 | + |
| 25 | +# Platform API Keys for Marketing Pipeline |
| 26 | +REDDIT_CLIENT_ID="your_reddit_client_id" |
| 27 | +REDDIT_CLIENT_SECRET="your_reddit_client_secret" |
| 28 | +REDDIT_USER_AGENT="your_reddit_user_agent" |
| 29 | +TWITTER_BEARER_TOKEN="your_twitter_bearer_token" |
| 30 | +LINKEDIN_ACCESS_TOKEN="your_linkedin_access_token" |
| 31 | +BLUESKY_HANDLE="your_bluesky_handle" |
| 32 | +BLUESKY_APP_PASSWORD="your_bluesky_app_password" |
| 33 | + |
| 34 | +# Document Processing (Optional) |
| 35 | +AZURE_DOC_INTELLIGENCE_ENDPOINT="https://..." |
| 36 | +AZURE_DOC_INTELLIGENCE_KEY="..." |
| 37 | +LANDING_AI_API_KEY="..." |
4 | 38 |
|
5 | | -# This file will be committed to version control, so make sure not to have any |
6 | | -# secrets in it. If you are cloning this repo, create a copy of this file named |
7 | | -# ".env" and populate it with your secrets. |
8 | | - |
9 | | -# When adding additional environment variables, the schema in "/src/env.js" |
10 | | -# should be updated accordingly. |
11 | | - |
12 | | -# Database |
13 | | -DATABASE_URL="" |
14 | | - |
15 | | -# Docker Compose: password for PostgreSQL (used by db service) |
16 | | -# POSTGRES_PASSWORD=password |
17 | | - |
18 | | -# Clerk Authentication (get from https://clerk.com/) |
19 | | - |
20 | | -NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY= |
21 | | -CLERK_SECRET_KEY= |
| 39 | +# Anthropic API (optional — enables Claude models, get from https://console.anthropic.com/) |
| 40 | +ANTHROPIC_API_KEY= |
| 41 | +ANTHROPIC_MODEL= |
22 | 42 |
|
23 | 43 | # OpenAI API (get from https://platform.openai.com/) |
24 | 44 | OPENAI_API_KEY= |
25 | 45 | OPENAI_MODEL="gpt-5-mini" |
26 | 46 |
|
27 | | -# Anthropic API (optional — enables Claude models, get from https://console.anthropic.com/) |
28 | | -ANTHROPIC_API_KEY= |
29 | | - |
30 | 47 | # Google AI API (optional — enables Gemini models, get from https://aistudio.google.com/apikey) |
31 | 48 | GOOGLE_AI_API_KEY= |
| 49 | +GOOGLE_MODEL= |
32 | 50 |
|
33 | 51 | # Ollama (optional — enables local models via Ollama, see https://ollama.com/) |
34 | 52 | OLLAMA_BASE_URL="http://localhost:11434" |
35 | 53 | OLLAMA_MODEL="llama3.1:8b" |
36 | 54 |
|
37 | | -# UploadThing (get from https://uploadthing.com/) |
| 55 | +# LangSmith Tracing (Optional) |
| 56 | +LANGCHAIN_TRACING_V2="false" |
| 57 | +LANGCHAIN_API_KEY="..." |
| 58 | +LANGCHAIN_PROJECT="pdr_ai_v2" |
| 59 | + |
| 60 | +# File Uploading (Optional) |
38 | 61 | UPLOADTHING_SECRET="your_uploadthing_secret" |
39 | 62 | UPLOADTHING_APP_ID="your_uploadthing_app_id" |
| 63 | +UPLOADTHING_TOKEN="..." |
40 | 64 |
|
41 | | -# Datalab OCR API (optional - get from https://www.datalab.to/) |
42 | | -# Required only if you want to enable OCR processing for scanned documents |
43 | | -DATALAB_API_KEY="your_datalab_api_key" |
44 | | - |
45 | | -# Landing.AI OCR API (optional - get from https://www.landing.ai/) |
46 | | -LANDING_AI_API_KEY="your_landing_ai_api_key" |
47 | | - |
48 | | -# Tavily API (optional - get from https://www.tavily.com/) |
49 | | -TAVILY_API_KEY="your_tavily_api_key" |
50 | | - |
51 | | -# Azure Document Intelligence OCR API (optional - get from https://learn.microsoft.com/en-us/azure/applied-ai-services/document-intelligence/quickstarts/get-started-with-rest-api?pivots=programming-language-rest-api) |
52 | | -AZURE_DOC_INTELLIGENCE_ENDPOINT="your_azure_doc_intelligence_endpoint" |
53 | | -AZURE_DOC_INTELLIGENCE_KEY="your_azure_doc_intelligence_key" |
| 65 | +# Data APIs (Optional) |
| 66 | +DATALAB_API_KEY="..." |
54 | 67 |
|
55 | | -# Inngest (required for background document processing - https://inngest.com/) |
56 | | -INNGEST_EVENT_KEY="dev_placeholder" |
| 68 | +# Background Jobs |
| 69 | +JOB_RUNNER="inngest" |
| 70 | +INNGEST_EVENT_KEY="local" |
57 | 71 | INNGEST_SIGNING_KEY="signkey-dev-xxxxx" |
58 | 72 |
|
59 | | -# Sidecar (optional - get from https://github.com/pdr-ai/sidecar) |
60 | | -SIDECAR_URL="your_sidecar_url" |
| 73 | +# Sidecar ML Compute (Optional) |
| 74 | +SIDECAR_URL="http://localhost:8080" |
61 | 75 |
|
62 | | -# Neo4j (optional - get from https://neo4j.com/) |
| 76 | +# Neo4j (optional) |
63 | 77 | NEO4J_URI="your_neo4j_uri" |
64 | 78 | NEO4J_USERNAME="your_neo4j_username" |
65 | 79 | NEO4J_PASSWORD="your_neo4j_password" |
0 commit comments