-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy path.env.example
More file actions
188 lines (146 loc) · 5.73 KB
/
Copy path.env.example
File metadata and controls
188 lines (146 loc) · 5.73 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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# =====================================================
# STUDYIELD BACKEND CONFIGURATION
# =====================================================
# Copy this file to .env and update with your values
# =====================================================
# Application
NODE_ENV=development
PORT=3010
API_PREFIX=api/v1
LOG_LEVEL=debug
# Application URLs
APP_URL=http://localhost:3010
FRONTEND_URL=http://localhost:5189
API_URL=http://localhost:3010/api/v1
# =====================================================
# JWT CONFIGURATION
# =====================================================
JWT_ACCESS_SECRET=your_jwt_access_secret_min32chars_change_me
JWT_REFRESH_SECRET=your_jwt_refresh_secret_min32chars_change_me
JWT_ACCESS_EXPIRATION=15m
JWT_REFRESH_EXPIRATION=7d
# =====================================================
# DATABASE (PostgreSQL)
# =====================================================
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_NAME=studyield_dev
DATABASE_USER=postgres
DATABASE_PASSWORD=your_db_password
DATABASE_POOL_MIN=2
DATABASE_POOL_MAX=10
# =====================================================
# REDIS CACHE
# =====================================================
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
REDIS_DB=0
# =====================================================
# QDRANT VECTOR DATABASE
# =====================================================
QDRANT_HOST=localhost
QDRANT_PORT=6333
QDRANT_API_KEY=your_qdrant_api_key
QDRANT_COLLECTION_PREFIX=studyield
# =====================================================
# CLICKHOUSE ANALYTICS
# =====================================================
CLICKHOUSE_HOST=localhost
CLICKHOUSE_PORT=8123
CLICKHOUSE_DATABASE=studyield_analytics
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=your_clickhouse_password
# =====================================================
# AWS SERVICES
# =====================================================
AWS_ACCESS_KEY_ID=your_aws_access_key_id
AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key
AWS_REGION=us-east-1
# =====================================================
# CLOUDFLARE R2 STORAGE (S3-compatible)
# =====================================================
R2_ACCOUNT_ID=your_r2_account_id
R2_ACCESS_KEY_ID=your_r2_access_key_id
R2_SECRET_ACCESS_KEY=your_r2_secret_access_key
R2_BUCKET_NAME=studyield-dev
R2_PUBLIC_URL=https://cdn-dev.studyield.com
# =====================================================
# EMAIL (AWS SES)
# =====================================================
EMAIL_DEFAULT_FROM=noreply@studyield.com
SES_CONFIGURATION_SET=studyield-emails
# SMTP fallback (if not using SES directly)
MAIL_HOST=email-smtp.us-east-1.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=your_ses_smtp_username
MAIL_PASSWORD=your_ses_smtp_password
# =====================================================
# AI SERVICES (OpenRouter)
# =====================================================
OPENROUTER_API_KEY=sk-or-v1-your-openrouter-api-key
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
OPENROUTER_DEFAULT_MODEL=anthropic/claude-3.5-sonnet
OPENROUTER_EMBEDDING_MODEL=openai/text-embedding-3-small
# OpenAI Direct (optional, for embeddings)
OPENAI_API_KEY=sk-your-openai-api-key
OPENAI_EMBEDDING_MODEL=text-embedding-3-small
# =====================================================
# OAUTH - GOOGLE
# =====================================================
GOOGLE_CLIENT_ID=your_google_client_id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REDIRECT_URI=http://localhost:3010/api/v1/auth/oauth/google/callback
# =====================================================
# OAUTH - APPLE
# =====================================================
APPLE_CLIENT_ID=com.your-org.studyield
APPLE_TEAM_ID=your_apple_team_id
APPLE_KEY_ID=your_apple_key_id
APPLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----
YOUR_APPLE_PRIVATE_KEY_HERE
-----END PRIVATE KEY-----"
APPLE_REDIRECT_URI=http://localhost:3010/api/v1/auth/oauth/apple/callback
# =====================================================
# STRIPE PAYMENTS
# =====================================================
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key
STRIPE_PUBLISHABLE_KEY=pk_test_your_stripe_publishable_key
STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret
# Stripe Price IDs
STRIPE_PRICE_ID_YEARLY=price_yearly_id
STRIPE_PRICE_ID_LIFETIME=price_lifetime_id
# =====================================================
# WEB SEARCH (for Research feature)
# =====================================================
TAVILY_API_KEY=your-tavily-api-key
SERPER_API_KEY=your-serper-api-key
# =====================================================
# CODE SANDBOX (Python execution)
# =====================================================
CODE_SANDBOX_URL=http://localhost:8080
CODE_SANDBOX_API_KEY=your-sandbox-api-key
CODE_SANDBOX_TIMEOUT=30000
# E2B Sandbox (alternative)
E2B_API_KEY=your_e2b_api_key
# =====================================================
# RATE LIMITING
# =====================================================
RATE_LIMIT_TTL=60
RATE_LIMIT_MAX=100
# =====================================================
# CORS
# =====================================================
CORS_ORIGINS=http://localhost:3010,http://localhost:5189
# =====================================================
# PUSH NOTIFICATIONS (Firebase)
# =====================================================
FIREBASE_PROJECT_ID=your-firebase-project-id
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nYOUR_FIREBASE_PRIVATE_KEY_HERE\n-----END PRIVATE KEY-----\n"
FIREBASE_CLIENT_EMAIL=firebase-adminsdk-xxxxx@your-project.iam.gserviceaccount.com
# =====================================================
# FILE STORAGE
# =====================================================
UPLOAD_DESTINATION=./uploads
MAX_FILE_SIZE=10485760
TEMP_FILES_DIR=./temp