-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenv.example.api-server
More file actions
215 lines (181 loc) · 6.61 KB
/
env.example.api-server
File metadata and controls
215 lines (181 loc) · 6.61 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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
# ========================================
# DEEPIRI API SERVER ENVIRONMENT
# ========================================
# Copy this to .env and configure your values
# Supports both local development and Docker deployments
#
# IMPORTANT: For Kubernetes deployments, use ConfigMaps/Secrets instead of .env files.
# This file is for local dev/Docker Compose only.
# ========================================
# SERVER CONFIGURATION
# ========================================
NODE_ENV=development
PORT=5000
HOST=0.0.0.0
SERVER_TIMEOUT=30000
MAX_REQUEST_SIZE=10mb
TRUST_PROXY=true
# ========================================
# DATABASE CONFIGURATION
# ========================================
# MongoDB (Primary Database)
MONGODB_URI=mongodb://admin:password@localhost:27017/deepiri?authSource=admin
MONGODB_TEST_URI=mongodb://admin:password@localhost:27017/deepiri_test?authSource=admin
# MongoDB Docker Configuration
MONGO_ROOT_USER=admin
MONGO_ROOT_PASSWORD=password
MONGO_DB=deepiri
# Docker Internal URLs (for Docker deployments)
INTERNAL_MONGODB_URL=mongodb://admin:${MONGO_ROOT_PASSWORD}@mongodb:27017/${MONGO_DB}?authSource=admin
INTERNAL_REDIS_URL=redis://:${REDIS_PASSWORD}@redis:6379
# Kubernetes Internal URLs (for K8s deployments)
# In Kubernetes, use service names: mongodb-service, redis-service, backend-service, etc.
# Redis (Cache & Sessions)
REDIS_URL=redis://localhost:6379
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=redispassword
# ========================================
# AUTHENTICATION & SECURITY
# ========================================
JWT_SECRET=your-super-secret-jwt-key-minimum-32-characters-long
JWT_EXPIRES_IN=7d
REFRESH_TOKEN_TTL_DAYS=30
# Session Configuration
SESSION_SECRET=your-session-secret-key-here
SESSION_TIMEOUT=3600000
# Rate Limiting
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100
RATE_LIMIT_SKIP_SUCCESSFUL=true
# IP Filtering & CORS
IP_ALLOW_LIST=
IP_DENY_LIST=
CORS_ORIGIN=http://localhost:5173
CLIENT_URL=http://localhost:5173
# Development URLs (Local/Docker)
DEV_CLIENT_URL=http://localhost:5173
DEV_API_URL=http://localhost:5000/api
DEV_CYREX_URL=http://localhost:8000
# Internal Docker Network URLs
INTERNAL_BACKEND_URL=http://backend:5000
INTERNAL_CYREX_URL=http://cyrex:8000
# Production URLs (Kubernetes ConfigMap Reference Only)
# For cloud K8s, set these in ConfigMaps, not .env files
# PROD_CLIENT_URL=https://deepiri.com
# PROD_API_URL=https://api.deepiri.com
# PROD_CYREX_URL=https://agent.deepiri.com
# ========================================
# FIREBASE CONFIGURATION
# ========================================
FIREBASE_PROJECT_ID=your-firebase-project-id
FIREBASE_PRIVATE_KEY_ID=your-private-key-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
FIREBASE_CLIENT_ID=your-firebase-client-id
FIREBASE_AUTH_URI=https://accounts.google.com/o/oauth2/auth
FIREBASE_TOKEN_URI=https://oauth2.googleapis.com/token
FIREBASE_DATABASE_URL=https://your-project-default-rtdb.firebaseio.com/
FIREBASE_SERVICE_ACCOUNT_PATH=/app/config/firebase-adminsdk.json
# ========================================
# EXTERNAL API INTEGRATIONS
# ========================================
# Google Services
GOOGLE_MAPS_API_KEY=your-google-maps-api-key
GOOGLE_PLACES_API_KEY=your-google-places-api-key
# Weather Services
OPENWEATHER_API_KEY=your-openweather-api-key
# Event Services
EVENTBRITE_API_KEY=your-eventbrite-api-key
YELP_API_KEY=your-yelp-api-key
# Social Media APIs
FACEBOOK_APP_ID=your-facebook-app-id
FACEBOOK_APP_SECRET=your-facebook-app-secret
# ========================================
# AI CONFIGURATION
# ========================================
# AI Provider: openai | localai | deepinfra
AI_PROVIDER=openai
# OpenAI Configuration (Cloud Path)
OPENAI_API_KEY=sk-your-openai-api-key-here
OPENAI_API_BASE=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o-mini
OPENAI_MAX_TOKENS=2000
OPENAI_TEMPERATURE=0.7
OPENAI_TOP_P=0.9
# LocalAI Configuration (Local/Free Path)
# LocalAI is a drop-in replacement for OpenAI that runs locally
# Install: docker run -ti --name local-ai -p 8080:8080 localai/localai:latest
LOCALAI_API_BASE=http://localhost:8080/v1
LOCALAI_MODEL=gpt-4o-mini
LOCALAI_API_KEY= # Optional: set if LocalAI requires API key
# DeepInfra Configuration (Alternative Cloud Path)
DEEPINFRA_API_KEY=your-deepinfra-api-key-here
DEEPINFRA_API_BASE=https://api.deepinfra.com/v1/openai
DEEPINFRA_MODEL=meta-llama/Llama-3.1-8B-Instruct
# Python Agent Communication
CYREX_API_KEY=change-me
CYREX_URL=http://localhost:8000
# Agent Configuration
OPENAI_AGENT_MODEL=gpt-4o-mini
AGENT_TEMPERATURE=0.5
AGENT_TOP_P=0.9
# ========================================
# NOTIFICATION SERVICES
# ========================================
# Firebase Cloud Messaging
FCM_SERVER_KEY=your-fcm-server-key
# Email Services
SENDGRID_API_KEY=your-sendgrid-api-key
SENDGRID_FROM_EMAIL=noreply@deepiri.com
# ========================================
# FILE HANDLING
# ========================================
MAX_FILE_SIZE=10485760
UPLOAD_DIR=./uploads
ALLOWED_FILE_TYPES=jpg,jpeg,png,gif,pdf
# ========================================
# CACHE CONFIGURATION
# ========================================
CACHE_TTL_ADVENTURES=3600
CACHE_TTL_EVENTS=1800
CACHE_TTL_WEATHER=900
CACHE_TTL_MAPS=3600
CACHE_TTL_USER_SESSIONS=7200
# ========================================
# ADVENTURE GENERATION
# ========================================
DEFAULT_ADVENTURE_DURATION=60
MAX_ADVENTURE_DURATION=480
MIN_ADVENTURE_DURATION=15
DEFAULT_SEARCH_RADIUS=5000
MAX_SEARCH_RADIUS=50000
MIN_SEARCH_RADIUS=500
# ========================================
# CHALLENGE GENERATION
# ========================================
DEFAULT_CHALLENGE_DURATION=30
MAX_CHALLENGE_DURATION=120
MIN_CHALLENGE_DURATION=5
DEFAULT_CHALLENGE_DIFFICULTY=medium
# ========================================
# LOGGING & MONITORING
# ========================================
LOG_LEVEL=info
LOG_FORMAT=json
LOG_MAX_FILES=5
LOG_MAX_SIZE=10m
# Performance Monitoring
ENABLE_METRICS=true
METRICS_PORT=9090
HEALTH_CHECK_INTERVAL=30000
# Error Tracking
SENTRY_DSN=your-sentry-dsn-here
SENTRY_ENVIRONMENT=development
# ========================================
# PAYMENT PROCESSING
# ========================================
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key
STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret
PAYPAL_CLIENT_SECRET=your_paypal_client_secret
PAYPAL_MODE=sandbox