-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path.env.example
More file actions
419 lines (330 loc) · 10.7 KB
/
.env.example
File metadata and controls
419 lines (330 loc) · 10.7 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
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
# Building Energy Optimizer Configuration Template
# Copy this file to .env and customize the values
# =====================================================
# 🏢 APPLICATION SETTINGS
# =====================================================
# Environment mode: development, staging, production
ENVIRONMENT=development
# Enable debug mode (disable in production)
DEBUG=true
# Application secret key (CHANGE THIS IN PRODUCTION!)
SECRET_KEY=dev-secret-key-change-in-production-environments
# Application title and branding
APP_TITLE=Building Energy Optimizer
APP_DESCRIPTION=Advanced ML-powered energy optimization system
APP_VERSION=2.0.0
# Timezone
TIMEZONE=UTC
# Language and locale
LANGUAGE=en
LOCALE=en_US.UTF-8
# =====================================================
# 🗄️ DATABASE CONFIGURATION
# =====================================================
# Database URL - Choose one:
# SQLite (for development and small deployments)
DATABASE_URL=sqlite:///building_energy.db
# PostgreSQL (recommended for production)
# DATABASE_URL=postgresql://beo_user:your_password@localhost:5432/building_energy
# Connection pool settings (for PostgreSQL)
DATABASE_POOL_SIZE=20
DATABASE_MAX_OVERFLOW=30
DATABASE_POOL_TIMEOUT=30
DATABASE_POOL_RECYCLE=3600
# Database backup settings
DATABASE_BACKUP_ENABLED=true
DATABASE_BACKUP_RETENTION_DAYS=30
# =====================================================
# 🌤️ WEATHER API CONFIGURATION
# =====================================================
# OpenWeatherMap API Key (get free key at openweathermap.org)
OPENWEATHERMAP_API_KEY=your_openweathermap_api_key_here
# Weather data cache settings
WEATHER_CACHE_ENABLED=true
WEATHER_CACHE_TTL_MINUTES=30
# Default location for weather (if not specified in requests)
DEFAULT_LATITUDE=41.9028
DEFAULT_LONGITUDE=12.4964
# Weather data fallback (synthetic data when API unavailable)
WEATHER_FALLBACK_ENABLED=true
# =====================================================
# 📡 API SERVER CONFIGURATION
# =====================================================
# API server settings
API_HOST=0.0.0.0
API_PORT=8000
API_WORKERS=4
# CORS settings
CORS_ORIGINS=["*"]
CORS_CREDENTIALS=true
CORS_METHODS=["GET", "POST", "PUT", "DELETE"]
CORS_HEADERS=["*"]
# Request limits
MAX_REQUEST_SIZE=100MB
REQUEST_TIMEOUT=300
# API documentation
API_DOCS_ENABLED=true
API_DOCS_URL=/docs
API_REDOC_URL=/redoc
# =====================================================
# 📊 DASHBOARD CONFIGURATION
# =====================================================
# Dashboard server settings
DASHBOARD_HOST=0.0.0.0
DASHBOARD_PORT=8501
# Dashboard features
DASHBOARD_WIDE_MODE=true
DASHBOARD_THEME=auto
DASHBOARD_AUTO_REFRESH_SECONDS=30
# Dashboard caching
DASHBOARD_CACHE_ENABLED=true
DASHBOARD_CACHE_TTL_MINUTES=10
# =====================================================
# 🔐 AUTHENTICATION & SECURITY
# =====================================================
# JWT settings
JWT_SECRET_KEY=jwt-secret-key-change-in-production
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=60
JWT_REFRESH_TOKEN_EXPIRE_DAYS=7
# API key settings
API_KEY_ENABLED=true
API_KEY_PREFIX=eo_
# Rate limiting
RATE_LIMIT_ENABLED=true
RATE_LIMIT_REQUESTS_PER_MINUTE=100
RATE_LIMIT_BURST=20
# Security features
SECURITY_HEADERS_ENABLED=true
HTTPS_REDIRECT_ENABLED=false # Set to true in production with SSL
# =====================================================
# 🧩 PLUGIN SYSTEM CONFIGURATION
# =====================================================
# Plugin system
PLUGINS_ENABLED=true
PLUGINS_AUTO_LOAD=true
# IoT Plugins
IOT_PLUGINS_ENABLED=true
MQTT_BROKER_HOST=localhost
MQTT_BROKER_PORT=1883
MQTT_USERNAME=iot_user
MQTT_PASSWORD=iot_password
MQTT_CLIENT_ID=building_energy_optimizer
# LoRaWAN settings (if applicable)
LORAWAN_ENABLED=false
LORAWAN_NETWORK_SERVER=localhost:1700
# =====================================================
# 📢 NOTIFICATION CONFIGURATION
# =====================================================
# Email notifications
EMAIL_NOTIFICATIONS_ENABLED=false
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USE_TLS=true
SMTP_USERNAME=your_email@gmail.com
SMTP_PASSWORD=your_app_password
SMTP_FROM_EMAIL=energy-optimizer@yourcompany.com
SMTP_FROM_NAME=Building Energy Optimizer
# Slack notifications
SLACK_NOTIFICATIONS_ENABLED=false
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK/URL
SLACK_CHANNEL=#energy-alerts
SLACK_USERNAME=Energy Optimizer Bot
# Webhook notifications
WEBHOOK_NOTIFICATIONS_ENABLED=false
WEBHOOK_URL=https://your-webhook-endpoint.com/notifications
WEBHOOK_SECRET=your_webhook_secret
# Notification thresholds
NOTIFICATION_HIGH_CONSUMPTION_THRESHOLD=150
NOTIFICATION_LOW_EFFICIENCY_THRESHOLD=0.7
NOTIFICATION_ERROR_THRESHOLD=5
# =====================================================
# 📊 MONITORING & METRICS
# =====================================================
# Monitoring
MONITORING_ENABLED=true
HEALTH_CHECK_ENABLED=true
HEALTH_CHECK_INTERVAL_SECONDS=60
# Metrics collection
METRICS_ENABLED=true
METRICS_COLLECTION_INTERVAL=30
METRICS_RETENTION_HOURS=168 # 7 days
# Prometheus metrics
PROMETHEUS_ENABLED=true
PROMETHEUS_PORT=8090
PROMETHEUS_METRICS_PATH=/metrics
# Performance monitoring
PERFORMANCE_MONITORING_ENABLED=true
SLOW_QUERY_THRESHOLD_SECONDS=1.0
SLOW_REQUEST_THRESHOLD_SECONDS=5.0
# =====================================================
# 💾 BACKUP CONFIGURATION
# =====================================================
# Backup system
BACKUP_ENABLED=true
BACKUP_RETENTION_DAYS=30
BACKUP_COMPRESSION_ENABLED=true
BACKUP_VERIFICATION_ENABLED=true
# Automatic backups
BACKUP_AUTOMATIC_ENABLED=false
BACKUP_SCHEDULE_HOURS=24
BACKUP_TYPE=full # full or incremental
# S3 backup (optional)
BACKUP_S3_ENABLED=false
BACKUP_S3_BUCKET=your-backup-bucket
BACKUP_S3_REGION=us-east-1
BACKUP_S3_ACCESS_KEY=your_access_key
BACKUP_S3_SECRET_KEY=your_secret_key
# =====================================================
# 🤖 MACHINE LEARNING CONFIGURATION
# =====================================================
# Default ML settings
ML_DEFAULT_ALGORITHM=xgboost
ML_AUTO_FEATURE_SELECTION=true
ML_MAX_FEATURES=35
ML_CROSS_VALIDATION_FOLDS=5
# Training limits
ML_MAX_TRAINING_SAMPLES=100000
ML_TRAINING_TIMEOUT_MINUTES=10
ML_MEMORY_LIMIT_GB=4
# Model persistence
ML_MODEL_SAVE_ENABLED=true
ML_MODEL_VERSIONING_ENABLED=true
ML_MODEL_RETENTION_DAYS=90
# Performance thresholds
ML_MIN_ACCURACY_THRESHOLD=0.7
ML_MAX_TRAINING_TIME_MINUTES=5
# =====================================================
# 📁 STORAGE CONFIGURATION
# =====================================================
# File storage paths
DATA_DIRECTORY=./data
MODELS_DIRECTORY=./models
LOGS_DIRECTORY=./logs
BACKUPS_DIRECTORY=./backups
TEMP_DIRECTORY=./temp
# File size limits
MAX_UPLOAD_SIZE_MB=100
MAX_LOG_FILE_SIZE_MB=50
MAX_BACKUP_SIZE_GB=5
# File retention
LOG_RETENTION_DAYS=30
TEMP_FILE_CLEANUP_HOURS=24
# =====================================================
# 📋 LOGGING CONFIGURATION
# =====================================================
# Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL
LOG_LEVEL=INFO
# Log file settings
LOG_FILE_ENABLED=true
LOG_FILE_PATH=logs/building_energy_optimizer.log
LOG_FILE_MAX_SIZE_MB=50
LOG_FILE_BACKUP_COUNT=5
# Log format
LOG_FORMAT=json # json or text
LOG_INCLUDE_TIMESTAMP=true
LOG_INCLUDE_LEVEL=true
LOG_INCLUDE_MODULE=true
# Structured logging
STRUCTURED_LOGGING_ENABLED=true
LOG_REQUEST_ID_ENABLED=true
# External log aggregation (optional)
LOG_EXTERNAL_ENABLED=false
LOG_EXTERNAL_URL=https://your-log-service.com/api/logs
LOG_EXTERNAL_API_KEY=your_log_service_api_key
# =====================================================
# 🔄 CACHE CONFIGURATION
# =====================================================
# Redis cache (optional, improves performance)
REDIS_ENABLED=false
REDIS_URL=redis://localhost:6379/0
REDIS_PASSWORD=your_redis_password
# Cache settings
CACHE_DEFAULT_TTL_MINUTES=60
CACHE_WEATHER_TTL_MINUTES=30
CACHE_PREDICTIONS_TTL_MINUTES=15
CACHE_MODELS_TTL_HOURS=24
# Memory cache (fallback when Redis unavailable)
MEMORY_CACHE_ENABLED=true
MEMORY_CACHE_MAX_SIZE_MB=100
# =====================================================
# 🌐 EXTERNAL SERVICES
# =====================================================
# External API integrations
EXTERNAL_APIs_ENABLED=true
EXTERNAL_API_TIMEOUT_SECONDS=30
EXTERNAL_API_RETRY_COUNT=3
# Third-party service limits
EXTERNAL_WEATHER_REQUESTS_PER_HOUR=1000
EXTERNAL_GEOCODING_REQUESTS_PER_DAY=1000
# =====================================================
# 🔧 DEVELOPMENT SETTINGS
# =====================================================
# Development features (disable in production)
DEV_AUTO_RELOAD=true
DEV_DEBUG_TOOLBAR=true
DEV_PROFILING_ENABLED=false
# Testing settings
TEST_DATABASE_URL=sqlite:///test_building_energy.db
TEST_DISABLE_AUTH=true
TEST_MOCK_EXTERNAL_APIs=true
# Development server settings
DEV_HOT_RELOAD=true
DEV_OPEN_BROWSER=false
# =====================================================
# 🏭 PRODUCTION SETTINGS
# =====================================================
# Production-specific settings (uncomment for production)
# Security
# HTTPS_ONLY=true
# SECURE_COOKIES=true
# CSRF_PROTECTION_ENABLED=true
# Performance
# ENABLE_GZIP=true
# STATIC_FILE_CACHING=true
# DATABASE_CONNECTION_POOLING=true
# Scaling
# API_WORKERS=4
# WORKER_PROCESSES=2
# MAX_CONCURRENT_REQUESTS=1000
# Monitoring
# SENTRY_DSN=https://your-sentry-dsn
# NEW_RELIC_LICENSE_KEY=your_new_relic_key
# =====================================================
# 🧪 FEATURE FLAGS
# =====================================================
# Experimental features
FEATURE_ADVANCED_ANALYTICS=true
FEATURE_REAL_TIME_OPTIMIZATION=true
FEATURE_MULTI_BUILDING_SUPPORT=true
FEATURE_WEATHER_FORECASTING=true
FEATURE_IOT_INTEGRATION=true
FEATURE_NOTIFICATION_SYSTEM=true
# Beta features
FEATURE_ENERGY_TRADING=false
FEATURE_CARBON_FOOTPRINT=false
FEATURE_PREDICTIVE_MAINTENANCE=false
# =====================================================
# 📝 NOTES
# =====================================================
# Important Notes:
# 1. ALWAYS change SECRET_KEY in production
# 2. Use strong passwords for all services
# 3. Configure SSL/TLS for production deployments
# 4. Set up regular backups
# 5. Monitor system health and performance
# 6. Review security settings regularly
# 7. Update API keys and rotate secrets periodically
# Quick Setup Checklist:
# [ ] Copy .env.example to .env
# [ ] Set OPENWEATHERMAP_API_KEY
# [ ] Configure database URL if using PostgreSQL
# [ ] Set strong SECRET_KEY for production
# [ ] Configure SMTP settings for notifications
# [ ] Review security settings
# [ ] Test the configuration with: make health
# For more information, see:
# - README.md for general setup instructions
# - docs/configuration.md for detailed configuration guide
# - docs/security.md for security best practices
# - docs/deployment.md for production deployment guide