Configuration
Complete reference for configuring your Hive-Pal installation.
Environment Variables
Backend Configuration
Database
DATABASE_URL="postgresql://user:password@host:port/database"
Security
JWT_SECRET=your_secure_jwt_secret_here
JWT_EXPIRES_IN=7d
ALLOWED_ORIGINS=http://localhost:5173,https://yourdomain.com
Optional Services
# Email (SMTP)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
# Error Tracking
SENTRY_DSN=your_sentry_dsn_here
# File Storage
UPLOAD_PATH=/uploads
MAX_FILE_SIZE=10485760 # 10MB
Frontend Configuration
API Connection
VITE_API_URL=http://localhost:3000
VITE_API_TIMEOUT=30000
Optional Features
VITE_SENTRY_DSN=your_sentry_dsn_here
VITE_GOOGLE_MAPS_API_KEY=your_maps_api_key
VITE_WEATHER_API_KEY=your_weather_api_key
Database Configuration
Connection Pool
DB_POOL_MIN=2
DB_POOL_MAX=10
DB_POOL_IDLE_TIMEOUT=10000
DB_POOL_ACQUIRE_TIMEOUT=60000
Performance Tuning
-- postgresql.conf optimizations
shared_buffers = 256MB
effective_cache_size = 1GB
work_mem = 4MB
maintenance_work_mem = 64MB
checkpoint_completion_target = 0.9
random_page_cost = 1.1
Security Settings
HTTPS Configuration
# Force HTTPS
FORCE_HTTPS=true
HSTS_MAX_AGE=31536000
# CORS Settings
CORS_CREDENTIALS=true
CORS_MAX_AGE=86400
Rate Limiting
RATE_LIMIT_WINDOW=900000 # 15 minutes
RATE_LIMIT_MAX=100 # requests per window
File Storage
Local Storage
UPLOAD_PATH=/var/lib/hive-pal/uploads
TEMP_PATH=/tmp/hive-pal
Cloud Storage (Optional)
# AWS S3
AWS_REGION=us-west-2
AWS_BUCKET=hive-pal-uploads
AWS_ACCESS_KEY_ID=your_key
AWS_SECRET_ACCESS_KEY=your_secret
# Alternative: MinIO
MINIO_ENDPOINT=http://localhost:9000
MINIO_ACCESS_KEY=your_key
MINIO_SECRET_KEY=your_secret
Logging
Log Levels
LOG_LEVEL=info # error, warn, info, debug
LOG_FORMAT=json # json, simple
LOG_FILE=/var/log/hive-pal/app.log
External Logging
# Loki
LOKI_URL=http://localhost:3100
LOKI_USERNAME=admin
LOKI_PASSWORD=admin
Monitoring
Health Checks
HEALTH_CHECK_ENABLED=true
HEALTH_CHECK_PATH=/health
Metrics
PROMETHEUS_ENABLED=true
PROMETHEUS_PORT=9090
METRICS_PATH=/metrics
Email Configuration
SMTP Settings
MAIL_FROM=noreply@your-domain.com
MAIL_FROM_NAME="Hive-Pal"
MAIL_REPLY_TO=support@your-domain.com
Email Templates
- Welcome email
- Password reset
- Inspection reminders
- System notifications
API Configuration
Rate Limiting
API_RATE_LIMIT=1000 # requests per hour
API_BURST_LIMIT=50 # burst requests
Timeouts
API_TIMEOUT=30000 # 30 seconds
DB_TIMEOUT=10000 # 10 seconds
UPLOAD_TIMEOUT=300000 # 5 minutes
Cache Configuration
Redis (Optional)
REDIS_URL=redis://localhost:6379
REDIS_TTL=3600 # 1 hour
REDIS_KEY_PREFIX=hive-pal:
Memory Cache
CACHE_MAX_SIZE=100 # MB
CACHE_TTL=1800 # 30 minutes
Backup Configuration
Database Backups
BACKUP_ENABLED=true
BACKUP_SCHEDULE="0 2 * * *" # Daily at 2 AM
BACKUP_RETENTION=30 # Days
BACKUP_PATH=/backups
File Backups
FILE_BACKUP_ENABLED=true
FILE_BACKUP_SCHEDULE="0 3 * * *"
FILE_BACKUP_COMPRESSION=true
Development Settings
Debug Mode
NODE_ENV=development
DEBUG=true
VERBOSE_LOGGING=true
Hot Reload
WATCH_MODE=true
RELOAD_ON_CHANGE=true
Production Optimizations
Performance
NODE_ENV=production
COMPRESSION_ENABLED=true
GZIP_LEVEL=6
STATIC_CACHE_TTL=31536000 # 1 year
Security
HELMET_ENABLED=true
CSP_ENABLED=true
SECURE_COOKIES=true
Configuration Validation
Required Variables
- DATABASE_URL
- JWT_SECRET
- ALLOWED_ORIGINS
Optional Variables
- All other settings have defaults
- Override as needed
- Environment-specific files supported
Best Practices
- Use environment-specific .env files
- Never commit secrets to version control
- Use Docker secrets in production
- Validate configuration on startup
- Monitor configuration changes